[gclist] GC FAQ & uncooperative environments
Marcin 'Qrczak' Kowalczyk
qrczak@knm.org.pl
Thu, 10 Jul 2003 20:33:21 +0200
Dnia czw 10. lipca 2003 19:54, Fergus Henderson napisał:
> You don't need to resort to "almost legal C" to find pointers;
> if the C code is automatically generated by your compiler, then
> you can use strictly conforming standard C code to find all the
> pointers.
Well, I meant that the runtime in general is almost legal C. Violations of the
standard are not related to finding pointers.
For example I assume that there exists an integer type with the same alignment
constraints as a pointer (and thus don't bother to align those integers
differently than pointers), that structs consisting of pointers and such
integers can be aligned to pointer size, I don't care whether a pointer is
read from its representation using the same pointer type every time, I assume
that structs which contain only pointers have no padding, etc.
I bet this will work on all realistic platforms except those which have
different pointer representations depending on pointer type (Crays?).
And I will use GMP - perhaps the only *required* external library.
Another non-standard asumption is that many characters are significant
in external names, and that their case is distinguished. I.e. if the C
implementation has unreasonable restrictions here, programs using long
identifiers or identifiers which differ only in case may experience name
clashes.
Other crimes are entirely optional, e.g. I plan to postprocess assembly output
of a C compiler replacing trampolined tail calls with direct jumps, and use
two global register variables on gcc.
--
__("< Marcin Kowalczyk
\__/ qrczak@knm.org.pl
^^ http://qrnik.knm.org.pl/~qrczak/