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 Path: border2.nntp.dca.giganews.com!nntp.giganews.com!news.alt.net!xmission!feeder.erje.net!us.feeder.erje.net!newsfeed.fsmpi.rwth-aachen.de!reality.xs3.de!news.jacob-sparre.dk!loke.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Your wish list for Ada 202X Date: Wed, 16 Apr 2014 16:53:05 -0500 Organization: Jacob Sparre Andersen Research & Innovation Message-ID: References: <7f1c01c5-3563-4b94-9831-152dbbf2ecdc@googlegroups.com> <8bhozh836pyt$.1qctlysud0s2q$.dlg@40tude.net> <1cdsyxjzsfgzm.1synpaujysv21$.dlg@40tude.net> <1aa804jg9qq4o$.wdiq33yo621l.dlg@40tude.net> <1w6eh0aiksmdh$.1h16p7y0b8c6h.dlg@40tude.net> <17twpp4p8u7o$.1idvzaaio4f3t$.dlg@40tude.net> <16388p09ph28u$.1mglp0rm7pli9$.dlg@40tude.net> <9cm2e094hvj7.sj0t2sh2komn.dlg@40tude.net> <1wchtiw4r35px.1pwedxqesqlr4.dlg@40tude.net> NNTP-Posting-Host: static-69-95-181-76.mad.choiceone.net X-Trace: loke.gir.dk 1397685186 30308 69.95.181.76 (16 Apr 2014 21:53:06 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Wed, 16 Apr 2014 21:53:06 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Xref: number.nntp.dca.giganews.com comp.lang.ada:185774 Date: 2014-04-16T16:53:05-05:00 List-Id: "Dmitry A. Kazakov" wrote in message news:1wchtiw4r35px.1pwedxqesqlr4.dlg@40tude.net... ... >> (A) we're specifically talking about a single addition or deletion, *not* >> a >> general "change". > > And how is it different from single dispatch? Let you override f in S. > Then > f(X), given X is of S, will call to the new body. "overriding" is a change of an existing operation, not what I'm talking about here. >> (B) Of course we're changing the specification and recompiling. But we >> don't >> want the same client code to mean something different after that >> recompilation without detection -- in the case of a single addition or >> deletion (again, *not* a change). > > It must mean something different. That was the *purpose* of the change to > make the client code mean it different *when* the clients use the types > and > operations for which the change was made. > >> The reason here is that maintainers need to be free to ADD new >> operations/entities without changing the behavior of any pre-existing >> client >> (which necessarily does not use those new operations/entities). > > Again, no difference between SD and MD. If you add a new primitive > operation (not override an existing one), there cannot be any effect on > the > clients because they did not use the operation. But that's not now and never has been true. Why? Because the new operation can have the same name as some existing operation, and the entire point of this discussion is that preference rules in overloading resolution have potentially bad effects in such cases. Anyway, what I get from your responses is that you don't think that there is any real issue with maintenance (in that you think a change is a change is a change, and if there is a change, then behavior might change). Perhaps you are right, but that's been one of the cornerstones of the Ada design since the beginning, and abandoning it for convinience would be essentally the same as abandoning the "maintainability" goals of Ada. Randy.