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

  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