std.experimental Timeline
Steven Schveighoffer via Digitalmars-d
digitalmars-d at puremagic.com
Thu Dec 31 11:47:26 PST 2015
On 12/31/15 1:54 PM, Jack Stouffer wrote:
> On Thursday, 31 December 2015 at 18:26:08 UTC, Steven Schveighoffer wrote:
>> I'm not concerned. Code can live in experimental as long as it's
>> needed to flesh out the API. The idea behind std.experimental is to
>> give us a disclaimer that the API may change at any release despite
>> usage.
>>
>> So the timeline is "when it's ready"
>
> I concerns me because without deadlines things get endlessly delayed.
> Also, keeping things in experimental for too long encourages a overly
> cautious mentality IMO.
Yes, but the alternative is to have a bad API we must maintain. For
example, object.destroy used to be called object.clear. It's just now
coming out of the requirement to be supported as clear, and I can
finally add a method to AAs that clear all elements (I implemented it
last year, but put on hold because it was determined that we should wait
until we could use the "obvious" name).
The idea of having it in std.experimental instead of just on its own
repository is so that it goes through the same rigors of testing that
all of phobos does, and so that it gets used more. For all intents and
purposes, it's "official", just that the API isn't completely baked.
I'd say that if people are using it for a good period of time and nobody
has any serious objections to it, then we can consider moving it to std.
>
>> In the case of allocator, it's quite possible we could start including
>> parameters to functions that are allocators in std, since the behavior
>> of the allocator is implementation, not API. In other words, a
>> function that takes an allocator may not have to be in
>> std.experimental, as long as you know that the parameter is an
>> allocator and the implementation knows how to properly use it (and
>> existing code compiles).
>
> I was under the impression that any Phobos code importing from
> experimental was taboo.
>
I wouldn't say so. If it's an implementation detail, so what? The key is
to avoid breaking changes with user code, not breaking changes between
std.experimental and std.
But I'm not the end-all rule maker. Perhaps there is a rule that it's taboo.
-Steve
More information about the Digitalmars-d
mailing list