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: Hans-Juergen Boehm Subject: Re: Garbage Collection in Ada Date: 1996/10/21 Message-ID: <326C5885.41C6@mti.sgi.com>#1/1 X-Deja-AN: 191132826 references: <01bbb910$f1e73f60$829d6482@joy.ericsson.se> <199610132138291604607@dialup101-6-14.swipnet.se> <19961014235451303023@dialup118-1-7.swipnet.se> <19961016113936528855@dialup120-4-1.swipnet.se> <199610191920401982154@dialup119-3-12.swipnet.se> <54fjl5$mo@fozzie.sun3.iaf.nl> cc: boehm content-type: text/plain; charset=us-ascii organization: Silicon Graphics Inc., Mountain View, CA mime-version: 1.0 newsgroups: comp.lang.ada x-mailer: Mozilla 2.0S (X11; I; IRIX 6.2 IP22) Date: 1996-10-21T00:00:00+00:00 List-Id: Geert Bosch wrote: > > Another reason to stop work on the CGC was that there is much more > interest for an exact GC for GNAT. During my work on the CGC I found > literature by Paul Wilson and Marc Shapiro describing precise scanning > using just debug information to do full compacting/moving GC. > In the absence of C-style unions, you can get layout information for heap objects from debug information. I have yet to hear any claims before this that you can get reliable pointer-location information for stack frames and registers, especially for optimized code, from debugging information. Certainly none of the debuggers I use are accurate enough on optimized code. Yes, that means you can build a Bartlett-style mostly copying (or mostly-compacting) collector. But it will still scan the stack conservatively. Using debugging information in this way is fine. On the other hand, copying or compacting during every collection is not a good idea. (Copying takes too much space. It's too hard to compact incrementally, and it takes too much time.) At most you want to copy young objects and compact old objects occasionally. -- Standard disclaimer ... Hans-Juergen Boehm boehm@mti.sgi.com