std.experimental Timeline

Jonathan M Davis via Digitalmars-d digitalmars-d at puremagic.com
Fri Jan 1 09:26:17 PST 2016


On Thursday, 31 December 2015 at 18:54:05 UTC, 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.

We have no actual policy on the matter, and until we do, I expect 
that anything that's in std.experimental will indeed sit there 
indefinitely.

Putting stuff in std.experimental to begin with in order to let 
it be banged on a bit by the community at large before being 
finalized in std makes sense, but at what point is it actually 
ready to be put into std? How do we decide that? And do we need 
to vote again, or have any kind of further review in the 
newsgroup? Or do we just wait and see if we get bug reports on it 
and otherwise leave it as-is until we move it over into std due 
to age or because some of the Phobos devs feel like it? AFAIK, 
there's no consensus whatsoever on any of that. AFAIK, we don't 
really even have any proposals on that. We just sort of decided 
that having stuff put into experimental first would be a good 
idea so that we can minimize breaking stuff in std or be forced 
to leave it as-is permanently when a problem is found in the API 
within a release or two of it being put in Phobos.

Probably, we either need someone to propose a process so that we 
can discuss it and possibly adopt it (either by agreeing to it as 
a group or by Walter and Andrei approving it). Certainly, until 
someone pushes the issue, I expect that nothing is going to 
escape std.experimental.

>> 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 confess that I was assuming that that was the case, but I'm not 
sure that it's ever been discussed. If there's any risk of the 
code from std.experimental being thrown away from Phobos rather 
than moved into std, or if using the stuff from std.experimental 
would affect the API in std, then it would probably be a bad idea 
to use it in std. But if it's definitely going to stay in one 
form or another, and changes to it aren't going to affect the API 
in std, then maybe it would be okay. I don't know. I was assuming 
that std.experimental was an island unto itself, and it hadn't 
occurred to me that anyone would be using it in std before it go 
into std itself, but that doesn't mean that that's necessarily 
how it should be.

- Jonathan M Davis


More information about the Digitalmars-d mailing list