Changes between Version 1 and Version 2 of Status/October06


Ignore:
Timestamp:
Oct 18, 2006 7:35:42 AM (8 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/October06

    v1 v2  
    1111Other highlights of the last six months are these: 
    1212 
    13  * With wonderful support from Galois, we ran a GHC Hackathon immediately before ICFP in Portland.  Forty-plus people showed up to have GHC's innards inflicted on them, and appeared unharmed by the experience. 
     13 * With wonderful support from Galois, we ran a '''GHC Hackathon''' immediately before ICFP in Portland.  Forty-plus people showed up to have GHC's innards inflicted on them, and appeared unharmed by the experience. 
    1414 
    1515  A significant outcome is that we have written a great deal of Wiki material about GHC's implementation (the "commentary"), and about how to build and modify GHC (the "building guide").  Documents with these titles were available before, but had become rather out of date.  These new, up-to-date documents live on the GHC developer's Wiki.  We urge you to read and improve them:   [http://hackage.haskell.org/trac/ghc/wiki] (near the bottom). 
    1616   
    17   * We (finally) released GHC 6.6 in October 2006. There was an extended period of release-candidate testing, so we fondly hope that this will be a relatively stable release. 
     17  * We (finally) released '''GHC 6.6''' in October 2006. There was an extended period of release-candidate testing, so we fondly hope that this will be a relatively stable release. 
    1818 
    19   * We completely replaced GHC's intermediate language with System FC(X), an extension of System F with explicit equality witnesses.  This enables GHC to support GADTs and associated types, with two new simple but powerful mechanisms. The paper is at [http://research.microsoft.com/%7Esimonpj/papers/ext-f/]. Much of the conversion work was done by Kevin Donnelly, while he was on an internship at Microsoft. 
     19  * We completely replaced GHC's intermediate language with '''System FC(X)''', an extension of System F with explicit equality witnesses.  This enables GHC to support GADTs and associated types, with two new simple but powerful mechanisms. The paper is at [http://research.microsoft.com/%7Esimonpj/papers/ext-f/]. Much of the conversion work was done by Kevin Donnelly, while he was on an internship at Microsoft. 
    2020 
    21  * Manuel Chakravarty has implemented type-indexed data types, a modest generalisation of the ''associated data types'' of our POPL'05 paper  [http://research.microsoft.com/%7Esimonpj/papers/assoc%2Dtypes/]. The implementation is in the HEAD and is pretty complete; still to come is the user documentation, and some bits around the edges on `deriving`. 
     21 * Manuel Chakravarty has implemented '''type-indexed data types''', a modest generalisation of the ''associated data types'' of our POPL'05 paper  [http://research.microsoft.com/%7Esimonpj/papers/assoc%2Dtypes/]. The implementation is in the HEAD and is pretty complete; still to come is the user documentation, and some bits around the edges on `deriving`. 
    2222 
    23  * Roman Leshchinskiy has been hard at work developing libraries that support data-parallel computation in GHC.  It's not quite ready for public consumption, but you can peek at what is going on by looking at the Haskell Wiki: [http://haskell.org/haskellwiki/GHC/Data_Parallel_Haskell]  Background material here: [http://www.cse.unsw.edu.au/~chak/papers/CKLP01.html] 
     23 * Roman Leshchinskiy has been hard at work developing libraries that support '''data-parallel computation''' in GHC.  It's not quite ready for public consumption, but you can peek at what is going on by looking at the Haskell Wiki: [http://haskell.org/haskellwiki/GHC/Data_Parallel_Haskell]  Background material here: [http://www.cse.unsw.edu.au/~chak/papers/CKLP01.html] 
    2424 
    25  * At the moment GHC's garbage collector is single-threaded, even when GHC is running on a multiprocessor.  Roshan James spent the summer at Microsoft on an internship, implementing a multi-threaded GC.  We need to do a bit more work, but with a bit of luck we'll push a parallel garbage collector into the HEAD before Christmas. 
     25 * At the moment GHC's '''garbage collector''' is single-threaded, even when GHC is running on a multiprocessor.  Roshan James spent the summer at Microsoft on an internship, implementing a multi-threaded GC.  We need to do a bit more work, but with a bit of luck we'll push a parallel garbage collector into the HEAD before Christmas. 
    2626 
    27  * We finally bit the bullet and lifted the restriction that every module in a Haskell program must have a distinct name.  Why?  Because it's non-modular: two packages from different authors could accidentally collide.  This change is in GHC 6.6; there are some remaining open choices dicussed here [http://hackage.haskell.org/trac/ghc/wiki/GhcPackages]. 
     27 * We finally bit the bullet and '''lifted the restriction that every module in a Haskell program must have a distinct name'''.  Why?  Because it's non-modular: two packages from different authors could accidentally collide.  This change is in GHC 6.6; there are some remaining open choices dicussed here [http://hackage.haskell.org/trac/ghc/wiki/GhcPackages]. 
    2828 
    29  * Tim Harris added support for ''invariants'' to GHC's Software Transactional Memory (STM) implementation. Paper here: [http://research.microsoft.com/%7Esimonpj/papers/stm/]. 
     29 * Tim Harris added support for '''invariants''' to GHC's Software Transactional Memory (STM) implementation. Paper here: [http://research.microsoft.com/%7Esimonpj/papers/stm/]. 
    3030 
    31  * Bjorn Bringert (a GHC Hackathon graduate) implemented ''standalone deriving'', which allows you to write a `deriving` declaration anywhere, rather than only where the data type is declared.  Details of the syntax have not yet quite settled.  See also [http://www.haskell.org/pipermail/haskell-prime/2006-October/001725.html]. 
     31 * Bjorn Bringert (a GHC Hackathon graduate) implemented '''standalone deriving''', which allows you to write a `deriving` declaration anywhere, rather than only where the data type is declared.  Details of the syntax have not yet quite settled.  See also [http://www.haskell.org/pipermail/haskell-prime/2006-October/001725.html]. 
    3232 
    3333Forthcoming excitements: 
    3434 
    35  *  Simon PJ is determined to finally implement ''implication constraints'', which are the key to fixing the interaction between GADTs and type classes.   GHC's users have been very polite about this collection of bugs, but they should really be fixed.  Implication constraints are described by Martin Sulzmann: [http://www.comp.nus.edu.sg/~sulzmann/publications/tr-eadt.ps.gz]. 
     35 *  Simon PJ is determined to finally implement '''implication constraints''', which are the key to fixing the interaction between GADTs and type classes.   GHC's users have been very polite about this collection of bugs, but they should really be fixed.  Implication constraints are described by Martin Sulzmann: [http://www.comp.nus.edu.sg/~sulzmann/publications/tr-eadt.ps.gz]. 
    3636 
    37  * We hope to release a first iteration of our data-parallel extensions before Christmas. 
     37 * We hope to release a first iteration of our '''data-parallel extensions''' before Christmas. 
    3838 
    39  * Once ''indexed data types'' are done, Manuel will be tackling ''indexed type synonyms'' (aka type functions), which are considerably tricker, at least so far as type inference is concerned. 
     39 * Once ''indexed data types'' are done, Manuel will be tackling '''indexed type synonyms''' (aka type functions), which are considerably tricker, at least so far as type inference is concerned.