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,a9026b81108642ee X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news2.google.com!news2.google.com!news3.google.com!news2.volia.net!newsfeed01.sul.t-online.de!t-online.de!newsfeed.arcor.de!newsspool4.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: Address of an object Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <382nx7mt637x$.6hjqgb4zxzss.dlg@40tude.net> <1158363114.393740.59040@h48g2000cwc.googlegroups.com> <1i3ne95psolai.abl9eureg5t9$.dlg@40tude.net> Date: Tue, 19 Sep 2006 15:29:00 +0200 Message-ID: NNTP-Posting-Date: 19 Sep 2006 15:29:00 CEST NNTP-Posting-Host: 945a0f75.newsspool4.arcor-online.net X-Trace: DXC=9kA?D[eO3]1D]ncZ]`hZ;14IUK\BH3Y2JiX5blCGQn?DNcfSJ;bb[5FCTGGVUmh?4N\HXHJ4e80>1fEElk@m?V0 X-Complaints-To: usenet-abuse@arcor.de Xref: g2news2.google.com comp.lang.ada:6663 Date: 2006-09-19T15:29:00+02:00 List-Id: On Tue, 19 Sep 2006 05:15:01 -0400, Stephen Leake wrote: > "Dmitry A. Kazakov" writes: > >>> So you want access to some compiler-dependent information; clearly the >>> method will be compiler-dependent, since it isn't defined by the language. >> >> No, I don't want to access it. I only want my information. > > I don't understand. You want write-only data? No, I just don't care about them. As an example consider a container library or a garbage collector. They don't care about handling the data. >>> What are you going to do with the "dopes" you add? They won't be >>> visible from Ada. >> >> That's exactly the goal, because what I want is to extend types in a way >> Ada does not support. I wanted to add something to a type without >> quarreling with Ada, which mistakenly [OK, that was a political decision] >> does not support MI. It was corrected in Ada 2005 but only for pure >> interfaces, while I need implementations. There is a vast number of cases >> where it might be useful. > > So you are trying to extend the Ada language. You should be editing > the compiler; that's one of the reasons GNAT is open source. GNAT is, but Ada isn't. For extending Ada there are AIs. >> It seemed quite easy, thank to user-defined pools. Well, actually it is >> spoiled a bit with pointers and generics, but that's another story. > > Actually, that's part of the reason MI isn't in Ada. You must consider > how it impacts the entire language. There cannot be any negative impact. Fundamentally, if MI is infeasible, then single inheritance must be as well. Once Ada has decided to support inheritance there is no return. >> The idea is as follows: >> >> 1. You define a pool which eventually takes its memory from some another >> pool. >> >> 2. When something is allocated in the pool, you just add necessary data to >> the allocated object in front of the allocated memory block >> >> 3. The interface to this is a generic package, which provides a pointer >> type to the objects in the pool. [Unfortunately, the type of the pointer's >> pool cannot be made opaque, but that is a minor language problem.] > > So this generic package needs to read the data, from Ada. Or at least > provide a pointer to it, so other Ada packages can read it. Sure. The pointer is a legal access type, you can do with it and through it anything, one could do in Ada. >> 4. New operations are defined on the pointer type. > > In Ada, or some other language? Of course in Ada. OK, I feel there is a need to give an example. I will start a new thread for it. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de