Hello, While reworking the IO-system I get deeper in the memory system than I wanted to. So I have some questions:
* Is there a way to trace only a part of the rootset? pobject_lives only adds an element to the root-set. But creation of the rootset and tracing of PMCs are done (as far as I can see) in only one function: trace_active_PMCs. * The root set is a linked list with an circular end. The end of this list is stored in the interpreter structure interprerter->mark_ptr, the start of the list is a local variable in trace_active_PMCs. Whats the reason for this choices? (Especially why is this list not NULL-terminated) * How can I alloc a fixed amount of garbage collected memory, which can be shared be more than one PMCs. io = (Buffer*)(pmc->ext->data)->obj.u.b.bufstart are IMHO far to many indirections. There must be a shorter way. * Should the standard-filedescriptors be timely destructed? If they are this makes the whole sweep 0/1 thing useless because there are always timely-destructing objects. Otherwise why are the standard-filedescriptors special. Yes I have read docs memory-internals.pod 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