comp.lang.ada
 help / color / mirror / Atom feed
* Allocators design flaw
@ 2017-10-14  2:53 Victor Porton
  2017-10-14  7:27 ` Dmitry A. Kazakov
                   ` (2 more replies)
  0 siblings, 3 replies; 36+ messages in thread
From: Victor Porton @ 2017-10-14  2:53 UTC (permalink / raw)


It is impossible to properly implement an allocator through a C function 
(such as raptor_alloc_memory() from Raptor C library) which allocates a 
struct and returns the pointer to the allocated struct.

It is because RM13.11(21.5/3) "The Alignment parameter is a nonzero integral 
multiple of D'Alignment..."

(If it were "The Alignment parameter is equal to D'Alignment", then we would 
be able just to check (in Allocate procedure implementation) that

pragma Assert(Dummy_Record'Alignment mod Alignment = 0);
-- where Dummy_Record is an arbitrary C-convention record
-- (as all C records have the same alignment reqs)

So Alignment parameter may be arbitrarily big and the C function alignment 
may not conform to it.

Let us think how to work around (in Ada 202x) of this design flaw.

-- 
Victor Porton - http://portonvictor.org

^ permalink raw reply	[flat|nested] 36+ messages in thread

end of thread, other threads:[~2017-10-29 16:01 UTC | newest]

Thread overview: 36+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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