Dynamic libraries by default and GHC 7.8

Manuel M T Chakravarty chak at cse.unsw.edu.au
Wed Dec 5 03:33:27 CET 2012

Simon Marlow <marlowsd at gmail.com>:
>> This has some advantages and some disadvantages, so we need to make a
>> decision about what we want to do in GHC 7.8. There are also some policy
>> questions we need to answer about how Cabal will work with a GHC that
>> uses dynamic libraries by default. We would like to make these as soon
>> as possible, so that GHC 7.6.2 can ship with a Cabal that works
>> correctly.
>> The various issues are described in a wiki page here:
>>     http://hackage.haskell.org/trac/ghc/wiki/DynamicByDefault
> Thanks for doing all the experiments and putting this page together, it
> certainly helps us to make a more informed decision.
>> If you have a few minutes to read it then we'd be glad to hear your
>> feedback, to help us in making our decisions
> My personal opinion is that we should switch to dynamic-by-default on all x86_64 platforms, and OS X x86. The performance penalty for x86/Linux is too high (30%), and there are fewer bugs affecting the linker on that platform than OS X.
> I am slightly concerned about the GC overhead on x86_64/Linux (8%), but I think the benefits outweigh the penalty there, and I can probably investigate to find out where the overhead is coming from.

I agree with your opinion.

Firstly, correctness is more important than performance. (It's Haskell, after all.) Secondly, the RTS linker is an unnecessary time sink, and developer cycles are precious. Thirdly, when shipping production systems, people can always link statically to get best performance.


More information about the Glasgow-haskell-users mailing list