comp.lang.ada
 help / color / mirror / Atom feed
From: adam@irvine.com (Adam Beneschan)
Subject: Re: Problem With Self-Referential Access-to-Subprogram Type
Date: 5 Nov 2003 09:49:05 -0800
Date: 2003-11-05T09:49:05-08:00	[thread overview]
Message-ID: <b4682ab7.0311050949.59c4daf3@posting.google.com> (raw)
In-Reply-To: mailman.278.1068031675.25614.comp.lang.ada@ada-france.org

Marius Amado Alves <amado.alves@netcabo.pt> wrote in message news:<mailman.278.1068031675.25614.comp.lang.ada@ada-france.org>...
> On Wed, 2003-11-05 at 08:31, Dmitry A.Kazakov wrote:
> > >> Yes, there is a difference. Technically, for an out parameter the
> > >> compiler should still know the object constraints.
>  
> > >Only at runtime. Consider Ada.Text_IO.Get (Item : out String). What
> > >constraints is the compiler knowing here?
>  
> > It knows that there are bounds which cannot be changed. If Item were
> > of String (1..5) the compiler would probably choose another way of
> > parameter passing than for String (<>) with the consequence that the
> > stack frame would be different.
> 
> Irrelevant. This applies to return types just as well.
> 
> The original poster has a very good question--which has found no real
> answer yet. My guess is it comes down to the hardware-orientedness of
> Ada. I was surprised the *first* form compiled.

It should not have compiled.  8.3(19) says that a declaration is
hidden from all visibility until the end of the declaration, with some
exceptions that don't apply here.  So the type "State1" should not
have been visible until *after* the semicolon following "return
State1", and thus the compiler should have reported an error upon
seeing "return State1".

There is an Ada Issue (AI95-00313) suggesting that the rules be
modified so that an access-to-subprogram type declaration can refer to
itself anywhere after the word "access"; this would make the
declarations of both State1 and State2 legal (and the incomplete type
declarations wouldn't be necessary).  The feeling at the time was that
the additional work needed to change the language and the compilers
shouldn't be required if no one has run into the problem in practice. 
I've let them know that someone now has run into it.

                                  -- Adam



  parent reply	other threads:[~2003-11-05 17:49 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-03 16:58 Problem With Self-Referential Access-to-Subprogram Type Tad Ashlock
2003-11-04 10:04 ` Dmitry A. Kazakov
2003-11-04 13:52   ` Tad Ashlock
2003-11-04 14:24     ` Dmitry A. Kazakov
2003-11-04 14:52       ` Marius Amado Alves
2003-11-05  8:31         ` Dmitry A. Kazakov
2003-11-05 11:27           ` Marius Amado Alves
2003-11-05 13:33             ` Dmitry A. Kazakov
2003-11-05 14:02               ` Marius Amado Alves
2003-11-05 17:49             ` Adam Beneschan [this message]
2003-11-05 18:55               ` Marius Amado Alves
2003-11-05 22:54                 ` Tad Ashlock
2003-11-06 17:45                   ` Warren W. Gay VE3WWG
  -- strict thread matches above, loose matches on Subject: below --
2003-11-03 17:32 amado.alves
2003-11-04 14:02 ` Tad Ashlock
replies disabled

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