libphobos.so libdruntime.so

Trass3r un at known.com
Fri Feb 3 11:28:04 PST 2012


> 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.


More information about the Digitalmars-d mailing list