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,fba93c19bb4e7dbd X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2003-07-16 01:24:19 PST Path: archiver1.google.com!news1.google.com!sn-xit-02!sn-xit-04!sn-xit-01!sn-xit-05!sn-xit-08!supernews.com!small1.nntp.aus1.giganews.com!nntp.giganews.com!newsfeed.stueberl.de!fu-berlin.de!uni-berlin.de!tar-alcarin.cbb-automation.DE!not-for-mail From: Dmitry A. Kazakov Newsgroups: comp.lang.ada Subject: Re: Q: Endless loop by dispatching Date: Wed, 16 Jul 2003 10:08:45 +0200 Message-ID: References: <3F0ED2C8.6080409@snafu.de> NNTP-Posting-Host: tar-alcarin.cbb-automation.de (212.79.194.111) Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de 1058342843 10934837 212.79.194.111 (16 [77047]) X-Newsreader: Forte Agent 1.8/32.548 Xref: archiver1.google.com comp.lang.ada:40330 Date: 2003-07-16T10:08:45+02:00 List-Id: On Tue, 15 Jul 2003 12:23:29 -0500, "Randy Brukardt" wrote: >"Dmitry A. Kazakov" wrote in message >news:h5c7hvgol0sscrnaj98qp071903m9hoh5c@4ax.com... >> Probably it is worth to think how to eliminate any need in Y'Parent? >> For example one could provide some sort of overriding by extension. >> I.e. the bodies which would implicitly call the overriden body, as it >> is manually made in Initialize/Finalize. > >Interesting idea, but you'd need some way to specify when the overridden >body is called. For instance, you usually call the overridden body first for >Initialize (so the parent components are Initialized before you do anything) >and last for Finalize (so the parent components still exist while you are >writing your code). I've even had a few cases where I had to do it in the >middle (with operations before an after it). One should invent a good syntax suggar for this. Which is rather difficult. There are actually two things in it: 1. There should be a way to declare some primitive operation saying that it cannot be overriden completely. One might wish it for things like Initialize/Finalize. Then probably there should be a way to say where an override is allowed to add something. 2. During overriding one should specifiy where the override(s) places the extension. I think that it should be specified in the body, while the specification should only say that it gets overridden. The question is syntax and a good balance between 1. and 2., i.e between contract and implementation. The most complicated cases would emerge from things like Adjust, I suppose. It is also related to an ability to explicitly specify that a subroutine is an overriding, not overloading, to avoid undesired overloading in case ot typo errors. I do not know whether there is an AI on that. If yes, they should be considered together. --- Regards, Dmitry Kazakov www.dmitry-kazakov.de