Make all new symbols go through std.experimental?

Steven Schveighoffer via Digitalmars-d digitalmars-d at puremagic.com
Thu Oct 29 05:46:03 PDT 2015


On 10/27/15 8:28 PM, Andrei Alexandrescu wrote:
> I was looking at
> https://github.com/D-Programming-Language/phobos/pull/3765 and whilst
> it's a sensible addition, I'm thinking we'd want to pass it and all
> other library additions through std.experimental first. So we'd have a
> std.experimental.range package that would be a purgatory for things to
> be added to std.range, and so on.
>
> We have examples from the past when additions that seemed obvious and
> sensible needed a few tweaks before stabilization. Going through
> std.experimental seems like a good approach to do such.
>
>
> What say you?

No.

This seems overly-cautious. We are saying we want to INTENTIONALLY break 
your code at some point in the future when it moves out of 
std.experimental. If the symbol never changes, then this is a waste.

I think it's a judgment call as to whether you start off a symbol in 
std.experimental. Is it controversial? Does it seem like the API is 
difficult to use? Having a hard-set rule for something that is OBVIOUSLY 
designed correctly is not good.

I think it's fine to require symbols to be put in purgatory if it seems 
like they likely will change. But having a rule that they MUST go there 
is too much.

It's most definitely different for completely new modules. These are 
likely to change/grow over time, especially with new people using them.

BTW, we may get more mileage out of identifying when a symbol was added. 
I know in many different languages, the docs for a symbol identify the 
first version that contained the symbol. I think someone would be more 
forgiving of a change to a symbol that was added recently than one that 
was there from 5 years ago.

-Steve


More information about the Digitalmars-d mailing list