Re: [phobos] New Linux phobos shared library

2013-07-09 Thread Dicebot

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

2013-07-09 Thread H. S. Teoh
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

2013-07-09 Thread Jordi Sayol
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

2013-07-09 Thread Dicebot

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

2013-07-09 Thread Jordi Sayol
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