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

  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