comp.lang.ada
 help / color / mirror / Atom feed
From: csampson@cod.nosc.mil (Charles H. Sampson)
Subject: Re: Elaboration_check For Instantiations
Date: 1997/10/27
Date: 1997-10-27T00:00:00+00:00	[thread overview]
Message-ID: <1997Oct27.221500.1918@nosc.mil> (raw)
In-Reply-To: EIK5DE.JpG.0.-s@inmet.camb.inmet.com


     I suppose that the best thing to do when you make a very public 
boo-boo is to be quiet and hope that everybody forgets about it as soon 
as possible, but I'm too old to start that now.  I'll "contribute" to 
this thread a little longer.

In article <EIK5DE.JpG.0.-s@inmet.camb.inmet.com>,
Tucker Taft <stt@houdini.camb.inmet.com> wrote:
>Charles H. Sampson (csampson@cod.nosc.mil) wrote:
>
>:      Sigh.  When I said that my sample code was legal in Ada 83, I 
>: thought I saw some loose wording in the LRM that would allow it, al-
>: though it appeared that the intent was to discourage it, at the least.  
>: Now, however, it seems to be illegal in Ada 83 as well, by 3.9(7).
>
>Actually, it is not illegal.  It "simply" raises Program_Error
>at run-time (in Ada 83 and Ada 95), due to violating the checks
>regarding access before elaboration.  In any case, there was no
>change in the rules in this area between Ada 83 and Ada 95.
>Apparently the wording in Ada 95 is clearer on the subject 
>(at least to you ;-).

     You're right about that.  I do find the new wording clearer.
>
>:      When I said that it worked in several compilers, I know of at 
>: least three.  When I said that a healthy body of code exists using the 
>: "feature", that body includes a large number of packages supplied by an 
>: Ada compiler vendor!
>
>Well, then I guess these compilers all had a common bug.  Alternatively,
>the code was compiled with Elaboration_Check suppressed.  You
>could add "pragma Suppress(Elaboration_Check);" to the above code,
>and it would probably not raise Program_Error (though it would then be
>officially erroneous, per RM95 11.5(26)).

     One of the compilers that I thought accepted this construct actu-
ally disallows it, but in a non-standard manner.  (This is a very highly 
respected Ada 83 compiler.)  It compiles that entire package, specifica-
tion and body, with no warnings.  No "Execution of this construct will 
cause Program_error to be raised."  However, when you try to link the 
programs, you're told that the specification is obsolete.  In other 
words, the spec compiles o. k., but compiling the body obsoletes the 
spec.  Of course, recompiling the spec will obsolete the body, etc.

     I think I know where I went wrong on this whole issue.  We've been 
given the task of porting an Ada 83 program, moving it to Ada 95 at the 
same time.  As part of our contract we've been given the Ada 95 compiler 
that we must use and the existing Ada 83 code, but not the compiler that 
that code was compiled with.  We have been assured that this code is ex-
actly the code of the current running program.  I probably should have 
taken that assurance with a grain of salt.

 				Charlie
--
******

    If my user name appears as "csampson", remove the 'c' to get my
correct e-mail address.




  parent reply	other threads:[~1997-10-27  0:00 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1997-10-23  0:00 Elaboration_check For Instantiations Charles H. Sampson
1997-10-23  0:00 ` Charles H. Sampson
1997-10-24  0:00   ` Tucker Taft
1997-10-24  0:00     ` Robert Dewar
1997-10-27  0:00       ` Charles H. Sampson
1997-10-27  0:00         ` Robert Dewar
1997-10-28  0:00           ` Charles H. Sampson
1997-10-28  0:00             ` Keith Thompson
1997-10-28  0:00               ` Charles H. Sampson
1997-10-29  0:00                 ` Robert Dewar
1997-10-29  0:00                   ` Charles H. Sampson
1997-10-29  0:00                 ` W. Wesley Groleau x4923
1997-10-29  0:00                   ` Tom Moran
1997-10-30  0:00                     ` Larry Kilgallen
     [not found]                   ` <345774b3.1434102@santaclara01.news.internex.net>
1997-10-30  0:00                     ` Charles H. Sampson
1997-10-30  0:00                   ` Charles H. Sampson
1997-10-29  0:00             ` Robert Dewar
1997-10-27  0:00     ` Charles H. Sampson [this message]
1997-10-27  0:00       ` Robert Dewar
1997-10-24  0:00 ` Robert Dewar
replies disabled

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