From: Jere <jhb.chat@gmail.com>
Subject: Re: Extending a third party tagged type while adding finalization
Date: Sat, 2 Dec 2017 18:47:46 -0800 (PST)
Date: 2017-12-02T18:47:46-08:00 [thread overview]
Message-ID: <037e7f02-9149-4648-b7c5-91f67c1c1961@googlegroups.com> (raw)
In-Reply-To: <ovifm6$f74$1@franka.jacob-sparre.dk>
On Monday, November 27, 2017 at 8:55:19 PM UTC-5, Randy Brukardt wrote:
> "Jere" wrote in message
> ...
> >> Based on what I have read so far, I didn't see any discussion that would
> >> lead me to think this will be changed at least in the near future. I
> >> wish there was a way it would be easy for vendors to do something like:
> >>
> >> type Some_Type is tagged private;
> >> for Some_Type'Initialize use Initialize_Some_Type;
> >> for Some_Type'Adjust use Adjust_Some_Type;
> >> for Some_Type'Finalize use Finalize_Some_Type;
> >>
> >> and then just have the compiler handle adding the needed structures
> >> to the type under the hood (like how GNAT uses Controlled to hold
> >> a linked list under the hood...but compiler managed).
>
> The only way this could be made to work in Janus/Ada would be for all tagged
> types to be controlled, which would waste time and space for types that
> aren't actually controlled. Since Janus/Ada was designed to be
> space-efficient, that would be going directly against our primary goal - not
> something I'd do without a fight.
>
> Randy.
Well, I am definitely not advocating that all tagged types need to be
controlled. I was just musing about whether there was a different way
to do it. The Ada Finalization method is very clunky and can be
limiting at times. There may not be a better way to do it. At the
end of the day, I find a lot of the errors our programmers make is
forgetting to put in a Create/Intialize or Clean_Up/Finalize call
on objects that do not have Controlled ancestors. It's a
maintenance headache, so I look for ways to try to remedy that via
design.
next prev parent reply other threads:[~2017-12-03 2:47 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-22 12:43 Extending a third party tagged type while adding finalization Jere
2017-11-22 16:42 ` AdaMagica
2017-11-26 17:33 ` Jere
2017-11-26 18:15 ` Dmitry A. Kazakov
2017-11-26 19:31 ` Jere
2017-11-27 9:46 ` AdaMagica
2017-11-27 12:56 ` Jere
2017-11-27 15:00 ` AdaMagica
2017-11-27 16:38 ` Jere
2017-11-27 18:37 ` AdaMagica
2017-11-27 19:53 ` Jere
2017-11-28 11:48 ` AdaMagica
2017-12-03 2:22 ` Jere
2017-12-03 21:53 ` Robert Eachus
2017-12-04 7:58 ` Dmitry A. Kazakov
2017-12-04 14:59 ` Robert Eachus
2017-12-04 15:39 ` Dmitry A. Kazakov
2017-11-27 18:10 ` Shark8
2017-11-27 19:56 ` Jere
2017-11-28 1:55 ` Randy Brukardt
2017-12-03 2:47 ` Jere [this message]
2017-12-03 9:29 ` Dmitry A. Kazakov
2017-12-03 15:10 ` AdaMagica
2017-12-03 16:39 ` Dmitry A. Kazakov
2017-12-03 19:34 ` AdaMagica
2017-12-03 19:41 ` Dmitry A. Kazakov
2017-12-04 12:38 ` AdaMagica
2017-12-04 13:19 ` AdaMagica
2017-12-04 13:55 ` Dmitry A. Kazakov
2017-12-04 15:44 ` AdaMagica
2017-12-04 16:19 ` Dmitry A. Kazakov
2017-12-04 20:54 ` Randy Brukardt
2017-12-04 21:02 ` Dmitry A. Kazakov
2017-12-05 21:09 ` Randy Brukardt
2017-12-05 21:29 ` Dmitry A. Kazakov
2017-12-07 1:13 ` Randy Brukardt
2017-12-07 8:36 ` Dmitry A. Kazakov
2017-12-07 23:22 ` Randy Brukardt
2017-12-08 9:30 ` Dmitry A. Kazakov
2017-12-09 0:17 ` Randy Brukardt
2017-12-11 9:03 ` Dmitry A. Kazakov
2017-12-11 22:42 ` Randy Brukardt
2017-12-12 16:11 ` AdaMagica
2017-12-12 20:08 ` G. B.
2017-12-12 20:32 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox