Dynamic libraries by default and GHC 7.8

Simon Marlow marlowsd at gmail.com
Thu Dec 6 22:39:20 CET 2012

On 06/12/12 21:35, Brandon Allbery wrote:
> On Thu, Dec 6, 2012 at 4:04 PM, Simon Marlow <marlowsd at gmail.com
> <mailto:marlowsd at gmail.com>> wrote:
>     On 05/12/12 15:17, Brandon Allbery wrote:
>         Probably none; on most platforms you're actually generating
>         different
>         code (dynamic libraries require generation of position-independent
>     Sure there's a lot of differences in the generated code, but inside
>     GHC these differences only appear at the very last stage of the
>     pipeline, native code generation (or LLVM).  All the stages up to
>     that can be shared, which accounts for roughly 80% of compilation
>     time (IIRC).
> I was assuming it would be difficult to separate those stages of the
> internal compilation pipeline out, given previous discussions of how
> said pipeline works.  (In particular I was under the impression
> saving/restoring state in the pipeline to rerun the final phase with
> multiple code generators was not really possible, and multithreading
> them concurrently even less so.)

I don't think there's any problem (unless I've forgotten something).  In 
fact, the current architecture should let us compile one function at a 
time both ways, so we don't get a space leak by retaining all the Cmm code.


More information about the Glasgow-haskell-users mailing list