comp.lang.ada
 help / color / mirror / Atom feed
From: Brian Rogoff <bpr@shell5.ba.best.com>
Subject: Re: Subverting 'Access for Sub-programs
Date: 1999/08/08
Date: 1999-08-08T00:00:00+00:00	[thread overview]
Message-ID: <Pine.BSF.4.10.9908081219070.22420-100000@shell5.ba.best.com> (raw)
In-Reply-To: wccso5xnhyh.fsf@world.std.com

On Fri, 6 Aug 1999, Robert A Duff wrote:
> Robert Dewar <robert_dewar@my-deja.com> writes:
> 
> > Well this has been dealt with in length in previous threads,
> > so it is not appropriate to repeat it, but briefly, an extension
> > of a tagged type with new overriding primitives clearly
> > generates the possibility of dispatching to these new
> > primitives. If you allow extension in a smaller scope, you
> > can obviously generate dangling pointers for these methods,
> > using class variables whose value is the inner derived type.
> > It would thus be unsafe to allow this extension.
> 
> Tucker and I discussed a design for allowing nested type extensions for
> *limited* types, which would have prevented the dangling pointer issues.
> I don't remember if we ever formally proposed this idea in public, or if
> we killed it ourselves before it was seen by any reviewers.  I think it
> involved a lot of implementation burden, and I have vague recollections
> of worrying about the mob of generic-body-sharing compiler writers we
> would have had to flee from...

Where have people found the inability to do nested type extensions
annoying, besides cases where you're using tagged types to simulate 
downward funargs? I have wanted them when trying to work around the lack
of downward funargs, but otherwise their omission hasn't been a big burden 
to me. Are there some compelling examples that I just haven't run across? 

I suspect that a downward funarg solution would handle most cases where a 
nested type extension was desired, provided the original tagged type 
provided for this possibility by having some primitive subprograms with
access to subprogram args.

> Another idea, which was never seriously considered, would be to allow
> nested type extensions, and then check at run time upon leaving a scope
> that there are no objects with that 'Tag still in existence.  That
> design could be made to work, but there are plenty of problems with it.

So, only allow this for descendants of (possibly limited) Controlled
types, or some similar special type?

-- Brian






  reply	other threads:[~1999-08-08  0:00 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-03  0:00 Subverting 'Access for Sub-programs Anton Gibbs
1999-08-03  0:00 ` David C. Hoos, Sr.
1999-08-05  0:00   ` Robert A Duff
1999-08-03  0:00 ` Michael F. Yoder
1999-08-03  0:00 ` Brian Rogoff
1999-08-03  0:00 ` tmoran
1999-08-03  0:00 ` Steve Doiel
1999-08-03  0:00 ` Ted Dennison
1999-08-04  0:00 ` Anton Gibbs
1999-08-04  0:00   ` Robert A Duff
1999-08-04  0:00     ` Brian Rogoff
1999-08-05  0:00       ` tmoran
1999-08-05  0:00         ` Robert Dewar
1999-08-05  0:00           ` Ray Blaak
1999-08-06  0:00             ` Jean-Pierre Rosen
1999-08-06  0:00               ` Hyman Rosen
1999-08-07  0:00                 ` Florian Weimer
1999-08-06  0:00             ` Robert Dewar
1999-08-06  0:00               ` Robert A Duff
1999-08-08  0:00                 ` Brian Rogoff [this message]
1999-08-09  0:00                   ` Robert A Duff
1999-08-10  0:00                     ` Brian Rogoff
1999-08-09  0:00                 ` Tucker Taft
1999-08-05  0:00         ` Aidan Skinner
1999-08-05  0:00     ` Anton Gibbs
1999-08-04  0:00   ` Jean-Pierre Rosen
1999-08-04  0:00     ` Brian Rogoff
1999-08-05  0:00       ` Jean-Pierre Rosen
1999-08-05  0:00         ` Robert A Duff
1999-08-05  0:00           ` Robert Dewar
1999-08-05  0:00           ` tmoran
1999-08-06  0:00             ` Robert A Duff
1999-08-05  0:00           ` Brian Rogoff
1999-08-06  0:00             ` Robert Dewar
1999-08-09  0:00               ` Tucker Taft
1999-08-10  0:00                 ` Robert Dewar
1999-08-11  0:00                   ` Tucker Taft
1999-08-13  0:00                     ` Robert Dewar
1999-08-13  0:00                       ` Brian Rogoff
1999-08-13  0:00                     ` Robert Dewar
1999-08-11  0:00                   ` Robert A Duff
1999-08-11  0:00                     ` Robert Dewar
1999-08-11  0:00                   ` Dmitry A. Kazakov
1999-08-11  0:00                     ` Richard D Riehle
1999-08-11  0:00                     ` Robert Dewar
1999-08-12  0:00                       ` Dmitry A. Kazakov
1999-08-14  0:00                         ` Robert Dewar
1999-08-16  0:00                           ` Dmitry A. Kazakov
1999-08-05  0:00         ` adam
1999-08-05  0:00           ` Robert Dewar
1999-08-05  0:00             ` What is a Display ? (was: Subverting 'Access for Sub-programs) Larry Kilgallen
1999-08-05  0:00               ` Hyman Rosen
1999-08-06  0:00                 ` Robert Dewar
1999-08-06  0:00               ` Robert Dewar
1999-08-05  0:00           ` Subverting 'Access for Sub-programs adam
1999-08-06  0:00             ` Robert A Duff
1999-08-06  0:00               ` adam
1999-08-09  0:00                 ` Mark Biggar
1999-08-09  0:00                 ` Robert A Duff
1999-08-06  0:00         ` Brian Rogoff
1999-08-07  0:00           ` Gautier
1999-08-05  0:00     ` Robert A Duff
1999-08-05  0:00       ` Robert Dewar
1999-08-05  0:00         ` Brian Rogoff
1999-08-05  0:00   ` Steve Quinlan
1999-08-04  0:00 ` Robert Dewar
1999-08-04  0:00   ` Robert A Duff
1999-08-04  0:00     ` Robert Dewar
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox