Changes between Version 1 and Version 2 of DynamicGhcPrograms


Ignore:
Timestamp:
Jul 20, 2013 6:08:26 PM (9 months ago)
Author:
igloo
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • DynamicGhcPrograms

    v1 v2  
    1010This is controlled by the `DYNAMIC_GHC_PROGRAMS` build system variable. If it is `YES`, then we build ghci the dynamic way. If it is `NO` then we build it the static way. 
    1111 
     12== Build times, and `-dynamic-too` == 
     13 
     14The default way, as used by `ghc Foo.hs` for example, will remain the vanilla (static) way. But GHCi uses dynamic libraries, so we need to build all the libraries both ways (both in the GHC build, and when the user `cabal-install`s 3rd party libraries). This would double the compilation time needed. 
     15 
     16We have therefore added a `-dynamic-too` flag. This allows a single invocation of GHC to build both the vanilla and dynamic ways. The GHC build system uses this if `DYNAMIC_TOO` is `YES`, and Cabal HEAD uses it if the compiler supports it. 
     17 
    1218== Current status == 
    1319 
    1420=== Unix-like platforms === 
    1521 
    16 TODO 
     22Both `DYNAMIC_GHC_PROGRAMS` and `DYNAMIC_TOO` work on unix-like platforms. They are enabled by default provided the platform supports dynamic libraries (except on FreeBSD, where it is disabled for now, while we wait for a patch to rtld(1) to filter through to the FreeBSD release; #7819). 
    1723 
    1824=== Windows === 
    1925 
    20 TODO 
     26On Windows, `DYNAMIC_GHC_PROGRAMS` works, but `DYNAMIC_TOO` doesn't. Currently, `DYNAMIC_GHC_PROGRAMS` is disabled, although it could be enabled at the expense of longer compilation times. Linking time is also significantly higher for the dynamic way, but we aren't aware of any way to improve that. 
    2127 
    2228=== Other platforms ===