D array expansion and non-deterministic re-allocation
Steven Schveighoffer
schveiguy at yahoo.com
Thu Nov 19 04:09:55 PST 2009
On Wed, 18 Nov 2009 14:03:11 -0500, Bartosz Milewski
<bartosz-nospam at relisoft.com> wrote:
> Andrei Alexandrescu Wrote:
>
>
>> One thing that Bartosz didn't mention is that "this unique" is different
>> than "the other unique", which I think reveals the half-bakedness of the
>> proposal. "The other unique" that was intensively discussed before is
>> transitive, meaning that the root reference points to a graph of objects
>> having no other connection to the outer world. "This unique" is very
>> different because it's shallow - only the array chunk is unaliased, but
>> the members of the array don't need to be. This is a very important
>> distinction.
>
> Actually I was thinking of deep unique, but understandably I neither
> described full details of my proposal, nor have I completely "baked" it,
> which would require some serious work and a lot more discussion. One of
> these days I will blog about uniqueness in more detail.
>
> The problem of transitivity with respect to arrays has been discussed
> before in the context of const and immutable. We realized that shallow
> constness/immutability would be useful in some scenarios but, because of
> the added complexity, we punted it. My feeling is that, similarly, in
> most cases the restriction that a unique array may only hold unique
> objects is not unreasonable.
I wonder what your expert opinion is: Is something like unique possible
without introducing all the other type modifiers (like 'lent', etc.)? If
not, what are the minimum type modifiers you'd need to get unique to
work? I really like the unique concept, and think it is really one of the
biggest holes missing from the const system (aside from bug 1961).
-Steve
More information about the Digitalmars-d
mailing list