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-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,b30bd69fa8f63cb2 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-06-20 14:12:55 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!small1.nntp.aus1.giganews.com!border3.nntp.aus1.giganews.com!nntp.giganews.com!wn14feed!worldnet.att.net!204.127.198.203!attbi_feed3!attbi_feed4!attbi.com!sccrnsc03.POSTED!not-for-mail From: "Mark A. Biggar" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.3.1) Gecko/20030425 X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: C bug of the day References: <1054751321.434656@master.nyc.kbcfp.com> <7gBHa.12174$KF1.273806@amstwist00> <7RQHa.3141$Uh2.339@nwrdny01.gnilink.net> In-Reply-To: Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit Message-ID: NNTP-Posting-Host: 12.235.88.213 X-Complaints-To: abuse@attbi.com X-Trace: sccrnsc03 1056143574 12.235.88.213 (Fri, 20 Jun 2003 21:12:54 GMT) NNTP-Posting-Date: Fri, 20 Jun 2003 21:12:54 GMT Organization: AT&T Broadband Date: Fri, 20 Jun 2003 21:12:54 GMT Xref: archiver1.google.com comp.lang.ada:39509 Date: 2003-06-20T21:12:54+00:00 List-Id: Dmitry A. Kazakov wrote: > 2. multiple inheritance > > Missing 2. in Ada is clearly a design fault. Not really, just a realization at the time (92-93) that they couldn't make too big a change in the language, if they wanted the implementors to go with the changes to the standard. MI was considered along with the current SI model and it was determined that given all the extra mechanisms needed to solve such problems as the method/field ambiguities in the diamond inheritance example it was too big a change to the language. Note that the language already had most of what what was needed for SI in derived types so all they had to add was support for field extension when deriving and a protocol for run-time dispatch. SI also has a very simple implementation model (the tag field is a simple pointer to a vtable with constant offsets for method lookup). But as MI needs to deal with multiple inherited vtables with much more complicated implementation.