From: Niklas Holsti <niklas.holsti@tidorum.invalid>
Subject: Re: Why can't objects be static in Ada?
Date: Wed, 17 Apr 2019 00:40:05 +0300
Date: 2019-04-17T00:40:05+03:00 [thread overview]
Message-ID: <ghn0dlFt7smU1@mid.individual.net> (raw)
In-Reply-To: <ed1629d2-f6d9-4bc9-b929-01f910bfe4a8@googlegroups.com>
On 19-04-17 00:16 , Lucretia wrote:
> On Tuesday, 16 April 2019 22:07:24 UTC+1, Niklas Holsti wrote:
>
>> Why are you so fixated on elaboration? Many non-Ada libraries
>> require initialization calls. Moreover, I believe a C++ program can
>> have compiler-generated initialization code similar to Ada
>> elaboration code.
>
> Not everything needs it, the example in this thread shouldn't need
> it.
So what? Why do you care?
>>> I don't think it can, going by this thread. I also think this is
>>> why Ada will fail in other environments, i.e. not security or
>>> safety critical stuff, but where performance is important.
>>
>> Performance is plenty important in many embedded real-time
>> applications, where Ada works just fine.
>
> Not every application is embedded, which is my point.
You have a problem only for non-embedded applications? Is that why
start-up time is important, because your entire applications are
frequently started up, run for a short time to do some single thing, and
then stop?
>> Elaboration of library items consumes execution time only at the
>> start of a program. Do you have some stringent start-up deadlines?
>
> Not exactly, but it would be nice to be able to know that something
> which shouldn't need elaboration, doesn't use elaboration.
So the thing you want is a "nice to have" feature? And you claim that
the lack of that feature means that Ada "will fail"? Not convincing to me.
Use the GNAT pragma No_Elaboration_Code, as others have suggested. If
you feel strongly about this point, suggest to the ARG that this pragma
should be standardized.
I have occasionally needed to write packages with guaranteed absence of
elaboration code, when operations in those packages are called from the
low-level start-up code, to perform some HW initialization before Ada
elaboration. No_Elaboration_Code worked for me.
--
Niklas Holsti
Tidorum Ltd
niklas holsti tidorum fi
. @ .
next prev parent reply other threads:[~2019-04-16 21:40 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
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 [this message]
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