On Thursday, 13 April 2017 at 15:00:16 UTC, Dejan Lekic wrote:
On Thursday, 13 April 2017 at 10:00:43 UTC, 9il wrote:
On Thursday, 13 April 2017 at 08:47:16 UTC, Ali Çehreli wrote:
[...]

The reasons to use mir-algorithm instead of std.range, std.algorithm, std.functional (when applicable):

1. It allows easily construct one and multidimensional random access ranges. You may compare `bitwise` implementation in mir-algorithm and Phobos. Mir's version few times smaller and do not have Phobos bugs like non mutable `front`. See also `bitpack`.
2. Mir devs are very cary about BetterC
3. Slice is universal, full featured, and multidimensional random access range. All RARs can be expressed through generic Slice struct.
4. It is faster to compile and generates less templates bloat.
For example:

slice.map!fun1.map!fun2

is the same as

slice.map!(pipe!(fun1, fun2))

`map` and `pipe` are from mir-algorithm.

It is all good, but I am sure many D programmers, myself included, would appreciate if shortcomings of Phobos are fixed instead of having a completely separate package with set of features that overlap... I understand ndslice was at some point in the `experimental` package, but again - it would be good if you improve existing Phobos stuff instead of providing a separate library that provides better implementation(s).

Work on Phobos is useless for me because when I need something and I am ready to write / fix it I have few days, but not few months until LDC release. DUB is more flexible, it allows to override version with local path for example. Finally, I think Phobos should be deprecated and be split into dub packages.

Reply via email to