GSoC/GCI Archive
Google Summer of Code 2012

Web Page:

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


  • Enable GHC to use multiple instances of a package for compilation People are running into dependency hell when installing Haskell packages. I want to help move in the direction of solving it.
  • Haskell-Type-Exts In this project we develop a typechecker for Haskell-Src-Exts [1] to support most of the features available in Haskell 2010. [1]
  • multiuser browser-based interactive ghci, meets, for improved teaching of those new to Haskell. Many new users learn Haskell from the #haskell irc channel. lambdabot's mueval is good for interactive teaching, but only allows short code snippets. hpaste allows large snippets to be shared, but not into an interactive ghci. Chris Done's allows larger snippets to be loaded, but is not explicitly multiuser. If tryhaskell allowed multiple users to view the same interpreter state, and allowed users to paste in new code, teaching and debugging would be much easier for people new to Haskell.
  • Patch Index Optimization for Darcs The goal of this project is to speed up the darcs changes and darcs annotate commands using a cache called “patch index”. The slow speed of these commands is one of the major user grievance in darcs. Patch-Index data structures can quickly identify the patches that modified a given file.
  • Sandboxed builds and isolated environments for Cabal The aim of this project is to integrate support for sandboxed builds into Cabal, a system for building Haskell projects. There are several different third-party implementations of this functionality already available, but it would be beneficial (from the points of ease of use and focusing the community efforts) to have a unified and polished solution integrated into Cabal itself. Additionally, this project is a step in the direction of solving the infamous "dependency hell" problem of Cabal.
  • Scoutess - a build manager for cabal projects Scoutess is a tool for package maintainers and automates a lot of the hassle of dealing with dependencies and multiple versions of libraries. It will create a sandboxed environment simulating a fresh Haskell Platform install, attempt to build your project using Cabal and highlight any problems while also tracking changes or updates to dependencies located in remote repositories so these can be tested against as well.