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