On Thursday, 1 June 2017 at 18:40:05 UTC, Brad Anderson wrote:
A (surely controversial) idea popped into my head while talking
in #d on Freenode. The C++ guys are making an STL2 (the
highlight of it being that it is range based). What about
taking all the lessons learned from Phobos and creating a
Phobos 2? It wouldn't replace the current version. You could
import either in one program. It also wouldn't be a radical
redesign. Most of Phobos could be used as is. What it would do
is allow fixing some hard or impossible problems without losing
backward compatibility.
Mir libraries are alternative to Phobos
https://github.com/libmir
We could do away with auto-decoding. Design it around using
Primitives that do not perform auto-decoding.
http://docs.algorithm.dlang.io/latest/mir_array_primitives.html
Andrei's allocators throughout. Make the GC optional from the
start. Fix a few important naming conflicts and discrepancies.
It is a huge work.
Allocators are part of the Phobos, GC is part of the runtime.
So, allocators should be moved to runtime.
There are problems, of course. Rampant code duplication is
probably the biggest (though maybe public imports of identical
code would help a lot).
I don't really expect this to go anywhere but I am curious to
hear what changes you'd all like to see made to Phobos that
can't happen because of backward compatibility. Also, how would
you approach doing this? An on disk copy of Phobos with changes
would not be an acceptable approach, I think.
Mir uses separate dub packages for algorithmic and system parts.
We are looking for new contributors.
Best,
Ilya