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, T_FILL_THIS_FORM_SHORT autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,81bb2ce65a3240c3 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.204.152.217 with SMTP id h25mr372843bkw.3.1335726274701; Sun, 29 Apr 2012 12:04:34 -0700 (PDT) Path: h15ni180000bkw.0!nntp.google.com!news1.google.com!newsfeed2.dallas1.level3.net!news.level3.com!newsfeed-00.mathworks.com!nntp.TheWorld.com!.POSTED!not-for-mail From: Robert A Duff Newsgroups: comp.lang.ada Subject: Re: What would you like in Ada202X? Date: Sun, 29 Apr 2012 15:04:34 -0400 Organization: The World Public Access UNIX, Brookline, MA Message-ID: References: <3637793.35.1335340026327.JavaMail.geo-discussion-forums@ynfi5> <4f97bf40$0$6559$9b4e6d93@newsspool4.arcor-online.net> <7039631.627.1335610937700.JavaMail.geo-discussion-forums@vbxz8> <10544679.2854.1335718755733.JavaMail.geo-discussion-forums@vbdx11> NNTP-Posting-Host: shell01.theworld.com Mime-Version: 1.0 X-Trace: pcls6.std.com 1335726274 4869 192.74.137.71 (29 Apr 2012 19:04:34 GMT) X-Complaints-To: abuse@TheWorld.com NNTP-Posting-Date: Sun, 29 Apr 2012 19:04:34 +0000 (UTC) User-Agent: Gnus/5.1008 (Gnus v5.10.8) Emacs/21.3 (irix) Cancel-Lock: sha1:GmAWCKn/VbWFj8+dnbUcYjfk5k0= Content-Type: text/plain; charset=us-ascii Date: 2012-04-29T15:04:34-04:00 List-Id: okellogg@users.sourceforge.net writes: > Could you elaborate? package P is package Q is private end Q; private end P; package body P is package body Q is end Q; end P; In the above nested case: P spec can see things in Q spec (imagine all sorts of declarations at various places above). Private part of Q cannot see things in private part of P. Nobody can say "with P.Q;". If you say "with P;" you can automatically see Q. Q cannot have its own with clauses. The one you mentioned: you can't have a child "package P.Q.R is". Q spec is elaborated in the middle of elaborating P spec, and similarly for the bodies. Etc. If we transform that structure into child packages: package P is private end P; package P.Q is private end P.Q; package body P is end P; package body P.Q is end P.Q; Now every statement I made above about the nested case is no longer true. I don't like that. I think the semantics of the two above structures should be identical. Unfortunately, that was impossible, because child packages were added later, and we couldn't change nested packages in any incompatible ways. - Bob