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