comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ada OS based on Minix3
Date: Wed, 12 Nov 2008 18:58:33 -0600
Date: 2008-11-12T18:58:33-06:00	[thread overview]
Message-ID: <gffu3u$gm1$1@jacob-sparre.dk> (raw)
In-Reply-To: 14ay3vz2ngj9s.1bmilwgckl3lc$.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:14ay3vz2ngj9s.1bmilwgckl3lc$.dlg@40tude.net...
...
>>> 5. Getting a pool-specific pointer to the object upon
>>> initialization/finalization, when the object is allocated in such a 
>>> pool.
>>> (Unchecked_Conversion is really nasty there)
>>
>> I think you mean Unchecked_Access -- Unchecked_Conversion is not
>> necessary.
>>
>> I don't see how this can make sense.  In Initialize or Finalize, you
>> don't know whether the object is in a pool, nor which pool.  So how can
>> you get a pool-specific pointer?
>
> That is exactly the problem. Consider objects allocated on a user-defined
> pool. The object are linked into some list. When a new object is created
> the "constructor" places it into the list. When the object is destroyed,
> the "destructor" removes it. For both, you need a self-pointer, but you
> cannot get it from an "in out" parameter.

Sorry, but this is completely wrong. This is *exactly* how Claw works, and 
it works fine with Ada 95. It is perfectly OK to get a pointer from a 
parameter of a tagged object. You do have to use 'Unchecked_Access, but that 
is no problem if you are using Finalize to clean up.

...
>> 10. Reify the finalization operation (that is, the operation on some
>>     type that calls Finalize on all the parts of it, including the
>>     whole).
>
> I.e. a destructor. But it is semantically broken to have such. It would
> destroy an object leaving a dangling typed name of.
>
> I think that the trick can be achieved with an access type to some fake
> storage pool. The Unchecked_Deallocation is called on the pointer. That
> does the finalization. Then the pool's Deallocate is called, which does
> nothing.

Yup. And you can do that now. So what's the big deal. At worst, it's not as 
convinient as it could be.

Most of the rest of the stuff that you and Bob have talked about is too 
incompatible to consider for Ada. A new Ada-like language could do these 
things, but there isn't much likelyhood of anyone using that.

                              Randy.





  reply	other threads:[~2008-11-13  0:58 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-07 14:10 Ada OS based on Minix3 Cedric.Lannock
2008-11-07 16:20 ` xavier grave
2008-11-08  3:46 ` anon
2008-11-10  8:12 ` Ivan Levashew
2008-11-10  8:58   ` Dmitry A. Kazakov
2008-11-10  9:26     ` Ivan Levashew
2008-11-10 10:11     ` Georg Bauhaus
2008-11-10 10:24     ` Jacob Sparre Andersen
2008-11-10 10:51       ` Dmitry A. Kazakov
2008-11-10 11:07         ` Ludovic Brenta
2008-11-10 11:42           ` Ivan Levashew
2008-11-10 12:04             ` Ludovic Brenta
2008-11-11 22:16           ` Robert A Duff
2008-11-12  6:28             ` Ivan Levashew
2008-11-10 10:50     ` Ivan Levashew
2008-11-10 11:01       ` Dmitry A. Kazakov
2008-11-10 15:31         ` Robert A Duff
2008-11-10 15:56           ` Dmitry A. Kazakov
2008-11-11 22:09             ` Robert A Duff
2008-11-12  9:47               ` Dmitry A. Kazakov
2008-11-13  0:58                 ` Randy Brukardt [this message]
2008-11-13 17:28                   ` Dmitry A. Kazakov
2008-11-13 23:25                     ` Randy Brukardt
2008-11-14  9:30                       ` Dmitry A. Kazakov
2008-11-14 23:11                 ` Robert A Duff
2008-11-15 10:04                   ` Dmitry A. Kazakov
2008-11-15 11:57                     ` Programmer controlled object creation (was: Re: Ada OS based on Minix3) Georg Bauhaus
2008-11-15 12:44                       ` Programmer controlled object creation Dmitry A. Kazakov
2008-11-10 10:18   ` Ada OS based on Minix3 Georg Bauhaus
2008-11-11  1:00 ` Freejack
2008-11-11  8:32 ` Martin Krischik
2008-11-11 11:09   ` Peter C. Chapin
2008-11-11 11:59     ` Georg Bauhaus
2008-11-11 14:35       ` Ludovic Brenta
2008-11-11 16:49         ` Georg Bauhaus
2008-11-13  7:10         ` Martin Krischik
2008-11-13  7:01       ` Martin Krischik
2008-11-13  6:48     ` Martin Krischik
2008-11-13  8:09       ` Thomas Locke
2008-11-13 10:16         ` Alex R. Mosteo
replies disabled

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