On 31 May 2010 20:14, Pete Chown <1...@234.cx> wrote:
> I was just thinking, interactions between Cabal and the distribution package
> manager could get worse, as shared Haskell libraries become more common.
>  Suppose a distribution ships a package 'foo', but not a package 'bar' which
> depends on it.  The 'foo' package includes shared libraries.  The user now
> installs 'bar' using Cabal.  This causes Cabal to install 'foo' (because it
> is a dependency) and it won't use the distribution's package manager.

Why won't it?  This, of course, depends on how the distribution ships
`foo' in regards to static/shared libraries and what the user's
options to Cabal/cabal-install are.

In Gentoo, for example, we at the moment only build static libraries,
mainly because there has been no pressing need/request for shared
libraries; however it would definitely be possible to add support for
them (might be difficult dependency-wise if shared library support it
optional, but this is also a problem we haven't resolved yet for
profiling libraries).

> If 'foo' is built as a shared library, programs built by the user will not
> work for anyone else.  Other users will have the distribution's build of
> 'foo' rather than Cabal's build.  If 'foo' is built statically, it's not
> quite so bad, but the user will not get the benefits that could come from
> using shared libraries.

In general, even if some application is built statically then it won't
work on other machines due to different C library versions (GMP,
etc.), so I don't think this is such a big deal.

Of course, the big thing here is whether Linux distributions, etc.
should ship static or shared libraries by default.

-- 
Ivan Lazar Miljenovic
ivan.miljeno...@gmail.com
IvanMiljenovic.wordpress.com
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to