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: geert@fozzie.sun3.iaf.nl (Geert Bosch) Subject: Re: Garbage Collection in Ada Date: 1996/10/21 Message-ID: <54fjl5$mo@fozzie.sun3.iaf.nl>#1/1 X-Deja-AN: 191145530 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> organization: La Calandre Infortunee newsgroups: comp.lang.ada Date: 1996-10-21T00:00:00+00:00 List-Id: Robert Dewar (dewar@merv.cs.nyu.edu) wrote: `` Actually I think that Geert is indeed working on interfacing the HJB CGC to GNAT (that's why he complained about the possibility of us moving to use virtual origins, something we definitely intend to do at some point, [...]'' More exactly, I _was_ working on a CGC for GNAT. This was an assignment for a course I had, but I have decided not to continue working on it after I finished the course. This was partly because of time constraints and the reasons given below. `` [...] so presumably this conservative GC would stop working if we did that, unless it got more clever (more clever is possible here, but difficult, i.e. the scan of memory could recognize in addition to simple direct pointers, possible instances of virtual origin descriptors, they have a perfetly well defined format. '' >From the discussion in comp.lang.ada I concluded that it was wasted time to spend more time developing a CGC for GNAT. Even if such a GC turns out to work just fine in practise people also have to accept the technology, which is not the case for many people. 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. Even when there will be some arbitrary pointers left like CPU-registers and pointers due to interfacing with foreign language libraries without debugging information, this can still be a good approach. (See also Joel Bartlett's mostly copying GC.) So, there is a good way to implement precise GC for GNAT without changing the compiler which is very complex already. Using debug information with GNAT also has the virtue that (under mild conditions) precise scanning can be done even when interfacing to C/C++ and that the fat pointers used by GNAT are a big help. Because of these points I think it is very well possible to implement a precise GC for GNAT without changing or limiting the compiler too much. According to comp.lang.ada readers there is also demand for a precise GC for GNAT, so my next question is: who is going to develop such a GC or fund development? ;-) Regards, Geert -- E-Mail: geert@sun3.iaf.nl