comp.lang.ada
 help / color / mirror / Atom feed
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).


  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