Walter Bright:

I like this general proposal, it sounds like something that can improve D a 
little. There are many other things that have to be improved in D, but baby 
steps are enough to go somewhere :-)

>Slices will retain the old:
>     T[] slice;
> syntax. Resizeable arrays will be declared as:
>     T[new] array;

Such syntaxes have to be chosen wisely. I don't fully understand that syntax. 
And maybe I don't fully like it.
I think the default (simpler) syntax has to be the most flexible and safer 
construct, that is resizable arrays. Slices can be seen as an optimization, so 
they can have a bit longer syntax.


> Under the hood, a T[new] will be a single pointer to a library defined 
> type. This library defined type will likely contain three properties:
>      size_t length;
>      T* ptr;
>      size_t capacity;

Weren't you suggestion to use the start pointer - end pointer instead?


> 2. make arrays implementable on .net

I don't care of such thing. dotnet already has C# and C# is probably better 
than D, and it's similar anyway. So I don't think people will use D on dotnet. 
So even if creating a D for dotnet can be positive, I don't want D2 to change 
its design to allow a better implementation on dotnet.

The question by Brad Roberts looks important, it has to find some kind of 
answer:
>What will happen with slices over a T[new] when the underlying T[new] must be 
>moved due to resizing?<

Bye,
bearophile

Reply via email to