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?
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 here. If you have questions about this, please contact