Re: [phobos] New Linux phobos shared library
On Tuesday, 9 July 2013 at 04:53:01 UTC, Jordi Sayol wrote: 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. This is exactly naming scheme I am already using in my Arch Linux PKGBUILD, so +1 here :)
Re: [phobos] New Linux phobos shared library
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. T -- Let's call it an accidental feature. -- Larry Wall
Re: [phobos] New Linux phobos shared library
On 09/07/13 13:37, Dicebot wrote: On Tuesday, 9 July 2013 at 04:53:01 UTC, Jordi Sayol wrote: 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. This is exactly naming scheme I am already using in my Arch Linux PKGBUILD, so +1 here :) Thank you! and +1 for you too :-) Programs dynamically links against SONAME, so it's more important than the real library name. What SONAME naming scheme you used in Arch Linux PKGBUILD? -- Jordi Sayol
Re: [phobos] New Linux phobos shared library
On Tuesday, 9 July 2013 at 14:31:51 UTC, Jordi Sayol wrote: Programs dynamically links against SONAME, so it's more important than the real library name. What SONAME naming scheme you used in Arch Linux PKGBUILD? To my shame, default one is (.0.2) is used, completely forgot about it. Will bother an official maintainer as soon as final decision is approved.
Re: [phobos] New Linux phobos shared library
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