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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no 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.68.211.136 with SMTP id nc8mr8469095pbc.6.1335601976044; Sat, 28 Apr 2012 01:32:56 -0700 (PDT) Path: r9ni107545pbh.0!nntp.google.com!news1.google.com!news3.google.com!proxad.net!feeder1-2.proxad.net!usenet-fr.net!gegeweb.org!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: What would you like in Ada202X? Date: Sat, 28 Apr 2012 10:32:44 +0200 Organization: cbb software GmbH Message-ID: <14f21yy6r7n40.v7wdf6rhdgjz.dlg@40tude.net> References: <3637793.35.1335340026327.JavaMail.geo-discussion-forums@ynfi5> <1qepvaumldb5u.1q8eyzla8dyp8.dlg@40tude.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: Gbl624r6iuNIccy3ASy5ag.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Date: 2012-04-28T10:32:44+02:00 List-Id: On Fri, 27 Apr 2012 09:56:36 -0400, Robert A Duff wrote: > "Dmitry A. Kazakov" writes: > >> OK, but there must be a way to ensure that each non-anonymous entity would >> have at least one unique name valid for all contexts were it is accessible. >> It is already a problem. > > In my language, every named thing must have a unique name. > It can also have an overloaded name. Is the name space same? One could have a separate name space for unique names. >>> Most languages >>> can only overload on parameters, which is way insufficient (objects usually >>> don't have parameters, and having all objects the same fixes nothing), but >>> of course Ada can. The problem is mostly one of compatibility; >> >> More overloading cannot make legal programs illegal. > > I don't think that's true, at least if you want to avoid > Beaujolais-like effects. That is, if X hides an outer X, > a legal program can refer to the inner X. If the language > were changed so the two X's are both visible, and overloaded, > it could be ambiguous. So the imaginary setup is: 1. X and inner X are unambiguous: not Clash (X, inner X) 2. X hides outer X: Clash (X, outer X) 3. outer X and inner X are ambiguous: Clash (outer X, inner X) This looks broken already. Ambiguity must be transitive: Clash (X, outer X) and Clash (outer X, inner X) => Clash (X, inner X) If not transitive, that must be fixed even if backward incompatible. > Hiding is evil. Yes, sometimes handy. My pet idea is that instead of hiding the language should require to rename the offending outer entities. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de