From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Elaboration order handling (Was: Bug in 'gnatmake')
Date: Fri, 21 Jun 2013 19:47:41 -0400
Date: 2013-06-21T19:47:41-04:00 [thread overview]
Message-ID: <wccli6381r6.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: kq2h6n$vta$2@dont-email.me
Jeffrey Carter <spam.jrcarter.not@spam.not.acm.org> writes:
> On 06/21/2013 01:43 PM, Adam Beneschan wrote:
>> Well, it could have, prior to Ada 2005. That's no longer possible, because
>> of null procedures.
>
> Ah, yes, another unnecessary shortcut.
It is important to the way interfaces work that procedures can be known
to do nothing on their SPEC. I suppose it would be possible to allow
"is begin null; end;" on the spec, but that would be more complicated
-- requires either special syntax rules, or special semantic rules.
So "is null;" makes sense for that.
It is also useful for optimization purposes for procedures to be
known to do nothing. E.g. Finalize defaults to doing nothing,
so a type that does not override Finalize can be optimized to avoid
finalization overhead, without looking at bodies of non-visible things.
> I addressed this in detail in a reply to Duff. Basically, I find it hard
> to find a specific declaration when reading such languages.
It takes some getting used to, but I don't find it onerous. You already
need to search for things in Ada as it is -- the declaration could be in
some outer block or procedure or parent package or some use-claused
package.
And in some cases, it makes it EASIER to find the declaration, because it
comes just before. Compare:
X, Y : T;
Init (X, Y);
... -- 100 lines
begin
versus:
X, Y : T;
... -- 100 lines
begin
Init (X, Y); -- far away from X and Y
- Bob
next prev parent reply other threads:[~2013-06-21 23:47 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-17 10:57 Range check for type 'Integer' Peter Brooks
2013-06-17 11:23 ` Simon Clubley
2013-06-17 11:54 ` Simon Wright
2013-06-17 12:55 ` Peter Brooks
2013-06-17 13:28 ` Shark8
2013-06-17 13:45 ` Peter Brooks
2013-06-17 21:16 ` Shark8
2013-06-18 10:48 ` Stephen Leake
2013-06-17 12:46 ` Dmitry A. Kazakov
2013-06-17 13:23 ` Bug in 'gnatmake' (Was: Range check for type 'Integer') Jacob Sparre Andersen
2013-06-17 13:32 ` Bug in 'gnatmake' Jacob Sparre Andersen
2013-06-17 16:50 ` Bug in 'gnatmake' (Was: Range check for type 'Integer') Robert A Duff
2013-06-17 19:15 ` Peter Brooks
2013-06-17 21:09 ` Shark8
2013-06-17 21:22 ` Jeffrey Carter
2013-06-18 1:21 ` Peter Brooks
2013-06-18 6:33 ` Jeffrey Carter
2013-06-18 7:29 ` Georg Bauhaus
2013-06-17 18:49 ` Bug in 'gnatmake' Simon Wright
2013-06-18 9:09 ` Elaboration order handling (Was: Bug in 'gnatmake') Jacob Sparre Andersen
2013-06-18 17:09 ` Robert A Duff
2013-06-18 22:52 ` Adam Beneschan
2013-06-19 1:21 ` Jeffrey Carter
2013-06-19 12:38 ` Robert A Duff
2013-06-19 20:43 ` Georg Bauhaus
2013-06-20 0:37 ` Robert A Duff
2013-06-20 19:56 ` Georg Bauhaus
2013-06-19 12:22 ` Robert A Duff
2013-06-19 15:46 ` Adam Beneschan
2013-06-19 16:41 ` Robert A Duff
2013-06-19 20:47 ` Georg Bauhaus
2013-06-19 21:36 ` Adam Beneschan
2013-06-20 0:57 ` Robert A Duff
2013-06-20 1:09 ` Jeffrey Carter
2013-06-20 2:29 ` Adam Beneschan
2013-06-20 6:08 ` Jeffrey Carter
2013-06-20 15:11 ` Robert A Duff
2013-06-21 5:26 ` Jeffrey Carter
2013-06-21 15:48 ` Adam Beneschan
2013-06-21 18:35 ` Jeffrey Carter
2013-06-21 19:10 ` Robert A Duff
2013-06-21 21:27 ` Jeffrey Carter
2013-06-21 20:43 ` Adam Beneschan
2013-06-21 21:44 ` Jeffrey Carter
2013-06-21 23:47 ` Robert A Duff [this message]
2013-06-23 14:43 ` AdaMagica
2013-06-21 18:58 ` null declarative parts (was: Re: Elaboration order handling) Robert A Duff
2013-06-21 20:42 ` null declarative parts Georg Bauhaus
2013-06-20 2:11 ` Elaboration order handling (Was: Bug in 'gnatmake') Adam Beneschan
2013-06-20 14:44 ` Robert A Duff
2013-06-20 11:24 ` G.B.
2013-06-20 15:23 ` Robert A Duff
2013-06-19 21:00 ` Georg Bauhaus
2013-06-19 22:26 ` Randy Brukardt
2013-06-20 0:31 ` Robert A Duff
2013-06-20 21:36 ` Randy Brukardt
2013-06-19 13:07 ` Bill Findlay
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox