From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,3498dd887729ed19 X-Google-Attributes: gid103376,public From: bobduff@world.std.com (Robert A Duff) Subject: Re: Garbage Collection in Ada Date: 1996/10/20 Message-ID: #1/1 X-Deja-AN: 190794894 references: <01bbb910$f1e73f60$829d6482@joy.ericsson.se> <199610191920401982154@dialup119-3-12.swipnet.se> organization: The World Public Access UNIX, Brookline, MA newsgroups: comp.lang.ada Date: 1996-10-20T00:00:00+00:00 List-Id: In article , Robert Dewar wrote: >But this is, so far, a fantasy. The only kind of GC provided by standard >implementations, at least in my experience, is proper accurate GC, that is >of course embedded into the compiler or operating system or both. There are some counter-examples. Hans Boehm pointed out one case in this thread -- a GC that conservatively scans the stack (or the top-most stack frame) for each thread/task, which is an integral part of the compiler system. This is done for efficiency and/or for ease of implementation -- given the fact that it is very difficult to do garbage collection if you have lots of tasks that can be interrupted between any two instructions. If the GC can happen at any time, the GC doesn't know much about the consistency of things on the stack. Or in registers. But I still share your (Robert's) nervousness about relying on conservative GC's. And if I were implementing a GC for a GC-friendly language and compiler, I would probably not make it conservative. - Bob