... | @@ -42,7 +42,7 @@ GHC is still busy as ever. The GHC 7.0 branch has come and gone, and now that th |
... | @@ -42,7 +42,7 @@ GHC is still busy as ever. The GHC 7.0 branch has come and gone, and now that th |
|
|
|
|
|
- **Pedro Magalhães** has nearly completed his implementation of the
|
|
- **Pedro Magalhães** has nearly completed his implementation of the
|
|
**derivable type classes** mechanism described in his 2010
|
|
**derivable type classes** mechanism described in his 2010
|
|
Haskell Symposium paper [ http://www.dreixel.net/research/pdf/gdmh_nocolor.pdf Derivable](http://www.dreixel.net/research/pdf/gdmh_nocolor.pdf Derivable). It will be in GHC 7.2.
|
|
Haskell Symposium paper [ http://www.dreixel.net/research/pdf/gdmh_nocolor.pdf Derivable](http://www.dreixel.net/research/pdf/gdmh_nocolor.pdf Derivable) and elsewhere in the HCAR **link**. It will be in GHC 7.2.
|
|
|
|
|
|
- **Edward Yang** has spearheaded a flurry of work on the new
|
|
- **Edward Yang** has spearheaded a flurry of work on the new
|
|
code generation backend (`-fuse-new-codegen`, the rewrite of
|
|
code generation backend (`-fuse-new-codegen`, the rewrite of
|
... | @@ -59,7 +59,7 @@ GHC is still busy as ever. The GHC 7.0 branch has come and gone, and now that th |
... | @@ -59,7 +59,7 @@ GHC is still busy as ever. The GHC 7.0 branch has come and gone, and now that th |
|
|
|
|
|
- **Simon Marlow** Has been busy implementing and benchmarking a new garbage collector. GHC's current garbage collector is of the parallel "stop-the-world" variety, where to collect the heap all cores stop running the program and collect the heap in parallel. The new collector is a "local heap" collector, in which each core has a private heap that can be collected independently of the other cores, meanwhile there is a shared global heap that is collected (much less frequently) by the usual parallel stop-the-world algorithm. We have a paper describing the new design which has been accepted at ISMM'11 (and will be online shortly). The results are mixed; while on average performance improves with the new collector for parallel programs, the improvements are not dramatic (at least up to 24 cores). The new collector is significantly more complex than GHC's current collector. Hence we do not plan to merge it into the mainline yet, but will maintain it on a git branch for the time being, while we continue to experiment with and tune it. Some improvements from the branch that were independent of the new GC algorithm have already been merged into the mainline, so 7.2.1 will see some small improvements in GC performance and stats reporting.
|
|
- **Simon Marlow** Has been busy implementing and benchmarking a new garbage collector. GHC's current garbage collector is of the parallel "stop-the-world" variety, where to collect the heap all cores stop running the program and collect the heap in parallel. The new collector is a "local heap" collector, in which each core has a private heap that can be collected independently of the other cores, meanwhile there is a shared global heap that is collected (much less frequently) by the usual parallel stop-the-world algorithm. We have a paper describing the new design which has been accepted at ISMM'11 (and will be online shortly). The results are mixed; while on average performance improves with the new collector for parallel programs, the improvements are not dramatic (at least up to 24 cores). The new collector is significantly more complex than GHC's current collector. Hence we do not plan to merge it into the mainline yet, but will maintain it on a git branch for the time being, while we continue to experiment with and tune it. Some improvements from the branch that were independent of the new GC algorithm have already been merged into the mainline, so 7.2.1 will see some small improvements in GC performance and stats reporting.
|
|
|
|
|
|
- **Simon Marlow** has implemented a chunked stack representation, which should improve the performance of programs that need large stacks. See the [ http://hackage.haskell.org/trac/ghc/blog/stack-chunks blog post](http://hackage.haskell.org/trac/ghc/blog/stack-chunks blog post). This is already in the mainline and will be in the 7.2.1 release.
|
|
- **Simon Marlow** has implemented a chunked stack representation, which should improve the performance of programs that need large stacks. See the [ http://hackage.haskell.org/trac/ghc/blog/stack-chunks ChunkedStack](http://hackage.haskell.org/trac/ghc/blog/stack-chunks ChunkedStack). This is already in the mainline and will be in the 7.2.1 release.
|
|
|
|
|
|
|
|
|
|
We are fortunate to have a growing team of people willing to roll up their
|
|
We are fortunate to have a growing team of people willing to roll up their
|
... | @@ -94,7 +94,7 @@ Here's a selection that we know about. |
... | @@ -94,7 +94,7 @@ Here's a selection that we know about. |
|
|
|
|
|
- **Jeff Epstein**, in collaboration with Andrew Black, has implemented a library that brings Erlang's programming model to Haskell programmers. In particular, you can write a Haskell program that runs on a cluster of machines that do not share memory. It is all based on a modest but powerful language extension that makes it possible for a programmer to work with "static" functions; that is, ones consisting of pure code with no free variables. The paper that describes all this is called "Haskell for the cloud" [ http://research.microsoft.com/\~simonpj/papers/parallel/ Cloud](http://research.microsoft.com/~simonpj/papers/parallel/ Cloud).
|
|
- **Jeff Epstein**, in collaboration with Andrew Black, has implemented a library that brings Erlang's programming model to Haskell programmers. In particular, you can write a Haskell program that runs on a cluster of machines that do not share memory. It is all based on a modest but powerful language extension that makes it possible for a programmer to work with "static" functions; that is, ones consisting of pure code with no free variables. The paper that describes all this is called "Haskell for the cloud" [ http://research.microsoft.com/\~simonpj/papers/parallel/ Cloud](http://research.microsoft.com/~simonpj/papers/parallel/ Cloud).
|
|
|
|
|
|
- **Max Bolingbroke** continues his !PhD work on supercompilation, with a nice new paper [ http://research.microsoft.com/\~simonpj/papers/supercompilation/ ImprovingSupercompilation](http://research.microsoft.com/~simonpj/papers/supercompilation/ ImprovingSupercompilation). The plan is to make his supercompiler part of GHC, over the next year or so.
|
|
- **Max Bolingbroke** continues his PhD work on supercompilation, with a nice new paper [ http://research.microsoft.com/\~simonpj/papers/supercompilation/ ImprovingSupercompilation](http://research.microsoft.com/~simonpj/papers/supercompilation/ ImprovingSupercompilation). The plan is to make his supercompiler part of GHC, over the next year or so.
|
|
|
|
|
|
- **David Terei** at Stanford is busy implementing **[ Safe Haskell](http://hackage.haskell.org/trac/ghc/wiki/SafeHaskell)**, a flag for GHC that will guarantee that your program has certain properties such as referential transparency and constructor access control, while still having the same semantics as it normally would. The flag basically allows you to trust the types of your program, giving you if you will a more 'pure' version of Haskell where 'unsafePerformIO' is outlawed, abstract data types are actually abstract and safety is provided by the compiler not the user. This is being done as part of a larger project by the [ Stanford Secure Computing Systems](http://www.scs.stanford.edu/) group involving the use of dynamic information flow based security in Haskell to build a secure web framework that allows the inclusion of third party untrusted code.
|
|
- **David Terei** at Stanford is busy implementing **[ Safe Haskell](http://hackage.haskell.org/trac/ghc/wiki/SafeHaskell)**, a flag for GHC that will guarantee that your program has certain properties such as referential transparency and constructor access control, while still having the same semantics as it normally would. The flag basically allows you to trust the types of your program, giving you if you will a more 'pure' version of Haskell where 'unsafePerformIO' is outlawed, abstract data types are actually abstract and safety is provided by the compiler not the user. This is being done as part of a larger project by the [ Stanford Secure Computing Systems](http://www.scs.stanford.edu/) group involving the use of dynamic information flow based security in Haskell to build a secure web framework that allows the inclusion of third party untrusted code.
|
|
|
|
|
... | @@ -126,32 +126,32 @@ We have pushed back the release of a stable version of the main DPH libraries ag |
... | @@ -126,32 +126,32 @@ We have pushed back the release of a stable version of the main DPH libraries ag |
|
|
|
|
|
## Bibliography
|
|
## Bibliography
|
|
|
|
|
|
- \[Cloud\] "Haskell for the cloud", Epstein, Black, Peyton Jones, submitted to ICFP 2011, [ http://research.microsoft.com/\~simonpj/papers/parallel/](http://research.microsoft.com/~simonpj/papers/parallel/)
|
|
- \[ChunkedStack\] *An overhaul of stack management, and some performance improvements*, Simon Marlow, blog post, Dec2010, [ http://hackage.haskell.org/trac/ghc/blog/stack-chunks](http://hackage.haskell.org/trac/ghc/blog/stack-chunks)
|
|
|
|
|
|
- \[Derivable\] "A generic deriving mechanism for Haskell", Magalhães, Dijkstra, Jeuring and Löh, Haskell Symposium 2010, [ http://www.dreixel.net/research/pdf/gdmh_nocolor.pdf](http://www.dreixel.net/research/pdf/gdmh_nocolor.pdf).
|
|
- \[Cloud\] *Haskell for the cloud*, Epstein, Black, Peyton Jones, submitted to ICFP 2011, [ http://research.microsoft.com/\~simonpj/papers/parallel/](http://research.microsoft.com/~simonpj/papers/parallel/)
|
|
|
|
|
|
- \[DetPar\] "A monad for deterministic parallelism", Marlow, Newton, and Peyton Jones, submitted to ICFP 2011, [ http://research.microsoft.com/\~simonpj/papers/parallel/](http://research.microsoft.com/~simonpj/papers/parallel/)
|
|
- \[Derivable\] *A generic deriving mechanism for Haskell*, Magalhães, Dijkstra, Jeuring and Löh, Haskell Symposium 2010, [ http://www.dreixel.net/research/pdf/gdmh_nocolor.pdf](http://www.dreixel.net/research/pdf/gdmh_nocolor.pdf).
|
|
|
|
|
|
- \[FC\] "System F with type equality coercions", Sulzmann, Chakravarty, Peyton Jones, TLDI 2007, [ http://research.microsoft.com/\~simonpj/papers/ext-f/](http://research.microsoft.com/~simonpj/papers/ext-f/)
|
|
- \[DetPar\] *A monad for deterministic parallelism*, Marlow, Newton, and Peyton Jones, submitted to ICFP 2011, [ http://research.microsoft.com/\~simonpj/papers/parallel/](http://research.microsoft.com/~simonpj/papers/parallel/)
|
|
|
|
|
|
- \[Hoopl\] "A modular, reusable library for dataflow analysis and transformation", Dias, Ramsey, and Peyton Jones, Haskell Symposium 2010, [ http://research.microsoft.com/\~simonpj/papers/c--/](http://research.microsoft.com/~simonpj/papers/c--/)
|
|
- \[EdgeDetect\] *Edge-detection video*, [ http://code.ouroborus.net/beholder/video/Edge480.mov](http://code.ouroborus.net/beholder/video/Edge480.mov)
|
|
|
|
|
|
- \[ImprovingSupercompilation\] "Improving supercompilation: tag-bags, rollback, speculation, normalisation, and generalisation", Bolingbroke and Peyton Jones, submitted to ICFP 2011, [ http://research.microsoft.com/\~simonpj/papers/supercompilation/](http://research.microsoft.com/~simonpj/papers/supercompilation/)
|
|
- \[FC\] *System F with type equality coercions*, Sulzmann, Chakravarty, Peyton Jones, TLDI 2007, [ http://research.microsoft.com/\~simonpj/papers/ext-f/](http://research.microsoft.com/~simonpj/papers/ext-f/)
|
|
|
|
|
|
- \[Liquid\] Liquid types, Ranjit Jhala, [ http://goto.ucsd.edu/\~rjhala/liquid](http://goto.ucsd.edu/~rjhala/liquid) Liquid
|
|
- \[Hoopl\] *A modular, reusable library for dataflow analysis and transformation*, Dias, Ramsey, and Peyton Jones, Haskell Symposium 2010, [ http://research.microsoft.com/\~simonpj/papers/c--/](http://research.microsoft.com/~simonpj/papers/c--/)
|
|
|
|
|
|
- \[NewFC\] "Practical aspects of evidence-based compilation in System FC", Vytiniotis and Peyton Jones, submitted to ICFP 2011, [ http://research.microsoft.com/\~simonpj/papers/ext-f/](http://research.microsoft.com/~simonpj/papers/ext-f/)
|
|
- \[ImprovingSupercompilation\] *Improving supercompilation: tag-bags, rollback, speculation, normalisation, and generalisation*, Bolingbroke and Peyton Jones, submitted to ICFP 2011, [ http://research.microsoft.com/\~simonpj/papers/supercompilation/](http://research.microsoft.com/~simonpj/papers/supercompilation/)
|
|
|
|
|
|
- \[OutsideIn\] "Modular type inference iwth local assumptions", Vytiniotis, Peyton Jones, Schrijvers, and Sulzmann, Journal of Functional Programming (to appear), [ http://research.microsoft.com/\~simonpj/papers/constraints/](http://research.microsoft.com/~simonpj/papers/constraints/)
|
|
- \[Liquid\] *Liquid types*, Ranjit Jhala, [ http://goto.ucsd.edu/\~rjhala/liquid](http://goto.ucsd.edu/~rjhala/liquid) Liquid
|
|
|
|
|
|
- \[ParallelGhcProject\] "The Parallel GHC Project home page", [ http://www.haskell.org/haskellwiki/Parallel_GHC_Project](http://www.haskell.org/haskellwiki/Parallel_GHC_Project)
|
|
- \[NewFC\] *Practical aspects of evidence-based compilation in System FC*, Vytiniotis and Peyton Jones, submitted to ICFP 2011, [ http://research.microsoft.com/\~simonpj/papers/ext-f/](http://research.microsoft.com/~simonpj/papers/ext-f/)
|
|
|
|
|
|
- \[Repa\] "Regular, shape-polymorphic parallel arrays in Haskell", Keller, Chakravarty, Leshchinskiy, Peyton Jones, and Lippmeier, ICFP 2010. Paper: [ http://research.microsoft.com/\~simonpj/papers/ndp/](http://research.microsoft.com/~simonpj/papers/ndp/), Hackage package: [ http://hackage.haskell.org/package/repa](http://hackage.haskell.org/package/repa)
|
|
- \[OutsideIn\] *Modular type inference iwth local assumptions*, Vytiniotis, Peyton Jones, Schrijvers, and Sulzmann, Journal of Functional Programming (to appear), [ http://research.microsoft.com/\~simonpj/papers/constraints/](http://research.microsoft.com/~simonpj/papers/constraints/)
|
|
|
|
|
|
- \[SHE\] The Strathclyde Haskell Enhancement, Conor McBride, 2010, [ http://personal.cis.strath.ac.uk/\~conor/pub/she/](http://personal.cis.strath.ac.uk/~conor/pub/she/)
|
|
- \[ParallelGhcProject\] *The Parallel GHC Project home page*, [ http://www.haskell.org/haskellwiki/Parallel_GHC_Project](http://www.haskell.org/haskellwiki/Parallel_GHC_Project)
|
|
|
|
|
|
- \[Stencil\] Efficient Parallel Stencil Convolution in Haskell, Lippmeier et al., [ http://www.cse.unsw.edu.au/\~benl/papers/stencil/stencil-icfp2011-sub.pdf](http://www.cse.unsw.edu.au/~benl/papers/stencil/stencil-icfp2011-sub.pdf)
|
|
- \[Repa\] *Regular, shape-polymorphic parallel arrays in Haskell*, Keller, Chakravarty, Leshchinskiy, Peyton Jones, and Lippmeier, ICFP 2010. Paper: [ http://research.microsoft.com/\~simonpj/papers/ndp/](http://research.microsoft.com/~simonpj/papers/ndp/), Hackage package: [ http://hackage.haskell.org/package/repa](http://hackage.haskell.org/package/repa)
|
|
|
|
|
|
- \[EdgeDetect\] [ http://code.ouroborus.net/beholder/video/Edge480.mov](http://code.ouroborus.net/beholder/video/Edge480.mov)
|
|
- \[SHE\] *The Strathclyde Haskell Enhancement*, Conor McBride, 2010, [ http://personal.cis.strath.ac.uk/\~conor/pub/she/](http://personal.cis.strath.ac.uk/~conor/pub/she/)
|
|
|
|
|
|
- \[StackChunks\] [ http://hackage.haskell.org/trac/ghc/blog/stack-chunks](http://hackage.haskell.org/trac/ghc/blog/stack-chunks) |
|
- \[Stencil\] *Efficient Parallel Stencil Convolution in Haskell*, Lippmeier et al., [ http://www.cse.unsw.edu.au/\~benl/papers/stencil/stencil-icfp2011-sub.pdf](http://www.cse.unsw.edu.au/~benl/papers/stencil/stencil-icfp2011-sub.pdf) |
|
\ No newline at end of file |
|
\ No newline at end of file |