From: Tucker Taft <stt@averstar.com>
Subject: Re: Access to strings and string subtypes?
Date: 2000/03/20
Date: 2000-03-20T20:06:11+00:00 [thread overview]
Message-ID: <38D684B2.8B16F58C@averstar.com> (raw)
In-Reply-To: 8b0pu2$b80$1@nnrp1.deja.com
Robert Dewar wrote:
>
> In article <wcczorx1tkq.fsf@world.std.com>,
> Robert A Duff <bobduff@world.std.com> wrote:
>
> > I don't think it was purely an efficiency issue.
>
> I really think you are wrong here. I remember these discussions
> very well, since I was opposed to this kludge.
>
> > I think we were
> > concerned that existing Ada 83 implementations were already
> > doing that optimization, and would have difficulty changing
> > the way they represent arrays.
>
> If anyone was concerned about this, they never voiced this
> concern at any meeting I was at. Perhaps I have forgotten,
> but my memory was that this PURELY an efficiency concern.
>
> Really I can't imagine any Ada 83 compiler making this
> distinction (the ones that I am familiar with certainly
> did not). You should at least be able to come up with one
> example to back up your conjecture :-)
The problem was not so much with the objects as it was with
the access values. For many compilers, access-to-unconstrained
expects the object to have dope contiguous with the object,
whereas with access-to-constrained, there is no dope associated
with the object. If the same type of access value could point
to either, then both would require contiguous dope. This is
not much of a hardship for stand-alone objects. However, for
record or array components, adding dope as a side effect of
adding the word "aliased" to the component seemed undesirable at the
time (at least to some of us). So it was a space efficiency
issue primarily. In retrospect, I guess having "aliased" cause
the addition of contiguous dope might have been the better approach,
but as usual, hindsight is 20-20 (or wears rose-colored glasses,
or something like that ;-).
These concerns all presume the "thin pointer" representation
for access-to-unconstrained types. For the "fat pointer" representation,
where there is a separate pointer to the dope, this problem disappears.
But of course that interacts in tricky ways with
access-to-deferred-incomplete, etc.
> Part of the reason I remember is that there were VERY few cases
> where we compromised the language for the benefit of existing
> implementations in very specific terms (we did have some general
> concerns about scope of change).
As indicated above, it wasn't so much about difficulty of implementation,
as about space overhead.
--
-Tucker Taft stt@averstar.com http://www.averstar.com/~stt/
Technical Director, Distributed IT Solutions (www.averstar.com/tools)
AverStar (formerly Intermetrics, Inc.) Burlington, MA USA
next prev parent reply other threads:[~2000-03-20 0:00 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-03-16 0:00 Access to strings and string subtypes? Steve Folly
2000-03-16 0:00 ` Ehud Lamm
2000-03-16 0:00 ` Steve Folly
2000-03-17 0:00 ` Ehud Lamm
2000-03-17 0:00 ` Larry Kilgallen
2000-03-17 0:00 ` Robert Dewar
2000-03-17 0:00 ` Robert A Duff
2000-03-18 0:00 ` Robert Dewar
2000-03-20 0:00 ` Tucker Taft [this message]
2000-03-17 0:00 ` Steve Folly
2000-03-17 0:00 ` Pascal Obry
-- strict thread matches above, loose matches on Subject: below --
2000-03-17 0:00 Christoph Grein
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox