On Saturday, 25 March 2017 at 10:28:36 UTC, XavierAP wrote:
On Saturday, 25 March 2017 at 09:42:07 UTC, Daniel N wrote:
As a ndslice user, I long dreaded this day:
2.074.0: "std.experimental.ndslice has been removed"
Are you aware that ndslice is available at
https://github.com/libmir/mir-algorithm right?
I believe the reason std.experimental.ndslice must have been
removed is because it was an already out of date fork. The
newest is forked out of Phobos because the author decided to
stop working inside Phobos. Maybe Ilya can explain it better if
he sees the thread.
Well, as the guy who removed Mir from Phobos, I can share a
couple insights on why having Mir in Phobos is problematic:
- different release cycle:
- it takes minutes or hours for a bug fix in mir to be
available and months for phobos
- using proper semantic versioning deprecation issues are a
greatly reduced (users always have the same code base and when
they have time, they can upgrade to the latest and greatest)
- lack of progress:
- there aren't many reviewers for ndslice, so in the past PRs
to ndslice got unnecessarily stalled
- there was a huge discussion last summer when Ilya tried to
move ndslice.iteration into std.experimental.ndslice (there were
endless discussions about the naming of his functions)
- dependency on LDC (fast math and previously proper FP math):
mir wasn't compatible with DMD for a couple of releases
- external dependencies: e.g. mir-glas depends on a different
cpuid than the one in core.cpuid
- Ilya has a huge focus on -betterC and the idea is that all Mir
projects can be used without Phobos and druntime, so that it can
easily be linked with C (see also his proposal for a small,
modular and betterC-compatible standard library:
https://forum.dlang.org/post/phexetutyelrssyru...@forum.dlang.org)
So in short: as long as a library is in active development, it's
its death to put it into the standard library.