Haskell executables dynamic vs static linking

Jens Petersen petersen at redhat.com
Thu Mar 13 04:26:06 UTC 2014


Sébastien Willmann wrote:
> Is there an issue specific to Haskell that makes it harder than with other languages?

Well yes, the fact that I can't take a dynamic executable from F19 and run it in F20 or vice-versa, etc.

I just "bumped" into this again when trying to get cabal-rpm under ghc-7.8.

I guess one could argue that tools like cabal-install and cblrpm need/should
not be tied to a specific ghc version: at least in this sense statically
linking them for more portability makes some sense.  Arguably cabal-install
would be enough but in practice some executables have a lot of deps
making that impractical.

Overall I agree we should continue to do dynamic linking generally,
but also consider linking static Haskell libs for greater portability
across releases/ghc versions perhaps where it makes particular sense.

Though this would really be a workaround for the lack of parallel
installation of Fedora Haskell shared libraries per ghc version
(Software Collections could be used for this)
or actually ghc's hyperstrict library versioning.
Another approach which seems good for dynamic
might be "bundle" cabal-install into the ghc package
though upstream might well be relunctant to do it.

Jens


More information about the haskell mailing list