GSoC/GCI Archive
Google Summer of Code 2010

Web Page:

Mailing List: is the community focus for supporting and promoting the open-source programming language Haskell.


  • A high performance HTML generation library for Haskell Being a compiled language with a strong static type system, Haskell stands a good chance of surpassing traditional languages used for web applications (php, Python, Ruby) in terms of speed, correctness, and developer productivity. My proposal is to write a high performance HTML generation library using the Data.Text library, focusing on correctness, efficiency, composability and ease of use.
  • Implementing the Immix Garbage Collection Algorithm on GHC The objective of this project is to implement the Immix garbage collection algorithm onto GHC, the Glasgow Haskell Compiler. I believe that Immix is the current state-of-the-art garbage collector described in the literature, and that GHC would greatly benefit from this more modern algorithm. The immediate benefit would be a boost on the performance of native code produced by GHC, as Immix has been shown to deliver gains of 5-to-27% when compared to more traditional garbage collection algorithms.
  • Improvements to Cabal's test support Currently, package authors must devise ad-hoc solutions to automatically build and run test suites for their software. I propose to improve Cabal's test support by extending the package description file to include information about tests. Cabal will use this information to configure, build and run tests are automatically, making tests more widely used in the Haskell community and improving the quality of software written in Haskell.
  • Improving Darcs Performance The global cache acts as a giant patch pool where Darcs first looks for a patch when grabbing new patches. This saves time by not downloading the same patch twice from a remote server. It also saves space by storing the patch only once, if you ensure your cache and your repositories are on the same hardlink-supporting filesystem. Although, being the global cache on the biggest performance enhancing tools, there are issues which affect it in certain circumstances negatively.
  • Improving Darcs' network performance The goal of this project is to make getting Darcs repositories over network faster. Currently, getting large repositories is unacceptably slow. There are numerous complaints from Darcs users about poor network performance. To address this issue, I will make the following improvements: * introduce feature to optimize a Darcs repository for fetching over a network, * develop a smart server that can provide clients with only files they need in one request.
  • Infrastructure for a more social Hackage 2.0 Hackage has grown to have thousands of uploads and millions of downloads. I plan on making hackage-server, the candidate replacement for the current hackage-scripts, deployable so we can crowd-source the process of picking the best packages for a job. I'll add statistics, reverse dependencies, and build reports, and also develop an infrastructure to support things like voting, tags, package reviews, and other content that can be contributed.