From: Brian Rogoff <bpr@shell5.ba.best.com>
Subject: Re: Language Challenge 2000 - Update
Date: 2000/02/07
Date: 2000-02-07T00:00:00+00:00 [thread overview]
Message-ID: <Pine.BSF.4.21.0002071222500.26194-100000@shell5.ba.best.com> (raw)
In-Reply-To: 87fo89$aqm1@news.cis.okstate.edu
On 4 Feb 2000, David Starner wrote:
> On Fri, 4 Feb 2000 15:35:02 -0800, Brian Rogoff <bpr@shell5.ba.best.com> wrote:
> >On 4 Feb 2000, David Starner wrote:
> >
> >> On Fri, 4 Feb 2000 07:53:54 -0800, Brian Rogoff <bpr@shell5.ba.best.com> wrote:
> >> >What is the opposite/dual of a "conservative" garbage collector?
> >> One that collects stuff that's in use? (-:
> >
> >The opposite/dual of a "conservative" garbage collector is a "precise" or
> >"accurate" garbage collector.
>
> Yes, I knew that. Hence the smiley. Sorry.
Actually, I should apologize; I gathered you knew when I read the rest of
your message, but somehow my fingers were too quick on the draw. Sorry I
sounded snotty.
> >A conservative garbage collector (and really
> >garbage collector should be in quotes) is not guaranteed to collect all
> >garbage. Does that help a little?
>
> Sure, but a generational GC won't collect all the garbage each time
> it does garbage collection, either. And most GC's will overlook a
> technically live pointer that won't get used again.
True, but I put that in a different category (missing on a sweep versus
just permanently missing) than conservative GC. Besides, there are lots of
precise GC variants besides generational GC.
One thing I'd like in a language would be a more sophisticated interface
to memory pools than what we have in storage pools right now. This has
been discussed before, and probably the cabal behind Ada 0X is considering
this.
> Anyway, how would you implement a "precise" garbage collector in
> pure Ada?
You could restrict yourself to a subset of Ada. Do the Ada ==> JVM
compilers allow you to munge addresses using the functionality in the
System hierarchy?
> The only way I can see working is by manually adding roots,
> like GCC (2.96)'s internal GC does. But that's a pain that's also
> mistake-prone. I probably don't understand storage pools well enough
> for this, though.
For full blown Ada, a reasonable substitute for GC sometimes is manual
region management, where by "region" I mean something like a mark release
pool a-la the Rationale. Its not quite as nice as GC but its usually
better than trying to free individual objects.
-- Brian
next prev parent reply other threads:[~2000-02-07 0:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <38991E72.293907A4@sdynamix.com>
[not found] ` <38992ADB.AC8748A8@mail.utexas.edu>
[not found] ` <87bbro$9281@news.cis.okstate.edu>
2000-02-03 0:00 ` Language Challenge 2000 - Update Brian Rogoff
2000-02-03 0:00 ` David Starner
2000-02-03 0:00 ` David Emery
2000-02-03 0:00 ` Brian Rogoff
2000-02-03 0:00 ` David Starner
2000-02-04 0:00 ` Brian Rogoff
2000-02-04 0:00 ` David Starner
2000-02-04 0:00 ` Brian Rogoff
2000-02-04 0:00 ` David Starner
2000-02-07 0:00 ` Brian Rogoff [this message]
2000-02-03 0:00 bvoh
2000-02-04 0:00 ` Gautier
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox