From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Custom Storage Pool questions
Date: Sat, 18 Sep 2021 18:59:27 +0300 [thread overview]
Message-ID: <iqmgn0F8ftgU1@mid.individual.net> (raw)
In-Reply-To: <si4ell$1b25$1@gioia.aioe.org>
On 2021-09-18 13:22, Dmitry A. Kazakov wrote:
> On 2021-09-18 11:03, Niklas Holsti wrote:
>> On 2021-09-18 10:49, Dmitry A. Kazakov wrote:
>>> On 2021-09-17 23:17, Niklas Holsti wrote:
>>>> On 2021-09-17 23:39, Dmitry A. Kazakov wrote:
>>>>> On 2021-09-17 21:46, Simon Wright wrote:
>>>>>> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes:
>>>>>>
>>>>>>> Nope, especially because the issue with X'Address being unusable for
>>>>>>> memory pool developers is a long standing painful problem that
>>>>>>> need to
>>>>>>> be resolved. That will never happen until a measurable group of
>>>>>>> people
>>>>>>> start asking questions. So you are doubly welcome.
>>>>>>
>>>>>> There are two attributes that we should all have known about,
>>>>>> Descriptor_Size[1] (bits, introduced in 2011) and
>>>>>> Finalization_Size[2]
>>>>>> (storage units, I think, introduced in 2017)
>>>>>
>>>>> They are non-standard and have murky semantics I doubt anybody
>>>>> really cares about.
>>>>>
>>>>> What is needed is the address passed to Deallocate should the
>>>>> object be freed = the address returned by Allocate. Is that too
>>>>> much to ask?
>>>>
>>>> That is already required by RM 13.11(21.7/3): "The value of the
>>>> Storage_Address parameter for a call to Deallocate is the value
>>>> returned in the Storage_Address parameter of the corresponding
>>>> successful call to Allocate."
>>>
>>> You missed the discussion totally. It is about X'Address attribute.
>>
>>
>> Sure, I understand that the address returned by Allocate, and passed
>> to Deallocate, for an object X, is not always X'Address, and that you
>> would like some means to get the Allocate/Deallocate address from (an
>> access to) X. But what you stated as not "too much to ask" is
>> specifically required in the RM paragraph I quoted. Perhaps you meant
>> to state something else, about X'Address or some other attribute, but
>> that was not what you wrote.
>
> I wrote about attributes, specifically GNAT-specific ones used in the
> blog to calculate the correct address.
You wrote about the attributes in an earlier paragraph, not the one that
said "too much to ask" -- see the quotes above. But ok, enough said.
> "Too much to ask" was about an
> attribute that would return the object address directly.
>
>> Given that an object can be allocated in multiple independent pieces,
>> it seems unlikely that what you want will be provided.
>
> Such implementations would automatically disqualify the compiler.
> Compiler-generated piecewise allocation is OK for the stack, not for
> user storage pools.
That is your opinion (or need), to which you are entitled, of course,
but it is not an RM requirement on compilers -- see Randy's posts about
what Janus/Ada does.
>>>>> BTW, finalization lists (#2) should have been removed from the
>>>>> language long ago.
>>>>
>>>> Huh? Where does the RM _require_ finalization lists?
>>>
>>> 7.6.1 (11 1/3)
>>
>>
>> RM (2012) 7.6.1 (11.1/3) says only that objects must be finalized in
>> reverse order of their creation.
Oops, I quoted the above from 7.6.1 (11/3), which specifies the order of
finalization in another case (finalization of a master). RM 7.6.1
(11.1/3) leaves the order arbitrary for the finalization of a collection.
>> There is no mention of "list".
>
> It talks about "collection."
>
>> Then your complaint seems to be about something specified for the
>> order of finalization, but you haven't said clearly what that
>> something is.
>
> No, it is about the overhead of maintaining "collections" associated
> with an access type in order to call Finalization for all members of the
> collection.
So you want a way to specify that for a given access type, although the
accessed object type has a Finalize operation or needs finalization, the
objects left over in the (at least conceptually) associated collection
should _not_ be finalized when the scope of the access type is left?
Have you proposed this to the ARG?
To me it seems a risky think to do, subverting the normal semantics of
initialization and finalization. Perhaps it could be motivated for
library-level collections in programs that are known to never terminate
(that is, to not need any clean-up when they do stop or are stopped).
next prev parent reply other threads:[~2021-09-18 15:59 UTC|newest]
Thread overview: 97+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-09-13 0:53 Custom Storage Pool questions Jere
2021-09-13 5:29 ` Randy Brukardt
2021-09-14 1:04 ` Jere
2021-09-21 0:06 ` Randy Brukardt
2021-09-18 11:32 ` Simon Wright
2021-09-20 0:31 ` Jere
2021-09-20 6:34 ` Niklas Holsti
2021-09-20 6:48 ` Emmanuel Briot
2021-09-20 7:35 ` Dmitry A. Kazakov
2021-09-20 16:59 ` Shark8
2021-09-21 0:50 ` Randy Brukardt
2021-09-21 23:08 ` Jere
2021-09-28 4:42 ` Randy Brukardt
2021-10-02 23:19 ` Jere
2021-10-03 8:52 ` Dmitry A. Kazakov
2021-10-14 1:26 ` Randy Brukardt
2021-09-13 11:12 ` J-P. Rosen
2021-09-14 0:48 ` Jere
2021-09-14 6:08 ` J-P. Rosen
2021-09-15 0:39 ` Jere
2021-09-15 7:01 ` Simon Wright
2021-09-16 23:32 ` Jere
2021-09-20 23:51 ` Randy Brukardt
2021-09-21 22:40 ` Jere
2021-09-14 6:23 ` Dmitry A. Kazakov
2021-09-14 6:42 ` J-P. Rosen
2021-09-14 7:00 ` Dmitry A. Kazakov
2021-09-20 23:58 ` Randy Brukardt
2021-09-15 0:21 ` Jere
2021-09-15 6:54 ` Dmitry A. Kazakov
2021-09-20 23:48 ` Randy Brukardt
2021-09-14 10:54 ` Egil H H
2021-09-15 0:11 ` Jere
2021-09-15 16:43 ` Simon Wright
2021-09-15 17:03 ` Simon Wright
2021-09-15 19:07 ` Dmitry A. Kazakov
2021-09-15 20:40 ` Simon Wright
2021-09-16 7:12 ` Emmanuel Briot
2021-09-16 23:21 ` Jere
2021-09-17 7:08 ` Emmanuel Briot
2021-09-17 7:18 ` Simon Wright
2021-09-17 13:56 ` Dmitry A. Kazakov
2021-09-17 19:46 ` Simon Wright
2021-09-17 20:39 ` Dmitry A. Kazakov
2021-09-17 21:17 ` Niklas Holsti
2021-09-18 7:49 ` Dmitry A. Kazakov
2021-09-18 9:03 ` Niklas Holsti
2021-09-18 10:22 ` Dmitry A. Kazakov
2021-09-18 15:59 ` Niklas Holsti [this message]
2021-09-18 16:19 ` Dmitry A. Kazakov
2021-09-19 10:36 ` Niklas Holsti
2021-09-19 11:41 ` Dmitry A. Kazakov
2021-09-20 7:05 ` Niklas Holsti
2021-09-20 7:35 ` Dmitry A. Kazakov
2021-09-20 8:08 ` Niklas Holsti
2021-09-20 8:28 ` Dmitry A. Kazakov
2021-09-21 0:45 ` Randy Brukardt
2021-09-21 0:40 ` Randy Brukardt
2021-09-21 0:30 ` Randy Brukardt
2021-09-21 0:37 ` Randy Brukardt
2021-09-21 6:28 ` Dmitry A. Kazakov
2021-09-28 4:38 ` Randy Brukardt
2021-09-28 7:00 ` Dmitry A. Kazakov
2021-09-21 0:26 ` Randy Brukardt
2021-09-21 6:51 ` Dmitry A. Kazakov
2021-09-28 4:31 ` Randy Brukardt
2021-09-28 6:56 ` Dmitry A. Kazakov
2021-09-28 7:52 ` Simon Wright
2021-09-28 8:07 ` Dmitry A. Kazakov
2021-09-28 22:04 ` Randy Brukardt
2021-09-29 7:57 ` Dmitry A. Kazakov
2021-09-29 14:41 ` Shark8
2021-09-29 15:16 ` Dmitry A. Kazakov
2021-09-30 0:16 ` Randy Brukardt
2021-09-30 8:08 ` Dmitry A. Kazakov
2021-10-01 0:04 ` Randy Brukardt
2021-10-01 8:25 ` Dmitry A. Kazakov
2021-10-02 9:06 ` Randy Brukardt
2021-10-02 10:18 ` Dmitry A. Kazakov
2021-10-03 4:33 ` Randy Brukardt
2021-10-03 8:40 ` Dmitry A. Kazakov
2021-10-14 1:21 ` Randy Brukardt
2021-10-14 3:12 ` philip...@gmail.com
2021-10-14 7:31 ` Dmitry A. Kazakov
2021-10-15 0:36 ` Randy Brukardt
2021-10-15 8:08 ` Stephen Leake
2021-10-15 8:18 ` Dmitry A. Kazakov
2021-10-15 22:22 ` Randy Brukardt
2021-10-15 8:15 ` Dmitry A. Kazakov
2021-10-15 22:44 ` Randy Brukardt
2021-10-16 9:00 ` Dmitry A. Kazakov
2021-10-16 14:32 ` Simon Wright
2021-10-16 15:06 ` Dmitry A. Kazakov
2021-10-18 14:23 ` Shark8
2021-09-21 0:19 ` Randy Brukardt
2021-09-21 0:18 ` Randy Brukardt
2021-09-16 8:41 ` 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