>>>>> "Michael" == Michael Matz <m...@suse.de> writes:

Michael> Well, that's a hack.  A solution is to design something that
Michael> works generally for garbage collected languages with such
Michael> requirements instead of arbitrarily limiting transformations
Michael> here and there.  It could be something like the notion of
Michael> derived pointers, where the base pointer needs to stay alive as
Michael> long as the derived pointers are.

This was done once in GCC, for the Modula 3 compiler.
There was a paper about it, but I can't find it any more.

The basic idea was to emit a description of the stack frame that their
GC could read.  They had a moving GC that could use this information to
rewrite the frame when moving objects.

Tom

Reply via email to