Proof of concept for v2 - NO duplication, NO `static if` hell, NO difficulty with interoperability

Andrei Alexandrescu SeeWebsiteForEmail at erdani.com
Mon Nov 1 13:32:05 UTC 2021


On 2021-11-01 6:48, Guillaume Piolat wrote:
> On Monday, 1 November 2021 at 08:45:07 UTC, Paolo Invernizzi wrote:
>> On Monday, 1 November 2021 at 00:59:49 UTC, Adam Ruppe wrote:
>>> On Monday, 1 November 2021 at 00:05:30 UTC, Andrei Alexandrescu wrote:
>>>> while we were wringing our hands about breaking the behavior for 
>>>> like a dozen users.
>>>
>>> If you agree there are only like a dozen users, why not just make the 
>>> changes and be done with it? Why worry about preserving v1 behavior 
>>> at all? (Worth noting you can always just download an old version too.)
>>
>> +1
> 
> +1
> Might be a few people, but I wouldn't mind Phobos just having breaking 
> changes (and a changelog entry for each).

The whole "dozen users" has been a misunderstanding - there are users 
whose code depends on every little thing, different for different 
categories. It's not like any breakage no matter how large affects only 
a few users.

"No more autodecoding" is more than a change worth a changelog entry. 
Compounded with other changes it's just catastrophic. This is obvious 
and we oughtn't debate it.

> 1. In reality we can special case with static if (__VERSION__)

Which has worked well for no language, ever. Pushing versioning hell on 
users doesn't seem like a good way to go about things.

> 2. This is routine in the DUB universe, you can produce a new major tag 
> with breaking changes, provide a changelog, and inside you can delete a 
> dependency, add a dependency, rename, and it's quite good as users can 
> depends on the earlier version. If anything, I think putting some of the 
> stdlib as dub package (the barely used stuff) might help evolves the API 
> and lessen the exposure (examples: std.uuid std.bigint std.getopt...).

I think the language's standard library is under different constraints 
than others.

> 3. I bet most of the commercial users usually pin the D compiler version 
> they use.

Of course. And they all love a migration path.


More information about the Digitalmars-d mailing list