From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 10.224.42.141 with SMTP id s13mr13644312qae.3.1371829697922; Fri, 21 Jun 2013 08:48:17 -0700 (PDT) X-Received: by 10.50.22.9 with SMTP id z9mr236747ige.6.1371829697876; Fri, 21 Jun 2013 08:48:17 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!mx05.eternal-september.org!feeder.eternal-september.org!usenet.blueworldhosting.com!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!bw2no2558358qab.0!news-out.google.com!y6ni3811qax.0!nntp.google.com!j2no1107932qak.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Fri, 21 Jun 2013 08:48:17 -0700 (PDT) In-Reply-To: Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=66.126.103.122; posting-account=duW0ogkAAABjRdnxgLGXDfna0Gc6XqmQ NNTP-Posting-Host: 66.126.103.122 References: <7f33982d-3bcf-452e-a3b3-3a0a28505ff1@x20g2000vbe.googlegroups.com> <87r4g0g9c0.fsf@adaheads.sparre-andersen.dk> <87ip1bg4z2.fsf_-_@adaheads.sparre-andersen.dk> <53d0b070-a03b-43d0-a560-68dd3a8bebf5@googlegroups.com> <51c218df$0$6623$9b4e6d93@newsspool2.arcor-online.net> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: Elaboration order handling (Was: Bug in 'gnatmake') From: Adam Beneschan Injection-Date: Fri, 21 Jun 2013 15:48:17 +0000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 3958 Xref: news.eternal-september.org comp.lang.ada:15875 Date: 2013-06-21T08:48:17-07:00 List-Id: On Thursday, June 20, 2013 10:26:14 PM UTC-7, Jeffrey Carter wrote: > On 06/20/2013 08:11 AM, Robert A Duff wrote: > The I guess you'd prefer >=20 >=20 > while Function_With_Side_Effects loop >=20 > end loop; >=20 > to the Ada requirement that you have to put a null statement in there? I = like=20 > the idea that something that's empty has to have something special in it = to show=20 > that it's deliberately empty, and think it should apply to declarative pa= rts, as=20 > well. >=20 Do you do that with empty parameter lists? procedure Proc_1 --(null) is ... How about empty constraints? The definition of is [nu= ll_exclusion] [constraint]. If the constraint is empty, sho= uldn't you have to put something in there to indicate that it's deliberatel= y empty? I : Integer; --null constraint Obviously this could get ridiculous, and the point is that of course you ca= nnot apply what you're saying consistently. There are things where showing= that you mean for something to be deliberately empty is helpful, and thing= s where it isn't. And like Bob, I think declarative parts are on the "isn'= t" side of the line. My really fuzzy explanation of this is that, intuitiv= ely, the body of a procedure or the body of a WHILE loop is a "thing" in an= d of itself--it's the thing that tells what the procedure does, or the thin= g that you're looping--while a declarative part isn't so much a thing as a = "place"--it's the place where you put declarations, if you have any, but it= doesn't really stand on its own merits as a "thing". It's really hard to = explain what I mean. From a reader's standpoint, I had no idea what you we= re trying to do. If you say procedure Proc_2 is -- null; begin whatever; end; I'd think that you had originally written Proc_2 as a null procedure and th= en added a body later, and left the commented-out "null" in as an indicatio= n that the procedure used to be null in the previous version. Your example= above had only functions, which just made it all the more confusing since = there are no null functions. -- Adam