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,5bcc293dc5642650 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Received: by 10.213.25.199 with SMTP id a7mr2232370ebc.6.1319701409745; Thu, 27 Oct 2011 00:43:29 -0700 (PDT) Path: l23ni46862bkv.0!nntp.google.com!news1.google.com!goblin3!goblin1!goblin.stu.neva.ru!feeder.news-service.com!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Why no Ada.Wide_Directories? Date: Thu, 27 Oct 2011 09:43:22 +0200 Organization: cbb software GmbH Message-ID: References: <9937871.172.1318575525468.JavaMail.geo-discussion-forums@prib32> <418b8140-fafb-442f-b91c-e22cc47f8adb@y22g2000pri.googlegroups.com> <7156122c-b63f-487e-ad1b-0edcc6694a7a@u10g2000prl.googlegroups.com> <409c81ab-bd54-493b-beb4-a0cca99ec306@p27g2000prp.googlegroups.com> <1rlz5gwqmeizn$.fwqpl0mhzf54$.dlg@40tude.net> <1w7i4ekc7yvjx$.60o908ry5lhc$.dlg@40tude.net> <5279agttaub8.1pl7pt496l1am$.dlg@40tude.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: FbOMkhMtVLVmu7IwBnt1tw.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 Xref: news1.google.com comp.lang.ada:18714 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit Date: 2011-10-27T09:43:22+02:00 List-Id: On Wed, 26 Oct 2011 17:41:30 -0500, Randy Brukardt wrote: > "Dmitry A. Kazakov" wrote in message > news:ci96gr5yzmpp$.1mwky141c6e78$.dlg@40tude.net... >> On Tue, 25 Oct 2011 14:22:27 -0500, Randy Brukardt wrote: >> >>> "Dmitry A. Kazakov" wrote in message >>> news:5279agttaub8.1pl7pt496l1am$.dlg@40tude.net... >>>> On Fri, 21 Oct 2011 14:53:11 +0200, Yannick Duch�ne (Hibou57) wrote: >>>> >>>>> Le Thu, 20 Oct 2011 19:35:21 +0200, Dmitry A. Kazakov >>>>> a �crit: >>>> >>>>>>> What's missing from Interface type introduced with Ada 2005 ? >>>>>> >>>>>> 1. Most Ada types do not have interfaces >>>>> Eiffel has this, and this is 1) not perfect (may lead to performance >>>>> issue) 2) rarely used in practice >>>> >>>> There is no performance loss. >>> >>> Anytime you have a construct that allows multiple inheritance, there is a >>> large performance loss (whether or not you use the multiple inheritance). >>> You can move the performance loss from one construct to another (i.e. >>> dispatching calls, access types, etc.) but you can't get rid of it. >> >> There is no time/memory loss, at all. For the types in question any legal >> Ada 2005 program would generate exactly same code as it would be the >> change. > > First of all, I was including Ada 2005 interfaces in this complaint -- so > "Ada 2005" is irrelevant (you've already gone over the edge at that point). > You *might* be right about Ada 95 programs, but it would require a > substantial increase in compiler complexity in order to support that. But > Ada compilers are already very complex - fairly close to the point where the > complexity would overwhelm the ability to get them correct. Because the language is in a mess. That surely makes compilers complex. Without an overhaul it will collapse in some not so distant future anyway under the weight of arbitrary language patches. You wanted it complex, here you are! > It's much more > likely that a much simpler design would be used for a pervasively multiple > inheriting language where everything is much more expensive. Note that it was not about multiple inheritance. Yannick suggested that making types like Boolean, String, Integer etc to have classes and primitive operations would mean a performance loss. That is wrong. Introducing classes and primitive operation will cost strictly zero in *all* use cases, which are legal now. Other use cases (e.g. using class-wide objects and dispatching) are presently illegal, so the whole argument is bogus. As for MI, I doubt it very much that MI for *tagged* types would imply any overhead in *comparable* cases. But this is another discussion. Again, any such comparison should be correct. I don't care which cost MI inflicts on record members inherited through it, because it is not legal now, thus, irrelevant. Would inheritance from interfaces become more expensive? (a comparable case) I don't believe it. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de