On Monday, 2 February 2015 at 20:09:42 UTC, Piotrek wrote:
On Monday, 2 February 2015 at 06:07:29 UTC, Zach the Mystic
wrote:
Therefore, I think std.experimental is for all "in flux" APIs,
from the drafting stage to the later "less in flux" stages.
Definitely this is what I thought initially. But, IMO, it can
be really hard or impossible to carry out, as you pointed one
of the issues in the following part:
The danger is that the phobos management will want to have
their cake and eat it too, as the saying goes. You simply
can't promise users both stability and a perfectly designed
API at the same time, tempting as it is.
Hence the *proposal* of the drafting library.
Piotrek
I think std.experimental should essentially be its own library,
with its own slot next to phobos on the github repo. I'm open to
changing the name or something... but if we have both
std.experimental *and* your new mars, what do you think is the
real difference? How can std.experimental be "sort of"
experimental, but really not, whereas mars is "really actually"
experimental? Where is the cutoff line? How would anyone know
whether they reached it or not?
My attitude is that any given module in std.experimental should
simply indicate its current level stability at the top of its
documentation - full disclosure about where it is from, say, 0 to
95%, (with anything above that already assumed qualified for std
proper).
I'd even make one more point, that all current phobos modules
known to be in need of revamping be copied wholesale in their
current forms to std.experimental, with the top documentation
saying, "This is the experimental version of the old std.xxx,
which needs *your* help with its redesign and implementation.
Feel free to break the current API by improving it. This is *not*
currently considered a stable module."