Phobos' slow descent into madness

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Sat May 8 15:35:27 UTC 2021


On 5/8/21 6:01 AM, Berni44 wrote:
> 
> - Let Phobos 1.0 be as is (maybe even remove the deprecation cycles).
> - Move over to Phobos 2.0 (e. g.) until summer 2023 (with a list of 
> goals at hand, e.g. no auto-*coughing*, a better range/string concept, 
> etc.). This will include several breaking changes.
> - End of 2022 Phobos 2.0 will be frozen: Nothing new is accepted, only 
> bugfixes.
> - From summer 2023 on, Phobos 2.0 is stable. We guarantee backward 
> compatibility forever, but things may be deprecated.
> - We may then start working on Phobos 2.1, which will be released in 
> summer 2025 and frozen at end of 2024. And so on.

Couple of things missing here: (a) the rule of incrementalism and (b) 
the rule of nonduplication.

The rule of incrementalism is that code can use arbitrary parts of 
Phobos 2.0 in conjunction with arbitrary parts of Phobos 1.0. The 
migration path would be as simple as progressively replacing 
std.somemodule with std.v2.somemodule and get code to compile.

The rule of nonduplication is there should be no code in Phobos 2.0 that 
is identical to code in Phobos 1.0. Whenever Phobos 2.0 needs 
functionality of Phobos 1.0, it must be able to do so with ease.

These are much more difficult to achieve than it seems. However, they 
are existential - we must satisfy them if we want to survive.


More information about the Digitalmars-d mailing list