Hello,

at the moment I try to port IO-subsystem from the current
mem_sys_alloc/free to a PMC. The first patch in this direction is
nearly finished.

I have some problems with the File-Descriptors in Parrot. Some of the
operations in io.ops just take an INT File-Descriptor, which takes its
infromation from a table in the Interpreter-Structure. This hinders
garbage-collection of the IOs in this descriptor-table, because every
interger can possibly be a File-Descriptor. Furthermore this table
needs to be initialised early in the startup of parrot, at the moment
even the memory-subsystem is not running when the IO is initialised.

Therefor I propose:
Remove the integer-valued File-Descriptors. The ParrotIO-objects
(wrapped in PMCs) are the only way to access IO. The
standard-descriptors stdin/stdout/stderr can be obtained by new ops
get_stdin (out PMC)
get_stdout (out PMC)
get_stderr (out PMC)
respectivly the macros
PIO_STDIN(interpreter);
PIO_STDOUT(interpreter);
PIO_STDERR(interpreter);

If communication with external file-descriptors is necessary then the
PIO_fdopen function should be used, and the result is again a
ParrotIO-object.

bye
boe
-- 
Juergen Boemmels                        [EMAIL PROTECTED]
Fachbereich Physik                      Tel: ++49-(0)631-205-2817
Universitaet Kaiserslautern             Fax: ++49-(0)631-205-3906
PGP Key fingerprint = 9F 56 54 3D 45 C1 32 6F  23 F6 C7 2F 85 93 DD 47

Reply via email to