I'm trying to understand some aspects of the ILE C platform so that I can successfully port an open-source mark-sweep garbage collector.

I'm using teraspace options so that I've got 8 byte pointers and a unix-like memory model.

Essentially the gc wants to be able to scan all global statically allocated and local stack allocated memory plus registers to establish a "root set" for scanning of the heap to determine which blocks of memory are still being referenced.

This leads to some general requirements which I'm unsure are available on this platform:

- Basically, is it possible for a C program to determine storage being used by the running process (and any shared ones dynamically loaded as service programs, a.k.a. "dll's")?
- When using setjmp() can it be used to save and restore registers to the stack, such that they can then be examined and coerced into the root set for scanning of the heap?
- Is it possible to access the complete data segment(s) and stack of a C program (and procedures within it) on this platform?

Regards, Peter Colson.

This thread ...

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2019 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].