Changes between Version 79 and Version 80 of Status/GHC-7.8


Ignore:
Timestamp:
Jan 14, 2014 2:44:04 AM (3 months ago)
Author:
thoughtpolice
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/GHC-7.8

    v79 v80  
    33== Tickets == 
    44 
    5 We would like to fix all of the [http://ghc.haskell.org/trac/ghc/query?priority=highest&priority=high&status=infoneeded&status=merge&status=new&status=patch&milestone=7.8.1&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=component&order=priority high and highest priority tickets in the 7.8.1 milestone], but there are currently a lot of them so this seems optimistic. Please feel free to take a ticket and help us! 
    6  
    75''Note that anything not listed here is off Austin's radar.'' 
    86 
    9 == Completed new features == 
     7== Pending tickets == 
    108 
    11 The features already completed are documented in the release notes: 
    12 [[GhcFile(docs/users_guide/7.8.1-notes.xml)]] 
     9 * #7602 - OS X 10.8 seemed OK, but OS X 10.9 needs investigation 
    1310 
    14 == Pending things to completion == 
     11== RC Checklist == 
    1512 
    16  * Austin Seipp needs to upload the primops compatibility package for 7.8. This is is easy: mostly a copy of `compiler/utils/ExtsCompat64.hs` into a Cabal package. See also [http://www.haskell.org/haskellwiki/Compatibility_Modules the compatibility module page]. 
     13Things tested: 
    1714 
    18  * Austin also still has a lingering patch for #7602 to fix a large OS X performance regression, but it's still not merged. The basic gist is that the patch as written works for OS X 10.8. But in OS X 10.9 the TLS implementation changed, invalidating it, so some investigation is needed. 
     15 * `validate` runs OK 
     16 * The compiler can bootstrap itself and `validate` from a binary distribution 
    1917 
    20  * `-XTemplateHaskell` should now imply `-dynamic-too`, based on the discussions in #8180. Austin is attempting to fix this by switching it on during module loading but it doesn't quite work yet. 
     18||          ||Linux (i386)||Linux (x86_64)||Mac OS X 10.7 (x86_64)||Mac OS X 10.8 (x86_64)||Mac OS X 10.9 (x86_64)||Windows i386||Windows x86_64|| 
     19||`validate`||In progress![1]||**OK**||**OK**||Probably **OK**||In progress||**OK**![1]||**OK**![1]|| 
     20||bootstrap ||In progress![1]||**OK**||**OK**||Probably **OK**||In progress||**OK**![1]||**OK**![1]|| 
    2121 
    22  * **Pattern synonyms will make it**! Austin will merge them Real Soon Now, after making sure there's documentation, Haddock works, and the T's are crossed and I's dotted. 
     22 * ![1] The testsuite performance numbers need to be updated for 32 bit platforms. 
    2323 
    24  * **New Haddock parser** will hopefully go in, but isn't guaranteed yet. Austin will work with Mateusz to try and get it in ASAP. 
     24== The Dynamic Story == 
     25 
     26The dynamic story is complex. Here's the breakdown: 
     27 
     28||              ||Linux (i386)||Linux (x86_64)||Mac OS X 10.7 (x86_64)||Mac OS X 10.8 (x86_64)||Mac OS X 10.9 (x86_64)||Windows i386||Windows x86_64|| 
     29||Dynamic GHCi  ||**OK**||**OK**||**OK**||Probably **OK**||In progress||**NO**||**NO**|| 
     30||`-dynamic-too`||**OK**||**OK**||**OK**||Probably **OK**||In progress||**NO**||**NO**|| 
     31||`-dynamic`    ||**OK**||**OK**||**OK**||Probably **OK**||In progress||**NO**||**NO**|| 
     32 
     33Where: 
     34 
     35 * **Dynamic GHCi**: `ghci` uses the system linker and loads dynamic libraries, to avoid linker bugs. This is controlled by `DYNAMIC_GHC_PROGRAMS=YES`. 
     36 * **`-dynamic-too`**: strictly an optimization, `-dynamic-too` allows the compiler to build static and dynamic object files at once. This is convenient for Dynamic GHCi support. 
     37 * **`-dynamic`**: allows dynamic linking and dynamic libraries. 
    2538 
    2639== The Windows Conundrum == 
    2740 
     41 * Windows is a bit difficult right now. 
     42   * 64bit builds work using the MSYS2 environment **with some failures** 
     43   * 32bit builds work using the **old** environment 
     44     * Austin confirmed the latest HEAD worked in the old 32bit environment, but not the msys2 one. 
     45   * It seems `-dynamic` is busted, as well as `-dynamic-too` 
     46   * We're punting all three of them for the RC. 
     47     * This leaves GHC in the same place it was before essentially (but 64bit is in a difficult spot, see #7134) 
    2848 
     49(Related but not critical: we have too many DLL symbols, and are very close to the limit (#5987). Linking also takes a long time (#8229)) 
    2950 
    30  * Dynamic GHCi (#3658). This is working in HEAD, and enabled if `DYNAMIC_GHC_PROGRAMS=YES`, which causes GHC itself to be built dynamically. Currently it's enabled by default if dynamic libraries are supported, except for FreeBSD and Windows. 
    31    On Windows, there are a few problems: 
    32     * `-dynamic-too` doesn't work on Windows (#8228) 
    33     * Because of #8228, GHC is a bit nerfed in using lots of RAM - see the discussion in #7134. We should fix `-dynamic-too` to knock out two birds with one stone (fix #7134 and enable using lots of RAM.) 
    34    (Related but not critical: we have too many DLL symbols, and are very close to the limit (#5987). Linking also takes a long time (#8229)) 
    35    The plan is/was to use dynamic GHCi on as many platforms as possible in 7.8, and to remove support for non-dynamic-ghci in HEAD soon after. See discussion in #8039, however. 
     51== Other things == 
    3652 
    37  * Windows is becoming increasingly weird. It seems that with `./validate` settings, a 32bit GHC built using the MSYS2 instructions mysteriously segfaults inside the stage2 compiler. But a 64bit GHC seems to work OK. But then as Austin was writing this it broke mysteriously, seemingly with no intervention. 
    38   
    39  * Also, it seems as if `-dynamic` actually is broken in some weird way on Windows. During my (Austin) investigation into #8228, compiling a simple dynamic executable seems to result in segfaults. The most bizarre part is the `.exe` generated with `-dynamic` seems to depend on both `libHSrts.dll` and `libHSrts_thr.dll`! Without either in a place where the Windows linker can find it, the executable fails to start. Austin believes this is possibly the culprit (symbols may somehow get confused based on loading order,) but he doesn't know why `-dynamic` on windows seems to cause a dependency on both the threaded and non-threaded runtime. 
     53 * Austin Seipp needs to upload the primops compatibility package for 7.8. This is is easy: mostly a copy of `compiler/utils/ExtsCompat64.hs` into a Cabal package. See also [http://www.haskell.org/haskellwiki/Compatibility_Modules the compatibility module page].