From: Brian Rogoff <bpr@shell5.ba.best.com>
Subject: Re: Better support for garbage collection
Date: Sat, 24 Mar 2001 04:08:36 GMT
Date: 2001-03-24T04:08:36+00:00 [thread overview]
Message-ID: <Pine.BSF.4.21.0103231941131.21327-100000@shell5.ba.best.com> (raw)
In-Reply-To: <wccsnkdr7g0.fsf@world.std.com>
Sorry for the late reply, there's just no telling when messages arrive on
my news server :-(
On Fri, 16 Mar 2001, Robert A Duff wrote:
> Brian Rogoff <bpr@shell5.ba.best.com> writes:
> > IMO, just tacking on GC to an existing language doesn't make it very
> > much better.
> I think it does.
I disagree, oh well.
> >... When the language designers design a language with the
> > expectation of GC, they may then support some higher level features,
> > like first class functions, which do make the language much better.
>
> I don't see the huge advantage of first class functions.
How about the fact that I can build functions by partially parameterizing
a given function? I assume you know what I mean here, I have a function
with n arguments and I can build a new function by calling that function
with some arguments fixed? I do that all the time. I can use that trick to
defer evaluation and simulate lazy evaluation in an eager language.
> I *do* see the advantage of downward closures.
Well, at least you're half right ;-).
> Whenever I have asked for examples showing the usefulness of full
> closures, most folks produce examples of downward closures.
> (I've had this argument here, and also on functional language
> newsgroups, where you would expect to find more knowledge about
> closures.)
The most mundane (and convincing) is just parameterization. I must have
missed your posts on the FP newsgroups.
> I also see a *disadvantage* of full closures: Information that is local
> to a procedure can "escape", which seems to make code harder to
> understand. It seems to me that if you want to pass a function (plus
> its environment) outward, you should instead explicitly create a tagged
> object on the heap, to make it clear that this thing survives after the
> end of the current procedure.
I disagree again. This kind of heavyweight simulation dissuades anyone
from using upward funargs at all!
> In any case, surely GC is useful independent of closures: it can go a
> long way toward getting rid of dangling pointer bugs and storage leak
> bugs.
Yes, I just said I didn't see "very much" gain from GC, not "no gain".
> > Ada is far less leaky than C family languages, so the win of just
> > adding a GC seems smaller for Ada.
>
> I would say "somewhat less leaky".
IME, *far* less leaky.
> > Of course, you still have designers who blow it by putting in GC and
> > omitting such features, but then after a few years they realize they
> > screwed up and hack in such things. Java and Eiffel are good examples
> > of such screw ups (nested/anonymous classes and "agents").
>
> Tell us about the Eiffel case. The version of Eiffel I know had no such
> thing.
ISE is still working on it. Check out their web page, look up "agents" and
"iterators".
> > > (I find the idea of conservative collection somewhat distasteful,
> > > but it does seem to work in many cases.)
> >
> > Maybe if it were called a "probabilistic garbage collector" you wouldn't
> > mind? ;-)
>
> ;-)
>
> > Didn't Norman Cohen have a proposal for a storage pool extension that
> > provided some support for garbage collection? I thought so, but my neural
> > garbage collector seems to have reclaimed that hunk of my brain...
>
> I don't remember that.
>
> I do remember Norm participating in the above "are full closures useful"
> argument. He's the only one I recall who produced an example that
> wasn't "downward". I was only half convinced by his example.
That was not a convining example (Ackerman?) though it was very pretty.
-- Brian
next prev parent reply other threads:[~2001-03-24 4:08 UTC|newest]
Thread overview: 115+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-03-13 18:37 Better support for garbage collection Nick Roberts
2001-03-14 8:16 ` Florian Weimer
2001-03-14 18:52 ` Robert A Duff
2001-03-14 19:40 ` Florian Weimer
2001-03-15 13:18 ` Nick Roberts
2001-03-14 19:29 ` Robert A Duff
2001-03-14 20:59 ` Brian Rogoff
2001-03-16 16:42 ` Robert A Duff
2001-03-17 6:13 ` Lao Xiao Hai
2001-03-24 4:08 ` Brian Rogoff [this message]
2001-03-15 4:35 ` Nick Roberts
2001-03-15 21:37 ` Randy Brukardt
2001-03-15 22:36 ` Stephen Leake
2001-03-16 16:26 ` Robert A Duff
2001-03-16 16:59 ` Brian Rogoff
2001-03-16 17:31 ` Robert A Duff
2001-03-16 18:29 ` Brian Rogoff
2001-03-17 2:30 ` Nick Roberts
2001-03-17 21:59 ` Robert A Duff
2001-03-17 22:57 ` Static typing (Was Re: Better support for garbage collection) Brian Rogoff
2001-03-17 23:45 ` Robert A Duff
2001-03-18 0:58 ` Brian Rogoff
2001-03-19 15:24 ` Robert A Duff
2001-03-20 4:21 ` Brian Rogoff
2001-03-21 1:32 ` Ken Garlington
2001-03-21 13:28 ` Robert A Duff
2001-03-22 2:08 ` Ken Garlington
2001-03-22 16:40 ` Robert A Duff
2001-03-25 16:21 ` Ken Garlington
2001-03-25 16:56 ` Ken Garlington
2001-03-25 22:31 ` Robert A Duff
2001-03-27 0:24 ` Ken Garlington
2001-03-28 23:15 ` Robert A Duff
2001-03-29 5:02 ` Ken Garlington
2001-03-29 6:13 ` David Starner
2001-03-29 10:10 ` AG
2001-03-29 14:28 ` Ken Garlington
2001-03-29 23:46 ` Robert A Duff
2001-03-30 3:41 ` Ken Garlington
2001-03-30 21:21 ` Robert A Duff
2001-03-31 19:30 ` Ken Garlington
2001-04-02 15:27 ` Robert A Duff
2001-04-02 23:29 ` Ken Garlington
2001-03-30 21:29 ` Robert A Duff
2001-03-30 9:16 ` Dmitry Kazakov
2001-03-30 9:51 ` Florian Weimer
2001-04-02 8:54 ` Dmitry Kazakov
2001-03-30 16:13 ` Ken Garlington
2001-04-02 11:00 ` Dmitry Kazakov
2001-03-30 20:44 ` Robert C. Leif, Ph.D.
2001-04-02 11:29 ` Dmitry Kazakov
2001-04-02 13:15 ` Robert A Duff
2001-04-03 8:57 ` Dmitry Kazakov
2001-03-27 2:39 ` Andrew Berg
2001-03-27 3:33 ` Ken Garlington
2001-03-27 14:23 ` Robert A Duff
2001-03-27 23:36 ` Ken Garlington
2001-03-29 23:50 ` Robert A Duff
2001-03-19 18:24 ` Better support for garbage collection Tucker Taft
[not found] ` <87bsr46kxv.fsf@deneb.enyo.de>
2001-03-15 14:18 ` Robert A Duff
2001-03-15 16:36 ` Florian Weimer
2001-03-14 22:05 ` Laurent Guerby
2001-03-16 16:47 ` Robert A Duff
2001-03-16 19:46 ` Laurent Guerby
2001-03-16 20:10 ` Robert A Duff
2001-03-17 13:14 ` Support for per allocation pool selection (was: Better support for garbage collection) Laurent Guerby
2001-03-17 17:06 ` Robert A Duff
2001-03-17 19:19 ` Florian Weimer
2001-03-17 21:10 ` Robert A Duff
2001-03-15 17:56 ` Better support for garbage collection Ray Blaak
2001-03-21 16:15 ` Implementing C/C++ style #include bhazzard
2001-03-21 16:45 ` Marin David Condic
2001-03-22 15:13 ` Ira D. Baxter
2001-03-22 15:23 ` Marin David Condic
2001-03-25 15:45 ` Anton Gibbs
2001-03-26 14:24 ` Ted Dennison
2001-03-26 15:00 ` Marin David Condic
2001-03-26 14:49 ` Marin David Condic
2001-03-26 18:19 ` Stephen Leake
2001-03-26 18:44 ` Pascal Obry
2001-03-26 21:44 ` Robert A Duff
2001-03-27 3:02 ` Andrew Berg
2001-03-27 3:27 ` Phaedrus
2001-03-27 17:41 ` Pascal Obry
2001-03-26 19:18 ` Ted Dennison
2001-03-27 18:51 ` Anton Gibbs
2001-03-26 19:35 ` Marin David Condic
2001-03-26 23:04 ` Mark Lundquist
2001-03-27 14:38 ` Marin David Condic
2001-03-26 16:12 ` Florian Weimer
2001-03-26 17:34 ` David Starner
2001-03-26 22:25 ` Florian Weimer
2001-03-27 3:29 ` David Starner
2001-03-26 18:23 ` Stephen Leake
2001-03-26 22:34 ` Florian Weimer
2001-03-27 7:34 ` Ole-Hjalmar Kristensen
2001-03-27 12:43 ` Dale Stanbrough
2001-03-27 14:40 ` Marin David Condic
2001-03-27 15:01 ` Ted Dennison
2001-03-27 13:20 ` Preben Randhol
2001-03-23 17:39 ` Wes Groleau
2001-03-21 18:07 ` Mark Lundquist
2001-03-22 12:50 ` Chris M. Moore
2001-03-22 14:30 ` Marin David Condic
2001-03-22 21:15 ` singlespeeder
2001-03-22 21:42 ` Marin David Condic
2001-03-23 14:43 ` Georg Bauhaus
2001-03-23 18:51 ` Marin David Condic
2001-03-22 15:02 ` Pat Rogers
2001-03-22 15:28 ` Marin David Condic
2001-03-22 16:32 ` Chris M. Moore
2001-03-22 16:57 ` Robert A Duff
2001-03-26 16:13 ` Martin Dowie
2001-03-26 22:55 ` Phaedrus
2001-03-27 1:36 ` tmoran
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox