comp.lang.ada
 help / color / mirror / Atom feed
From: Matthew Heaney <matthew_heaney@acm.org>
Subject: Re: Why C++ is successful
Date: 1998/08/02
Date: 1998-08-02T00:00:00+00:00	[thread overview]
Message-ID: <m31zqzve3r.fsf@mheaney.ni.net> (raw)
In-Reply-To: 35C42762.4F8D89C2@earthlink.net

Jay Martin <jaymmartin@earthlink.net> writes:

> Which turned out to be a technical mistake, because 
> I didn't remember a (non-embedded system) Ada compiler that did
> not implement "Unchecked_Deallocation".   Imagine
> the ridicule from C programmers: "You can call malloc
> but you can't even call free!."

It was probably too conservative, since the RM recommends that an
implementation really support UC.  And all implementations of Ada really
do support UC.

But even if he did use UC in the implementation of his unmanaged forms,
this isn't good enough, since the client would still have to explicitly
Clear the structure prior to exiting the scope of its declaration.
Otherwise a memory leak would occur.  This is what you have to do in the
managed forms too.

I've written an Ada95 data structures library very much like what Booch
provided, that does automatic garbage collection.  It wasn't that hard.

> > The Booch components had a very specific taxonomy.  Only "unmanaged"
> > components expect a garbage collector.  The "managed" forms do their own
> > garbage collection (using a storage manager, another component).
> 
> Which excepting multi-tasking and fixed sized forms, made up for
> roughly half the Booch components, over a 100
> component permutation banking on GC.

His taxonomy provides a menu from which you choose the forms that apply
to your situation.  You are not expected to use all the forms.

The functionality is the same in both the managed and unmanaged forms.
Just stick to the managed forms, and no GC is necessary.

That "roughly half" of his library "banks on GC" in a weak argument,
because you never use that half of the library.

If the fact that half the library goes unused upsets you, then just go
the the directory where you keep the components, and delete the
unmanaged forms.  After you do that, then _none_ of the library will
depend on GC.  And you'll have lots of extra disk space too!




  reply	other threads:[~1998-08-02  0:00 UTC|newest]

Thread overview: 101+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <35AE4621.2EBC7F6A@eiffel.com>
     [not found] ` <7hAr1.3249$9E2.2188373@news.teleport.com>
     [not found]   ` <35AF70B9.61C5BF88@oma.com>
     [not found]     ` <N.19980718.jjru@sisyphus.demon.co.uk>
     [not found]       ` <35B32BDC.5C2C@dmu.ac.uk>
     [not found]         ` <N.19980720.ulio@sisyphus.demon.co.uk>
     [not found]           ` <35B47EAD.3AA9@dmu.ac.uk>
     [not found]             ` <N.19980722.gwka@sisyphus.demon.co.uk>
     [not found]               ` <35B60AC4.D703E836@hso.link.com>
1998-07-25  0:00                 ` Bug story Fergus Henderson
1998-07-29  0:00                   ` Robert I. Eachus
     [not found] ` <6p83vj$657$1@news.intellistor.com>
     [not found]   ` <35B79E7D.6068DCDF@eiffel.com>
     [not found]     ` <6pg7fg$qhi$1@news.interlog.com>
     [not found]       ` <901533851.20058.0.nnrp-04.9e980ba3@news.demon.co.uk>
     [not found]         ` <35be2a94.57352308@netnews.msn.com>
1998-07-28  0:00           ` Why C++ is successful Rakesh Malhotra
1998-07-29  0:00             ` Dave Martin
1998-07-29  0:00               ` Pat Rogers
1998-07-29  0:00                 ` Juan Carlos Gil Montoro
1998-07-29  0:00                   ` Pat Rogers
1998-07-29  0:00                     ` Jay Martin
1998-07-30  0:00                       ` dennison
1998-07-30  0:00                     ` Ell
1998-07-29  0:00                       ` Larry Elmore
1998-07-30  0:00                         ` Jeffrey C. Dege
1998-08-01  0:00                           ` Robert Dewar
1998-07-30  0:00                         ` Ell
1998-07-29  0:00                       ` Pat Rogers
1998-07-30  0:00                         ` Ell
1998-07-30  0:00                         ` Ell
1998-07-29  0:00                 ` Brian Rogoff
1998-07-29  0:00                   ` Charles Hixson
1998-07-29  0:00                     ` falis
1998-07-30  0:00                     ` Robert I. Eachus
1998-07-31  0:00                       ` Charles Hixson
1998-08-01  0:00                     ` Jay Martin
1998-08-02  0:00                       ` Robert Dewar
1998-08-01  0:00                         ` Jay Martin
1998-08-02  0:00                           ` Matthew Heaney
1998-08-02  0:00                             ` Lars Farm
1998-08-02  0:00                               ` Matthew Heaney
1998-08-02  0:00                                 ` Lars Farm
1998-08-10  0:00                               ` Robert I. Eachus
1998-08-02  0:00                           ` Matthew Heaney
1998-08-02  0:00                             ` Jay Martin
1998-08-02  0:00                               ` Matthew Heaney [this message]
1998-07-29  0:00                   ` John McCabe
1998-07-29  0:00               ` Jean-Pierre Rosen
1998-07-29  0:00               ` John McCabe
1998-07-29  0:00                 ` nabbasi
1998-08-08  0:00                   ` Michael Young
1998-07-29  0:00               ` Rakesh Malhotra
1998-07-29  0:00             ` Tom Moran
1998-07-29  0:00               ` Ell
1998-07-29  0:00                 ` Tom Moran
1998-07-29  0:00                   ` Ell
1998-08-06  0:00 Robert Dewar
1998-08-07  0:00 ` Jason Stokes
1998-08-08  0:00   ` Robert Dewar
1998-08-10  0:00     ` Robert I. Eachus
1998-08-11  0:00     ` n
1998-08-14  0:00       ` Robert Dewar
     [not found]         ` <35D455AC.9225EAA7@hercii.mar.lmco.com>
1998-08-14  0:00           ` Robert L. Spooner
1998-08-10  0:00   ` Darren New
1998-08-07  0:00 ` harald.mueller
1998-08-07  0:00   ` Robert Dewar
1998-08-08  0:00     ` Patrick Logan
1998-08-07  0:00   ` Brian Rogoff
1998-08-07  0:00     ` Timothy Welch
1998-08-08  0:00       ` Dale Stanbrough
1998-08-08  0:00       ` Robert Dewar
1998-08-08  0:00         ` Jeffrey C. Dege
1998-08-08  0:00           ` Patrick Logan
1998-08-10  0:00           ` Laurent GUERBY
1998-08-12  0:00             ` Andy Ward
1998-08-12  0:00               ` Matt Kennel
1998-08-14  0:00               ` Robert Dewar
1998-08-13  0:00                 ` nasser
1998-08-19  0:00                   ` Don Harrison
1998-08-14  0:00                 ` Patrick Doyle
1998-08-16  0:00                   ` Robert Dewar
1998-08-16  0:00                     ` Patrick Doyle
1998-08-16  0:00                   ` Robert Dewar
1998-08-16  0:00                     ` Patrick Doyle
1998-08-18  0:00                     ` Martin Tom Brown
1998-08-14  0:00                 ` Ell
1998-08-17  0:00                   ` Robert I. Eachus
1998-08-17  0:00                     ` Patrick Logan
1998-08-18  0:00                       ` Samuel Tardieu
1998-08-14  0:00                 ` Jean-Pierre Rosen
1998-08-14  0:00                   ` Robert Martin
1998-08-16  0:00                     ` Robert Dewar
1998-08-16  0:00                       ` Rick Smith
1998-08-17  0:00                         ` Robert Dewar
1998-08-17  0:00                           ` Rick Smith
1998-08-16  0:00                       ` Robert Martin
1998-08-15  0:00                   ` Patrick Doyle
1998-08-15  0:00                     ` Jean-Pierre Rosen
1998-08-16  0:00                       ` Patrick Doyle
1998-08-16  0:00                       ` Robert Dewar
1998-08-17  0:00                         ` Jean-Pierre Rosen
1998-08-15  0:00                   ` Mr Ada
1998-08-16  0:00                     ` Robert Dewar
1998-08-16  0:00                   ` Robert Dewar
1998-08-11  0:00           ` stilcom
1998-08-12  0:00             ` Jeffrey C. Dege
1998-08-12  0:00               ` Andrew Koenig
1998-08-14  0:00               ` Stefan Tilkov
1998-08-08  0:00         ` Phlip
1998-08-08  0:00         ` Larry Elmore
  -- strict thread matches above, loose matches on Subject: below --
1998-08-06  0:00 Robert Dewar
1998-08-06  0:00 ` William Clodius
1998-08-06  0:00 ` Martin Dowie
1998-08-22  0:00 dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox