Changes between Version 11 and Version 12 of Status/May09


Ignore:
Timestamp:
Apr 27, 2009 3:54:53 PM (5 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/May09

    v11 v12  
    4545The main list of new features in GHC 6.12 remains much the same as it was in our last status report.  Happily, there has been progress on all fronts. 
    4646 
    47  * John Dias has continued work on '''rewriting GHC's backend'''.  You can find an [wiki:Commentary/Compiler/NewCodeGenPipeline overview of the new architecture] on the wiki.  He and Norman and Simon wrote [http://research.microsoft.com/~simonpj/papers/c-- Dataflow optimisation made simple], a paper about the dataflow optimisation framework] that the new back end embodies.  Needless to say, the act of writing the paper has made us re-design the framework, so at the time of writing it still isn't on GHC's main compilation path.  But it will be. 
     47 * The whole area of '''GADTs, indexed type families, and associated types''' remains in a ferment of development.  It's clear that type families jolly useful: many people are using them even though they are only partially supported by GHC 6.10.  But they have made the type inference engine pretty complicated and, Simon PJ, Manuel Chakravarty, Tom Schrijvers, Dimitrios Vytiniotis, and Martin Sulzmann have been busy thinking about ways to make type inference simpler and more uniform. Our ICFP'08 paper [http://research.microsoft.com/~simonpj/papers/assoc-types Type checking with open type functions] was a first stab (which we subsequently managed to simplify quite a bit).  Our new paper (submitted to ICFP'09) [http://research.microsoft.com/~simonpj/papers/gadt Complete and decidable type inference for GADTs] tackles a different part of the problem.  And we are not done yet; for example, our new inference framework is designed to smoothly accommodate Dimitrios's work on [http://research.microsoft.com/~simonpj/papers/boxy/ FPH: First class polymorphism for Haskell (ICFP'08)].    
    4848 
    49  * '''Data Parallel Haskell''' remains under very active development. The [wiki:DataParallel current state of play], including some benchmark figures is on the wiki.  We also wrote a substantial paper [http://research.microsoft.com/~simonpj/papers/ndp "Harnessing the multicores: nested data parallelism in Haskell"] for FSTTCS; you may find this paper a useful tutorial on the whole idea of nested data parallelism. 
     49 * '''Data Parallel Haskell''' remains under very active development. The [wiki:DataParallel current state of play], including some benchmark figures is on the wiki.  We also wrote a substantial paper [http://research.microsoft.com/~simonpj/papers/ndp Harnessing the multicores: nested data parallelism in Haskell] for FSTTCS; you may find this paper a useful tutorial on the whole idea of nested data parallelism. 
    5050 
    5151 * Max Bolingbroke has revised and simplified his '''Dynamically Loaded Plugins''' summer of code project, and we (continue to) plan to merge it into 6.12.  Part of this is already merged: a new, modular system for [wiki:Annotations user-defined '''annotations'''], rather like Java or C# attributes.  These attributes are persisted into interface files, can be examined and created by plugins, or by GHC API clients. 
    5252 
    53  * '''(Simon M)''' mention Satname, new profiler.  Likewise, Donnie Jones's project for '''profiling parallel programs''' should be merged in time for 6.12 
     53 * '''(Simon M)''' mention Satnam, new profiler.  Likewise, Donnie Jones's project for '''profiling parallel programs''' should be merged in time for 6.12 
     54 
     55 * John Dias has continued work on '''rewriting GHC's backend'''.  You can find an [wiki:Commentary/Compiler/NewCodeGenPipeline overview of the new architecture] on the wiki.  He and Norman and Simon wrote [http://research.microsoft.com/~simonpj/papers/c-- Dataflow optimisation made simple], a paper about the dataflow optimisation framework] that the new back end embodies.  Needless to say, the act of writing the paper has made us re-design the framework, so at the time of writing it still isn't on GHC's main compilation path.  But it will be. 
    5456 
    5557 * '''(Simon M)''' (include pointer to paper).  Simon Marlow is working on '''improving parallel performance''', incorporating the work done by Jost Berthold during his internship at Microsoft in the summer of 2008.  The plan is to make writing performant parallel programs less of a trial-and-error process, by whacking as many bottlenecks as we can find in the runtime system.   We're already making significant improvements, and there's plenty more low-hanging fruit to pick.  One large project that we hope to tackle is the issue of doing independent per-CPU garbage collection.