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,FREEMAIL_FROM autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1e3f2eac5c026e3 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-12-18 23:38:04 PST Path: archiver1.google.com!news2.google.com!newsfeed2.dallas1.level3.net!news.level3.com!crtntx1-snh1.gtei.net!news.gtei.net!newsfeed1.easynews.com!easynews.com!easynews!newsfeed-east.nntpserver.com!nntpserver.com!border1.nntp.ash.giganews.com!firehose2!nntp4!intern1.nntp.aus1.giganews.com!nntp.giganews.com!nntp.comcast.com!news.comcast.com.POSTED!not-for-mail NNTP-Posting-Date: Fri, 19 Dec 2003 01:38:02 -0600 Date: Fri, 19 Dec 2003 02:38:02 -0500 From: "Robert I. Eachus" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: Other Ada Standards (was Re: SIGada Conference) References: <468D78E4EE5C6A4093A4C00F29DF513D04B82B08@VS2.hdi.tvcabo> <657ea3e3.0312172255.4869eae5@posting.google.com> <0cOdndZsZbH6W3yiRVn-gg@comcast.com> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: NNTP-Posting-Host: 24.34.214.193 X-Trace: sv3-l8dvx9nOFX9gdVflI2RC87dbJnHZPmvFI6sa6kMTuuBu9yLhmEeUxd3MJRPS3fX31NzyJCu7z3ElDJA!0A6o8tzNMCAexSoWz8/I2xc5pziwS/uGUT3/mY5mY1IwCIpBYsnJIGI+bHZ5bg== X-Complaints-To: abuse@comcast.net X-DMCA-Complaints-To: dmca@comcast.net X-Abuse-and-DMCA-Info: Please be sure to forward a copy of ALL headers X-Abuse-and-DMCA-Info: Otherwise we will be unable to process your complaint properly X-Postfilter: 1.1 Xref: archiver1.google.com comp.lang.ada:3546 Date: 2003-12-19T02:38:02-05:00 List-Id: Robert A Duff wrote: > I don't agree. You could say that "use A.B.C;" in a context clause > implies a subset of "with A;", "with A.B;", and "with A.B.C;" -- just > the ones that happen to be library units. Or, you could *require* that > they be library units, or be nested within already-mentioned library > units, if you think that makes the code more readable. Either rule > would work, and be easily implementable. The problem is upward compatibility, and some fun for implementors. The requirement you mention would not be upwardly compatible. If "use A.B.C;" could mean "with A; with A.B; use A.B.C;" or "with A; use A.B.C;" or with A; with A.B; with A.B.C; use A.B.C;" or ... things get real messy fast. Note that even if the compiler can figure it out, the reader is going to be faced with the same challenge. Allowing "with and use" in addition to current context clauses, and only if the name is meaningful according to the rules for with clauses seems so much simpler, and is easy on readers as well. To me that makes the implicit with a non-starter. > Unfortunately, you can't just say that "use A.B.C;" is equivalent to > "with A.B.C; use A.B.C;", because A.B.C might not be a library unit. > Suppose A.B is a library package containing a nested package C. > Then "with A.B; use A.B.C;" is currently legal. We can't say it's > equivalent to "with A.B; with A.B.C; use A.B.C;", because that would > be illegal, so the rule would be incompatible. Yep. However, did you follow the discussion of "use all A.B.C;"? That would be like the with rule, meaning "use A; use A.B; use A.B.C;" I don't know if I would use it much, but the parallel construction has a lot to recommend it. Of course, if we add that use all, I'd love to also have use all Ada.*; or more likely use all Ada.Text_IO.*. ;-) -- Robert I. Eachus "The war on terror is a different kind of war, waged capture by capture, cell by cell, and victory by victory. Our security is assured by our perseverance and by our sure belief in the success of liberty." -- George W. Bush