comp.lang.ada
 help / color / mirror / Atom feed
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





  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