From: Simon Wright <simon@pushface.org>
Subject: Re: Why can't objects be static in Ada?
Date: Tue, 16 Apr 2019 17:19:52 +0100
Date: 2019-04-16T17:19:52+01:00 [thread overview]
Message-ID: <ly1s21apnb.fsf@pushface.org> (raw)
In-Reply-To: 1127d366-d36c-4abf-8590-4b8c0e2b5446@googlegroups.com
Mark Lorenzen <mark.lorenzen@gmail.com> writes:
> On Tuesday, April 16, 2019 at 3:40:45 AM UTC+2, Randy Brukardt wrote:
>> >
>> > package Static is
>> > pragma Preelaborate;
>>
>> I view this as self-inflicted, because there's no little value to
>> pragma Preelaborate. As I previously noted, compilers will almost
>> always generate the best possible elaboration code whether or not
>> that pragma is applied. And regardless of C.4, not all preelaborated
>> code can be done before load time, so it isn't providing a benefit in
>> forcing that sort of code, either.
>>
>> It's one of the ideas where Ada tried to accomplish something, but
>> didn't quite succeed. Pure is like that as well, but at least it
>> provides some benefits for Annex E code. Preelaborate doesn't even do
>> that.
>
> How can it be ensured that a library written in Ada does not require
> any elaboration. Pragma Pure? I think that such libraries are "nice"
> but pragma Pure is too restrictive for that purpose. In such cases it
> would be good, if e.g. the OP's problem could be solved at compile
> time without any elaboration.
The GNAT pragma No_Elaboration_Code_All will do the trick (or fail if it
can't be done).
next prev parent reply other threads:[~2019-04-16 16:19 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-11 12:40 Why can't objects be static in Ada? Lucretia
2019-04-11 12:56 ` Mark Lorenzen
2019-04-11 13:31 ` Lucretia
2019-04-11 22:49 ` Randy Brukardt
2019-04-12 1:56 ` Lucretia
2019-04-12 7:33 ` Dmitry A. Kazakov
2019-04-12 22:38 ` Randy Brukardt
2019-04-13 9:14 ` Lucretia
2019-04-12 6:59 ` Mark Lorenzen
2019-04-12 8:12 ` Simon Wright
2019-04-12 22:02 ` Randy Brukardt
2019-04-13 13:07 ` Jere
2019-04-13 13:48 ` Lucretia
2019-04-15 17:46 ` G. B.
2019-04-14 3:47 ` Keith Thompson
2019-04-16 0:08 ` sbelmont700
2019-04-16 1:40 ` Randy Brukardt
2019-04-16 12:11 ` Mark Lorenzen
2019-04-16 16:19 ` Simon Wright [this message]
2019-04-16 20:56 ` Lucretia
2019-04-16 21:07 ` Niklas Holsti
2019-04-16 21:16 ` Lucretia
2019-04-16 21:40 ` Niklas Holsti
2019-04-16 23:26 ` Randy Brukardt
2019-04-23 14:30 ` Mark Lorenzen
2019-04-16 23:09 ` Randy Brukardt
2019-04-22 20:05 ` Norman Worth
2019-04-16 20:54 ` Lucretia
2019-04-16 23:15 ` Randy Brukardt
2019-04-16 20:53 ` Lucretia
2019-04-18 13:32 ` sbelmont700
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox