Changes between Version 2 and Version 3 of Status/Oct09

Nov 3, 2009 1:51:23 PM (6 years ago)



  • Status/Oct09

    v2 v3  
    66for others to get involved.  We are particularly eager to find partners
    77who are willing to take responsibility for a particular platform
    8 (e.g. '''Simon M fill in the most popular Tier 2 plaform'''); see [Platforms].
     8(e.g. Sparc/Solaris, currently maintained by Ben Lippmeier); see [wiki:Platforms].
    1010== The GHC 6.12 release ==
    2323 * As part of this parallel-performance tuning, Satnam Singh and Simon
    24    Marlow have developed ThreadScope, a GUI that lets you see what is
     24   Marlow have developed !ThreadScope, a GUI that lets you see what is
    2525   going on inside your parallel program.  It's a huge step forward
    2626   from "It takes 4 seconds with 1 processor, and 3 seconds with 8
    27    processors; now what?".  ThreadScope will be released separately
     27   processors; now what?".  !ThreadScope will be released separately
    2828   from GHC, but at more or less the same time as GHC 6.12.
    4545   installed package with a unique identifier based on its exposed ABI.
    4646   Now, cases where the user re-installs a package without recompiling
    47    its dependencies will be detected, and the broken dependencies will
     47   packages that depend on it will be detected, and the packages with broken dependencies will
    4848   be disabled.  Previously, this would lead to obscure compilation errors,
    49    or worse, segfaulting programs.  This involved a large amount of
     49   or worse, segfaulting programs.[[BR]]
     50   [[BR]]
     51   This change involved a large amount of
    5052   internal restructuring, but it paves the way for future improvements
    5153   to the way packages are handled.  For instance, in the future we
    7274   removed or replaced with something simpler in 6.14.
    74 For more detail, see the release notes in the  6.12 User manual [UM],
    75 which mention many things skipped over here.
     76For more detail, see the release notes in the  [ 6.12 User manual], which mention many things skipped over here.
    7778Another big change with GHC 6.12 is that Hackage and the Haskell Platform is
    9394Lastly, GHC 6.12 has a totally re-engineered build system, with much-improved
    94 dependency tracking [BuildSystem].  While there have been lots of teething problems, the
    95 old system had become increasingly troublesome, so we had to make a change.
     95dependency tracking [wiki:Building].  While there have been lots of teething problems, things are settling down and the new system is a huge improvement over the old one.  The main improvement is that you can usually just say `make`, and everything will be brought up to date (before it was often necessary to `make clean` first).  Another improvement is that the new system exposes much more parallelism in the build, so GHC builds faster on multicores.
    9797== What's hot for the next year ==
    154154=== Parallelism ===
    156 SIMON MARLOW to write
     156Most of the changes in this area were described in our ICFP'09 paper [ Runtime Support for Multicore Haskell].  The highlights:
     158 * Load-balancing of sparks is now based on lock-free work-stealing queues.
     160 * The overhead for ''running'' a spark is significantly less, so GHC can take advantage of finer-grained parallelism
     162 * The parallel GC is now much more locality-aware.  We now do parallel GC in young-generation collections by default, mainly
     163   to avoid destroying locality by moving data out of the CPU cache on which it is needed.  Young-generation collections
     164   are parallel but not load-balanced.  There are new RTS flags to control parallel GC behaviour.
     166 * Various other minor performance tweaks.
    158168=== Data Parallelism ===
    193203== References ==
    195 [Platforms]  '''A wiki ref'''
    196 [[BR]]
    197 [IHG]  Industrial Haskell Group
    198 []
    199 [[BR]]
    200206[UM]   GHC 6.12 user manual