Changes between Version 37 and Version 38 of Status/Oct11
 Timestamp:
 Nov 2, 2011 9:52:05 AM (3 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

Status/Oct11
v37 v38 98 98 Work continues on improving GHC in various directions. Active projects we know about include: 99 99 100 === Cloud Haskell === 100 * '''Cloud Haskell'''. The first version of Cloud Haskell has been released, aiming to bring Erlangstyle distributed actors to Haskell [[http://hackage.haskell.org/package/remote]]. See also the paper at Haskell Symposium 2011 [[http://research.microsoft.com/enus/um/people/simonpj/papers/parallel/remote.pdf CloudHaskell]]. Next, we're working on expanding the backend to work with HPC environments. 101 101 102 The first version of Cloud Haskell has been released, aiming to bring Erlangstyle distributed actors to Haskell [[http://hackage.haskell.org/package/remote]]. See also the paper at Haskell Symposium 2011 [[http://research.microsoft.com/enus/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''' 103 103 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 BarnesHut nbody algorithm. 105 105 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 webinterface. 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]]. 109 107 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 highperformance code. To see it in action, check out Ben Lippmeier's recent demo [[http://youtu.be/v_0Yyl19fiI Quasicrystals]]. 111 109 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, CharlesPierre Astolfi, and Nathan Collins). 113 111 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 webinterface. 115 114 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 BarnesHut nbody 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]]. 117 116 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 highperformance 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, CharlesPierre 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]]. 130 118 131 119 == Bibliography ==