comp.lang.ada
 help / color / mirror / Atom feed
From: AdaMagica <christ-usch.grein@t-online.de>
Subject: Re: Will "renames" increase program size?
Date: Thu, 16 Jun 2011 03:18:14 -0700 (PDT)
Date: 2011-06-16T03:18:14-07:00	[thread overview]
Message-ID: <4bdd2495-fb00-4aa7-89bd-910dfefa3704@i4g2000yqg.googlegroups.com> (raw)
In-Reply-To: gykghxms6uix.4o3teocknpfl$.dlg@40tude.net

> No. First, sometimes it certainly copies, e.g. when the function's result
> is renamed, the result (temporary object) is copied. The compiler might
> optimize the temporary object away, or even mandated to do so for limited
> results, but *semantically* it is a copy.

OK, agreed, there are cases  where rename does a copy.

> procedure Shame is
>    type T is array (Integer range <>) of Integer;
>    A : T := (0 => 0, 1 => 1);
>    subtype S is T (1..2);
>    B : S renames A;
> begin
>    Put_Line (Integer'Image (B (0))); -- Surprise, 0 is a legal index of S!
> end Shame;

Yes, agreed, that's annoying and confusing. Perhaps such a renaming
should be forbidden. Don't know what other consequences such a rule
would have, which other rules would have to be adapted. Think of
generics... (I know you dislike generics.)

> Regarding the visibility rules, the design bug is that the new name of a
> thing shall not hide any other names of it in any context. In the example
> above P1.End_Error should not have hidden P2.End_Error. (I don't know why
> this has not been fixed long time ago, because it would be a really minor
> language change, which would not break any existing code).

You request that resolution would not be via names, but via entities.
Thus when there are several homonymes visible at the same time, the
compiler would have to check whether all these names actually specify
the same entity. Don't know whether this would make overload
resolution more difficult.



  reply	other threads:[~2011-06-16 10:18 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-15  2:10 Will "renames" increase program size? Adrian Hoe
2011-06-15  5:37 ` Randy Brukardt
2011-06-15  9:11   ` AdaMagica
2011-06-15 11:26     ` Yannick Duchêne (Hibou57)
2011-06-15 11:24   ` Yannick Duchêne (Hibou57)
2011-06-15 13:15     ` Dmitry A. Kazakov
2011-06-16  6:59       ` AdaMagica
2011-06-16  8:59         ` Dmitry A. Kazakov
2011-06-16 10:18           ` AdaMagica [this message]
2011-06-16 12:15             ` Dmitry A. Kazakov
2011-06-16 23:22             ` Randy Brukardt
2011-06-16 15:40           ` Adam Beneschan
2011-06-16 16:33             ` Dmitry A. Kazakov
2011-06-16 17:42               ` Adam Beneschan
2011-06-16 18:53                 ` Dmitry A. Kazakov
2011-06-16 23:39                   ` Randy Brukardt
2011-06-17  6:53                     ` Dmitry A. Kazakov
2011-06-18  0:02                       ` Randy Brukardt
2011-06-18  7:54                         ` Dmitry A. Kazakov
2011-06-18  8:58                           ` Yannick Duchêne (Hibou57)
2011-06-18 10:05                             ` Dmitry A. Kazakov
2011-06-18 12:49                               ` Yannick Duchêne (Hibou57)
2011-06-18 22:44                           ` Randy Brukardt
2011-06-22  0:56                             ` Shark8
2011-06-15 22:21 ` anon
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox