comp.lang.ada
 help / color / mirror / Atom feed
From: dog.ee.lbl.gov!hellgate.utah.edu!caen!zaphod.mps.ohio-state.edu!rpi!bu.ed u!inmet!spock!stt@ucbvax.Berkeley.EDU  (Tucker Taft)
Subject: Re: User-defined assignment
Date: 21 Oct 92 23:42:11 GMT	[thread overview]
Message-ID: <1992Oct21.234211.5684@inmet.camb.inmet.com> (raw)

In article <HUDSON.92Oct20101211@yough.cs.umass.edu> 
  hudson@cs.umass.edu writes:

>>>>>> On Sat, 17 Oct 1992 23:32:09 GMT, 
  stt@spock.camb.inmet.com (Tucker Taft) said:

>Tucker> Therefore, this sort of user-defined assignment is 
>Tucker> supported, and Initialize and Finalize work correctly,
>Tucker> in the presence of exceptions and abort.  (What this means
>Tucker> is that Finalize is performed on an object if and only if Initialize
>Tucker> is performed on the object, and both Initialize and Finalize defer abo
rt
>Tucker> until they complete, once they get started.)
>
>It is probable wrong to formally specify that Finalize will *defer* abort
>until it completes. Such a specification pretty much limits Ada to gc
>strategies that utilize reference counts which are not as efficient
>generational copying collectors. While such forms of memory management may be
>the only strategies that are currently envisioned for Ada, similar languages
>such as Modula-3 have shown that other solution are possible. If the Ada 9X
>folks simply say that Finalization will eventually happen (possible
>concurrently) then it doesn't cut off roads that might lead to interesting
>places.

If you reread what it says above, it says that "Finalize" defers
abort until it completes, *once it gets started.*
For stack-allocated variables, Finalize is required to happen prior
to exiting the frame.  For heap-allocated variables, Finalize
may be performed automatically as soon as the object is no longer
accessible, or anytime thereafter, up until the access type itself
goes away.  Alternatively, if the user explicitly deallocates a 
heap-allocated object (via UNCHECKED_DEALLOCATION), Finalize is performed
immediately prior to reclaiming the storage.

In other words, garbage collection is permitted in Ada 9X, and
even acknowledged in the proposed language rules (as it was in Ada 83).
Now all we are waiting for is enough bucks to get some Ada compiler
vendor to implement it.  The ones who tried in the past (AT&T and Symbolics)
never became major players in the Ada market.  Maybe this will
change, but we did not feel it was appropriate to mandate garbage
collection without some proof of commercial viability.  Perhaps
by 200X we will be ready to require GC for Ada.  Until then, you
will have to use your wallet rather than the "club" of the ANSI standard
to get GC into your favorite Ada compiler...

>       Richard L. Hudson  -  Hudson@cs.umass.edu; (413) 545-1220; 
>       Advanced Languages Project - University Computing Services
>       Lederle Graduate Research Center
>       University of Massachusetts             Amherst, MA  01003

S. Tucker Taft    stt@inmet.com
Ada 9X Mapping/Revision Team
Intermetrics, Inc.
Cambridge, MA  02138

             reply	other threads:[~1992-10-21 23:42 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1992-10-21 23:42 dog.ee.lbl.gov!hellgate.utah.edu!caen!zaphod.mps.ohio-state.edu!rpi!bu.ed [this message]
  -- strict thread matches above, loose matches on Subject: below --
1992-10-30  2:39 User-defined assignment Alex Blakemore
1992-10-29 18:20 Jack Beidler
1992-10-22 22:19 dog.ee.lbl.gov!hellgate.utah.edu!caen!zaphod.mps.ohio-state.edu!darwin.su
1992-10-20 15:12 Rick Hudson
1992-10-19 14:13 Douglas N. Surber
1992-10-19  7:55 Dag Bruck
1992-10-19  7:31 Dag Bruck
1992-10-18 19:29 cis.ohio-state.edu!zaphod.mps.ohio-state.edu!darwin.sura.net!uvaarpa!soft
1992-10-17 23:32 Tucker Taft
1992-10-17 17:57 dog.ee.lbl.gov!hellgate.utah.edu!caen!malgudi.oar.net!zaphod.mps.ohio-sta
1992-10-16 23:13 dog.ee.lbl.gov!hellgate.utah.edu!cs.utexas.edu!qt.cs.utexas.edu!news.Brow
1992-10-16 11:58 St ef Van Vlierberghe
1988-12-09 13:16 user-defined assignment Robert Firth
1988-12-09 20:35 ` David S. Rosenblum
replies disabled

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