Am 03.02.2012, 20:28 Uhr, schrieb Trass3r <u...@known.com>:
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?
More with the wink of an eye, that in the event of shared libraries,
deprecations of functions in every release will have this effect. :)
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.
How about having the option? Handling this correctly from the start on
will reduce the likelyhood that someone considers D a toy language.
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'm using software written in OCaml, Python, Java, C++ and Delphi and it
is possible that there will be D apps I install through the package
manager, once there are standard packages in Linux distributions. And I
think that is more likely if D can come with the runtime as a shared
library. And like Johannes said earlier, there may be situations where you
depend on the availability of shared libraries.
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.
Fair enough. I guess, I just don't want to say "I knew this would happen"
later. :)