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=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,89cb2d7ffc7421c9 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newscon06.news.prodigy.com!prodigy.net!newsfeed-00.mathworks.com!nntp.TheWorld.com!not-for-mail From: Robert A Duff Newsgroups: comp.lang.ada Subject: Re: Ripple effect Date: 04 Sep 2006 09:52:01 -0400 Organization: The World Public Access UNIX, Brookline, MA Message-ID: References: NNTP-Posting-Host: shell01.theworld.com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: pcls4.std.com 1157377921 14830 192.74.137.71 (4 Sep 2006 13:52:01 GMT) X-Complaints-To: abuse@TheWorld.com NNTP-Posting-Date: Mon, 4 Sep 2006 13:52:01 +0000 (UTC) User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 Xref: g2news2.google.com comp.lang.ada:6448 Date: 2006-09-04T09:52:01-04:00 List-Id: "Jeffrey R. Carter" writes: > On the Ada-Comment mailing list recently, Robert Duff shared some ideas > on language design for a language he is thinking about (which may be > called Nada, but is definitely not called Duff). The "Nada" thing was a joke. I would not call a language "Nada", and certainly not "Duff". ;-) But Jeff is correct that I'm continually thinking about designing a programming langage -- at this point, it's merely a hobby, and I have no name for the language. >...In this language, there > is no equivalent of the Ada "use" and primitive operators ("+", "-") of > a type are directly visible wherever the type is used. I think you mean there is no equivalent of "use type". > I recall that during the Ada-9X revision process, it was proposed that > primitive operators of a type have this kind of visibility. IIRC, one of > the reasons that this was not accepted was that it would lead to Ripple > effects: adding or removing a unit from a context clause could change > one legal program to a different legal program. No, I think you misunderstand the "Ripple Effect". As I understand it, the Ripple Effect means that adding/removing a with_clause can cause compilation units that do not depend DIRECTLY on the modified thing to become illegal. For example, suppose C with's B and B with's A. Can a with_clause on A affect the legality of C? If so, there's a Ripple Effect. There's no issue of changing the meaning from one legal program to another, as can happen with the Beaujolais Effect. Therefore, the Ripple Effect is (IMHO) merely an annoyance, rather than a bug-causing language-design flaw. I believe Tucker coined the term "Ripple Effect", and that one is supposed to imagine the addition of a with_clause rippling through the transitive closure of semantic dependences. Also, it's a joke because Ripple is a wine -- that's the main similarity to Beaujolais Effect. I've never tasted Ripple, but I think it's considered to be of somewhat lower quality than Beaujolais. ;-) Anyway, to answer Jeff's question: I think with_clauses should be transitive in the first place, so that the Ripple Effect is not an issue. One problem with Ada 83 is that with_clauses cannot appear inside the private part. I think that's the root of the idea that transitive with_clauses are somehow evil. - Bob