Changes between Version 37 and Version 38 of Status/Oct11


Ignore:
Timestamp:
Nov 2, 2011 9:52:05 AM (4 years ago)
Author:
simonpj
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Status/Oct11

    v37 v38  
    9898Work continues on improving GHC in various directions. Active projects we know about include: 
    9999 
    100 === Cloud Haskell === 
     100 * '''Cloud Haskell'''. The first version of Cloud Haskell has been released, aiming to bring Erlang-style distributed actors to Haskell [[http://hackage.haskell.org/package/remote]]. See also the paper at Haskell Symposium 2011 [[http://research.microsoft.com/en-us/um/people/simonpj/papers/parallel/remote.pdf CloudHaskell]]. Next, we're working on expanding the backend to work with HPC environments. 
    101101 
    102 The first version of Cloud Haskell has been released, aiming to bring Erlang-style distributed actors to Haskell [[http://hackage.haskell.org/package/remote]]. See also the paper at Haskell Symposium 2011 [[http://research.microsoft.com/en-us/um/people/simonpj/papers/parallel/remote.pdf CloudHaskell]]. Next, we're working on expanding the backend to work with HPC environments. 
     102 * '''Parallel GHC project''':  '''Duncan''' 
    103103 
    104 === Liquid types === 
     104 * '''Data Parallel Haskell'''. GHC 7.2 includes rudimentary support for Data Parallel Haskell — just enough for a little experimentation and to run simple benchmarks. We are working on significantly improving this for GHC 7.4. In particular, we aim to support the use of basic types and classes from the standard Prelude (replacing the minimalistic mock Prelude that DPH programs had to use so far), and we are working on drastically improved space and time complexity for shared data structures in nested parallel programs, such as the Barnes-Hut n-body algorithm. 
    105105 
    106 Ranjit Jhala is working on adding liquid types to GHC. Liquid Types are a form of (dependent) refinement types that use predicate abstraction and SMT solvers to carry out type inference. A prototype has been built that works for a subset of the language (without typeclasses) [[http://goto.ucsd.edu/~rjhala/liquid Liquid]].  
    107 Currently, we are working on ways of handling at the basic typeclasses (Ord, Num etc.), and building  
    108 a web-interface. 
     106 Binary distributions of GHC 7.x require the installation of separate Data Parallel Haskell libraries from Hackage — follow the instructions in the wiki documentation [[http://haskell.org/haskellwiki/GHC/Data_Parallel_Haskell DPH]]. 
    109107 
    110 === Parallel project === 
     108 Moreover, we are working at the third revision of the regular parallel array library [[http://hackage.haskell.org/package/repa Repa]]. It uses indexed types to distinguish multiple array representations, which helps to guide users to write high-performance code.  To see it in action, check out Ben Lippmeier's recent demo [[http://youtu.be/v_0Yyl19fiI Quasicrystals]]. 
    111109 
    112 '''Duncan''' 
     110 * '''Contracts'''.  Work on adding contracts to Haskell, along the lines of Dana Xu's these, but using a first order logic theorem prover to check contract satisfaction (with Koen Claessen, Dimitrios Vytiniotis, Charles-Pierre Astolfi, and Nathan Collins). 
    113111 
    114 === Data Parallel Haskell === 
     112 * '''Liquid types'''. Ranjit Jhala is working on adding liquid types to GHC. Liquid Types are a form of (dependent) refinement types that use predicate abstraction and SMT solvers to carry out type inference. A prototype has been built that works for a subset of the language (without typeclasses) [[http://goto.ucsd.edu/~rjhala/liquid Liquid]].  
     113 Currently, we are working on ways of handling at the basic typeclasses (Ord, Num etc.), and building a web-interface. 
    115114 
    116 GHC 7.2 includes rudimentary support for Data Parallel Haskell — just enough for a little experimentation and to run simple benchmarks. We are working on significantly improving this for GHC 7.4. In particular, we aim to support the use of basic types and classes from the standard Prelude (replacing the minimalistic mock Prelude that DPH programs had to use so far), and we are working on drastically improved space and time complexity for shared data structures in nested parallel programs, such as the Barnes-Hut n-body algorithm. 
     115 * '''Vector instructions'''.  Paul Monday and Geoff Mainland are extending the code generator to exploit vector instructions (with Peter Braam, Duncan Coutts) [[http://hackage.haskell.org/trac/ghc/wiki/SimdLlvm VectorInstructions]]. 
    117116 
    118 Binary distributions of GHC 7.x require the installation of separate Data Parallel Haskell libraries from Hackage — follow the instructions in the wiki documentation [[http://haskell.org/haskellwiki/GHC/Data_Parallel_Haskell DPH]]. 
    119  
    120 Moreover, we are working at the third revision of the regular parallel array library [[http://hackage.haskell.org/package/repa Repa]]. It uses indexed types to distinguish multiple array representations, which helps to guide users to write high-performance code.  To see it in action, check out Ben Lippmeier's recent demo [[http://youtu.be/v_0Yyl19fiI Quasicrystals]]. 
    121  
    122 == The glorious future == 
    123  
    124 Also on the go, but not yet fully baked, are: 
    125  * Work on adding contracts to Haskell, along the lines of Dana Xu's these, but using a first order logic theorem prover to check contract satisfaction (with Koen Claessen, Dimitrios Vytiniotis, Charles-Pierre Astolfi, and Nathan Collins). 
    126  
    127  * Extending the code generator to exploit vector instructions (with Peter Braam, Paul Monday, Duncan Coutts) [[http://hackage.haskell.org/trac/ghc/wiki/SimdLlvm VectorInstructions]]. 
    128  
    129  * A modular package language for Haskell (with Derek Dreyer and Scott Kilpatrick) [[http://hackage.haskell.org/trac/ghc/wiki/PackageLanguage Packages]]. 
     117 * '''A modular package language for Haskell''' (with Derek Dreyer and Scott Kilpatrick) [[http://hackage.haskell.org/trac/ghc/wiki/PackageLanguage Packages]]. 
    130118 
    131119== Bibliography ==