Proof of concept for v2 - NO duplication, NO `static if` hell, NO difficulty with interoperability
Johan
j at j.nl
Mon Nov 1 11:28:55 UTC 2021
On Monday, 1 November 2021 at 00:05:30 UTC, Andrei Alexandrescu
wrote:
> On 10/31/21 2:37 PM, Johan wrote:
>> On Sunday, 31 October 2021 at 17:32:07 UTC, Andrei
>> Alexandrescu wrote:
>>>
>>> I'd say if we get rid of autodecoding that would be a solid
>>> release attainable in good time. It would also provide a
>>> model for all future evolution - v3, v4, ...
>>
>> Hi Andrei,
>> Are you not worried about increasing the knowledge required
>> to use and understand D? What I mean is: if the _standard_
>> library is going to be versioned, users will have to remember
>> the differences between all versions of it.
>
> Thanks for asking.
>
> I have zero worries about that. Negative if at all possible.
>
> [...]
>
> There is stuff added to C++11, improved in C++14, and
> deprecated in C++17. And nobody bats an eye.
>
> Given the above and also the perennial stagnation the D library
> has been in, I'd say it's version or die.
OK. Just note that C++11,14,17 is a 3 year update schedule,
whereas currently the D compiler releases at breakneck pace of 3
months. I really hope the versioned stdlib releases will not move
at that pace.
> The fact that a solution turned out to be so simple is actually
> evidence that the community has been missing the point for
> years, instead of just working on the top priority.
>
>> I'm sorry to derail the topic of this thread, but rather than
>> a discussion of how to implement the versioning, I would like
>> to see a discussion first about what the user will see and how
>> he is supposed to use it. I think the implementation of it is
>> the easy part.
>
> I very strongly disagree.
Perhaps you misunderstood my point, but reading your mail I see
we agree on most :) As you wrote a few sentences up, at least you
agree that implementation is indeed easy ;-)
Just having clear examples of some code would really help paint
the picture that indeed the future is bright with versioned
stdlib.
Breakage can be OK, if done deliberately and in a 'nice' way for
the user to deal with; and versioning deliberately prevents
breakage.
>> Is the user expected to completely migrate to use std.v3, or
>> should he use a mix of std.v1, std.v2, std.v3?
>
> Up to them.
This is a big statement. For me this means:
- v1 support is 'everlasting' and bugfixes will keep landing
there too.
- v2, v3, v4 will contain _all_ functionality that v1 has, and
version x may be somewhere halfway on the path between v1
behavior and end goal behavior (e.g. some functions still do
autodecoding and others don't). Another path would be to only add
to v2 the functions that have changed, and for functionality that
did not change the user should keep using v1.
>> Will there be autodecoding functions in v3?
>
> Probably not. But there will be decoding functions in v3.
Removing the "auto" part sounds very good indeed.
-Johan
More information about the Digitalmars-d
mailing list