On 09/07/13 15:49, H. S. Teoh wrote: > On Tue, Jul 09, 2013 at 06:52:44AM +0200, Jordi Sayol wrote: >> From dmd v2.063, release zip file includes Linux phobos shared >> libraries. As shared libraries are needed at runtime too, we should >> allow to install multiple versions of phobos shared libs. at same >> time. If not, every program compiled against it will be forced to be >> recompiled every new dmd/phobos release. To avoid this, phobos shared >> libs. should include some version number on its name. >> >> I propose to name the shared phobos library as "libphobos2.so.0.nn.0", >> where "nn" is the current dmd version. The last zero is just for >> bug/regression fixes. >> >> As phobos changes its interface (almost) every new release, I propose >> to set its SONAME to "libphobos2.so.0.nn", so when phobos become >> stable we can change the library name to "libphobos2.so.1.0.0" and its >> SONAME to "libphobos2.so.1". >> >> Some info about Linux shared libraries: >> http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html > [...] > > +1. > > Shared library breakages are a royal pain in the neck. We should try to > get them right earlier rather than later. I'd say file a high-priority > bug in the bugtracker, if it hasn't already been. > > Basically, the library needs to have a different soname EVERYTIME its > ABI changes (not just API, mind you). Anything other than that will lead > to pain and angry users.
Ok, I just proposed a system where every dmd beta release gives an specific phobos shared library name and SONAME. The problem you point will appear when phobos shared library becomes stable. I don't know what will be the best way to "control" ABI changes. Is it possible to create a sort of flag in the Phobos project repository indicating this? -- Jordi Sayol