GSoC/GCI Archive
Google Summer of Code 2011

Web Page:

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


  • Build multiple Cabal packages in parallel Cabal is a system for building and packaging Haskell libraries and programs. This project's aim is to augment Cabal with support for building packages in parallel. Many developers have multi-core machines, but Cabal runs the build process in a single thread, only making use of one core. If the build process could be parallelized, build times could be cut by perhaps a factor of 2-8, depending on the number of cores and opportunity of parallel execution available.
  • Convert the text package to use UTF–8 internally For Haskell projects handling unicode text, the Text library offers both speed and simplicity-of-use. When it was written, benchmarks indicated that UTF-16 would be a good choice for the internal encoding in the library. However, these (rather artificial) benchmarks were did not take into account the time taken to 1) decode the "Real World" data and 2) encode it to write it back. I propose to 1) benchmark and 2) convert the library to UTF-8 if it is a faster choice for "Real World"-applications.
  • Darcs Bridge My proposed project is to create a generic bridge that will enable easy interoperability and synchronisation between Darcs and other VCSs. The bridge will be designed to be generic, but the focus of this project will be Darcs2 <-> Git and Darcs2 <-> Darcs1. The bridge should allow loss-less, correct conversion to and from Darcs repositories, allowing users to use the tool that suits them and their project best, be that Darcs as it currently exists, or another tool.
  • Darcs: primitive patches version 3 Darcs, a revision control system, uses so-called patches to represent changes to individual version-controlled files, where the "primitive" patches are the lowest level of this representation, capturing notions like "hunks" (akin to what diff(1) produces), token replace and file and directory addition/removal. I propose to implement a different representation of these primitive patches, hoping to improve both performance and flexibility of darcs and to facilitate future development.
  • Improve EclipseFP Eclipse is one of the most popular IDEs in our days. EclipseFP is a project developing a plug-in for it that supports Haskell. Now, it has syntax highlighting, integration of GHCi and supports some properties of Cabal files. My idea is to extend the set of tools available, at least with: - Autocompletion and better links to documentation, - A way to run unit tests within Eclipse, - More support for editing Cabal files visually, including a browser of the available packages.
  • Interpreter Support for the Cabal-Install Build Tool This project aims to provide cabal-install with an 'repl <source>' command by adding to the Cabal API. This would allow package developers to use GHCi and Hugs from within packages requiring options and preprocessing from Cabal.