From: leake@cme-durer.ARPA (Stephe Leake)
Subject: Re: Ada language revision
Date: 29 Nov 88 15:35:35 GMT [thread overview]
Message-ID: <749@marvin.cme-durer.ARPA> (raw)
In-Reply-To: billwolf@hubcap.clemson.edu's message of 23 Nov 88 22:22:13 GMT
In article <3656@hubcap.UUCP> billwolf@hubcap.clemson.edu (William Thomas Wolfe,2847,) writes:
Consider an ADT which contains pointers to substructures.
A user declares an access type pointing to an instance of your
ADT, and uses UNCHECKED_DEALLOCATION to destroy that instance
after finishing with it. UNCHECKED_DEALLOCATION will not
recursively chase down and free up what might constitute
over 99% of the space occupied by the ADT. Similarly, if your
ADT uses another ADT in its implememtation, your DESTROY procedure
will include a call to the DESTROY procedure of the sub-ADT,
but UNCHECKED_DEALLOCATION will remain oblivious to the method
which must be used to properly destroy the sub-ADT.
I see. Currently, the ADT author must provide a Destroy procedure, and
hope that users of the ADT call it as needed. So it would be nice if
the compiler would enforce this. This doesn't sound to bad; we just
need to add a generic parameter to UNCHECKED_DEALLOCATION (LRM 13.10.1):
generic
type OBJECT is limited private;
type NAME is access OBJECT;
with procedure DESTROY (Y : in OBJECT) is <>;
procedure UNCHECKED_DEALLOCATION (X : in out NAME);
With a default definition of DESTROY declared in Standard, defining
UNCHECKED_DEALLOCATION this way would not break any current Ada
program that uses it. There is still a slight problem; if the
appropriate DESTROY procedure is not visible at the time of
instantiation, we lose.
Stephe Leake (301) 975-3431 leake@cme.nbs.gov
National Institute of Standards and Technology
(formerly National Bureau of Standards)
Rm. B-124, Bldg. 220
Gaithersburg, MD 20899
next prev parent reply other threads:[~1988-11-29 15:35 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
1988-11-14 13:20 Ada language revision Stanley Roger Allen, AdaDude
1988-11-15 23:28 ` Wilmer Rivers
1988-11-16 19:06 ` William Thomas Wolfe,2847,
1988-11-17 15:34 ` Stephe Leake
1988-11-18 16:39 ` Steve Tynor
1988-11-18 19:22 ` Ron Guilmette
1988-11-23 22:22 ` William Thomas Wolfe,2847,
1988-11-29 15:35 ` Stephe Leake [this message]
1988-11-18 0:32 ` Ron Guilmette
1988-11-22 14:37 ` Stephe Leake
1988-11-23 13:37 ` Dennis Doubleday
1988-11-23 19:41 ` Steve Tynor
1988-11-23 21:14 ` Richard Pattis
1988-11-25 20:36 ` Robert Firth
1988-11-29 15:12 ` limited private types Stephe Leake
1988-12-01 23:06 ` Ron Guilmette
1988-12-05 1:48 ` Paul Stachour
1988-12-05 12:31 ` Reference Semantics William Thomas Wolfe,2847,
1988-12-06 0:29 ` Paul Stachour
1988-12-07 1:07 ` Reference Semantics, assignment overloading, etc Ray Trent
1988-12-08 17:36 ` Reference Semantics, assignment ryer
1988-12-06 16:56 ` limited private types ryer
1988-12-06 20:09 ` stt
1988-12-07 15:51 ` Stephe Leake
1988-11-21 15:40 ` Ada language revision stt
-- strict thread matches above, loose matches on Subject: below --
1988-11-28 22:19 Collective response to := messages Geoff Mendal
1988-11-29 14:39 ` Dennis Doubleday
1988-11-29 21:08 ` Ray Trent
1988-11-30 14:37 ` Stephe Leake
1988-12-01 14:54 ` David S. Rosenblum
1988-12-02 20:21 ` William Thomas Wolfe,2847,
1988-12-04 21:15 ` David S. Rosenblum
1988-12-04 23:27 ` William Thomas Wolfe,2847,
1988-12-05 14:46 ` David S. Rosenblum
1988-12-05 21:23 ` William Thomas Wolfe,2847,
1988-12-07 17:33 ` Stephe Leake
1988-12-07 16:03 ` Definition of pass by reference Robert Eachus
1988-12-07 17:15 ` Collective response to := messages Stephe Leake
1988-12-07 16:07 ` Stephe Leake
1988-12-09 3:15 ` David S. Rosenblum
1988-12-01 21:31 ` Ray Trent
1988-12-07 16:21 ` Stephe Leake
1988-11-30 16:29 ` David S. Rosenblum
1988-11-30 18:29 ` William Thomas Wolfe,2847,
1988-11-30 22:28 ` David S. Rosenblum
1988-12-01 3:09 ` William Thomas Wolfe,2847,
1988-12-01 15:16 ` David S. Rosenblum
1988-12-02 19:31 ` William Thomas Wolfe,2847,
1988-12-04 21:03 ` David S. Rosenblum
1988-12-05 2:34 ` William Thomas Wolfe,2847,
1988-12-05 14:07 ` David S. Rosenblum
1988-12-07 17:26 ` Stephe Leake
1988-12-06 19:16 ` Collective response to := messa stt
1988-12-09 3:39 ` David S. Rosenblum
1988-11-30 19:13 ` CORRECTION Re: Collective response to := messages David S. Rosenblum
1988-12-01 18:31 ` Ray Trent
1988-12-02 14:49 ` David S. Rosenblum
1988-12-05 17:33 ` Collective response to := messa stt
1988-11-30 18:24 ` Collective response to := messages Robert Eachus
1988-12-02 14:58 ` David S. Rosenblum
1988-12-02 19:34 ` Mark C. Adolph
1988-12-05 17:15 ` Collective response to := messa stt
1988-11-29 21:44 ` Collective response to := messages William Thomas Wolfe,2847,
1989-07-26 20:34 Memory Access Question tony
1989-07-27 13:06 ` richard a hammond
1989-07-27 18:53 ` Ray Trent
1989-07-28 0:48 ` Mike Murphy
1989-08-02 13:23 ` Mike Walsh
1989-08-02 20:20 ` Mike Murphy
1989-07-29 0:00 ` Brian Sullivan
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox