DIP 1025--Dynamic Arrays Only Shrink, Never Grow--Community Review Round 1

Sebastiaan Koppe mail at skoppe.eu
Tue Nov 12 08:41:52 UTC 2019

On Monday, 11 November 2019 at 10:27:26 UTC, Mike Parker wrote:
> This is the feedback thread for the first round of Community 
> Review for DIP 1025, "Dynamic Arrays Only Shrink, Never Grow":
> https://github.com/dlang/DIPs/blob/1b525ec4c914c06bc286c1a6dc93bf1533ee56e4/DIPs/DIP1025.md
> All review-related feedback on and discussion of the DIP should 
> occur in this thread. The review period will end at 11:59 PM ET 
> on November 25, or when I make a post declaring it complete.
> At the end of Round 1, if further review is deemed necessary, 
> the DIP will be scheduled for another round of Community 
> Review. Otherwise, it will be queued for the Final Review and 
> Formal Assessment.
> Anyone intending to post feedback in this thread is expected to 
> be familiar with the reviewer guidelines:
> https://github.com/dlang/DIPs/blob/master/docs/guidelines-reviewers.md
> *Please stay on topic!*
> Thanks in advance to all who participate.

I understand where this proposal comes from, but it would 
certainly cause a lot of breakage and it would cripple the 
universal feature common to all programming languages, arrays. 
Without filling the void this proposal leaves behind, I don't see 
any support for it.

I would personally look at the conflation of dynamic arrays and 
slices. If you could somehow separate the 2 concepts and THEN 
constrain slices to only be able to shrink, that might work. (or 
keep them conflated but make borrowed slices non appendable.) (or 
make the implicit explicit by somehow requiring `.array` before 

On the other hand, the fact that they are conflated also brings 
benefits, and you certainly don't want to loose them. It is a 
tough nut to crack.


In general I agree with the sentiment D's language features 
oftentimes depend too much on an all-knowing garbage collector. 
Maybe there is a way that behaviour could be made customisable 
for people who need that, instead of having everyone bear the 
costs. (e.g. I have done a lot of betterC programming lately, and 
while I can use my own custom allocators, things like closures 
still depend on a GC.)

More information about the Digitalmars-d mailing list