it would be helpful if packages being moved in phobos had a transition period

singingbush singingbush at hotmail.com
Sun Oct 16 12:04:11 UTC 2022


When 2.099 was released `std.experimental.checkedint` became 
`std.checkedint`.

https://dlang.org/changelog/2.099.0.html

I'm happy for things to move out of `std.experimental` but I 
would love to see an improved process around it to prevent 
problems for users.

Changes like this can break tooling as well as libraries that 
need to support multiple versions of D.

For libraries published to dub repo it's worth having a fix like 
this to work around the issue:

```
     // https://dlang.org/changelog/2.099.0.html#checkedint
     static if (__VERSION__ >= 2099)
         import std.checkedint; // no longer experimental
     else
         import std.experimental.checkedint; // support older D 
front ends
```

but for tooling such as the Intellij plugin it's little more 
annoying (currently).

It would be really helpful if, when moving things out from 
`std.experimental`, that both the new and old import paths would 
work for some time as an overlap. Ideally with the older import 
path generating a deprecation warning during compile. It's 
frequent breaking changes like this that have always hindered me 
from using D in the workplace.


More information about the Digitalmars-d mailing list