The same has to happen with druntime and Phobos2 or otherwise our programs will break with every new release that deprecates or changes non-template functions. That would probably be *every* release at the moment, so it could look like this:
/usr/lib64/libphobos2.so     (link to /usr/lib64/libphobos2.so.060)
/usr/lib64/libphobos2.so.058
/usr/lib64/libphobos2.so.059
/usr/lib64/libphobos2.so.060
/usr/lib64/libdruntime.so     (link to /usr/lib64/libdruntime.so.060)
/usr/lib64/libdruntime.so.058
/usr/lib64/libdruntime.so.059
/usr/lib64/libdruntime.so.060

And you don't consider this insane?
The 'shared' approach is fine if a library has settled and is used pervasively like C runtime. Also the library needs to have an appropriate development approach with major (feature) revisions and smaller non-breaking versions. Phobos is a fast-moving target and doesn't fit in this model neither will it in the foreseeable future.

Why do people always treat D like a mainstream language? It isn't.
The chance that one has more than a few real D apps on one's machine is quite low. The chance that they use the very same version of phobos/druntime is even lower. And usually the only ones you actually use are developed by yourself anyway.

I rather have a slightly bigger executable than having my system cluttered with hundreds of phobos versions I don't need. And you should keep in mind that dmd's phobos is currently 17MB, gdc's is 25+5.5. Plus most apps only use a small share of that.


Making druntime shared sometime is ok I think, but it's just not ready yet. See the recent associative arrays dilemma. And the crappy GC.

Reply via email to