From: Victor Porton <porton@narod.ru>
Subject: Re: Allocators design flaw
Date: Sun, 15 Oct 2017 00:26:28 +0300
Date: 2017-10-15T00:26:28+03:00 [thread overview]
Message-ID: <ortve9$sfd$1@gioia.aioe.org> (raw)
In-Reply-To: ly8tgdbii7.fsf@pushface.org
Simon Wright wrote:
> Victor Porton <porton@narod.ru> writes:
>
>> There is nothing in Ada standard to prevent the above "new" operator
>> to request 256-byte alignment of the data. (Yes, I know this does not
>> happen in practice, but it is not forbidden by the RM.)
>>
>> If it requests such a great alignment by the C function
>> *_alloc_memory() is able to do only 16-byte alignment, then my
>> allocator would break the contract, that is allocate with lesser
>> alignment than requested.
>
> Since you agree it's very unlikely that an Ada compiler would actually
> do that, why not just check the requested alignment & raise PE if it's
> too large?
I already considered this, but:
It does not seem absolutely impossible that Ada never requests alignment
above the minimum alignment for allocated C structs. (And all we can know
about the allocator in the C library is that it is appropriate for structs.)
For example 4 bytes seems a possible alignment for C structs, but I can't be
completely sure that Ada never requests 8 bytes alignment.
Yes, this is unlikely, but not entirely impossible.
So I have rewritten my code without using allocators at all.
--
Victor Porton - http://portonvictor.org
next prev parent reply other threads:[~2017-10-14 21:26 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-14 2:53 Allocators design flaw Victor Porton
2017-10-14 7:27 ` Dmitry A. Kazakov
2017-10-14 13:52 ` Victor Porton
2017-10-14 14:25 ` Dmitry A. Kazakov
2017-10-14 14:03 ` Victor Porton
2017-10-14 14:26 ` Dmitry A. Kazakov
2017-10-14 15:18 ` Victor Porton
2017-10-14 15:44 ` Dmitry A. Kazakov
2017-10-14 16:42 ` Victor Porton
2017-10-14 16:13 ` Simon Wright
2017-10-14 16:38 ` Victor Porton
2017-10-14 14:12 ` Victor Porton
2017-10-14 14:20 ` Victor Porton
2017-10-14 14:24 ` Victor Porton
2017-10-14 14:36 ` Dmitry A. Kazakov
2017-10-14 15:17 ` Victor Porton
2017-10-14 15:51 ` Dmitry A. Kazakov
2017-10-14 16:34 ` Victor Porton
2017-10-14 17:14 ` Dmitry A. Kazakov
2017-10-14 17:24 ` Victor Porton
2017-10-14 18:08 ` Dmitry A. Kazakov
2017-10-14 14:28 ` Dmitry A. Kazakov
2017-10-14 15:14 ` Victor Porton
2017-10-14 15:42 ` Simon Wright
2017-10-14 16:29 ` Victor Porton
2017-10-14 20:07 ` Simon Wright
2017-10-14 21:26 ` Victor Porton [this message]
2017-10-21 1:42 ` Randy Brukardt
2017-10-14 8:02 ` Simon Wright
2017-10-14 13:59 ` Victor Porton
2017-10-14 14:35 ` Simon Wright
2017-10-14 15:11 ` Victor Porton
2017-10-14 15:56 ` Simon Wright
2017-10-14 16:22 ` Victor Porton
2017-10-29 16:01 ` David Thompson
2017-10-14 14:11 ` Victor Porton
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox