Summer of Code/Project suggestions
Haskell projects for Google's Summer of Code.
This page is for mentors to add their ideas and to say which projects they'd be happy to supervise. It is also for students to see what kinds of projects are available. Students should not claim projects here however, but use the normal Google SoC application process. Mentors feel free to write your name under orphaned projects.
- 1 Cabal-get/HackageDB
- 2 GhcPlugins
- 3 Fix HsSDL (Haskell libSDL bindings) on Windows and MacOS
- 4 Implement various debugging tools in GHC
- 5 Handle recursive modules in GHC
- 6 Gtk / Graphics / GNOME related projects
- 7 Incremental GC for GHC
- 8 hs-plugins based web server
- 9 Continuation based DSL on top of HAppS
- 10 Parsers for various programming languages
- 11 Yi projects
- 12 Students' ideas / Game
- 13 Bioinformatics tools
- 14 Concurrent disk-based data structures
- 15 Haskellnet
Cabal-get is an automatic installer for Cabal libraries. The goal is to distribute the program with Cabal, but to achieve this we need to cut almost all of its dependencies. This project should be fairly easy (the code base of cabal-get is only 1K loc).
Write a new plugin system using the new ghc-api. Enough of the groundwork has been laid out now that someone with a few months and some background could finish up the work.
GhcPlugins will replace the plugin system currently used in hIDE.
Fix HsSDL (Haskell libSDL bindings) on Windows and MacOS
Implement various debugging tools in GHC
- Dynamic breakpoints.
- Generic object viewer.
- Simple CCS for providing stack traces on exceptions and breakpoints.
Handle recursive modules in GHC
I'd be happy to accept projects in this area. Last year I was unoficial mentor to Paolo who did the cairo bindings. Possible ideas include a dbus binding. (Feel free to add more ideas here or I might do as I think of them.)
Mentor: Duncan Coutts
Incremental GC for GHC
Implementing the incremental garbage collection algorithm described in the paper Non-stop Haskell in GHC.
hs-plugins based web server
Build an industrial-strength CGI/FastCGI/etc daemon to be used for enterprise-type web applications.
HSP does have the hs-plugins part. So do new versions of WASH. In HAppS the enterprise part is keeping us away from hs-plugins, if it were for research only there would be hs-plugins support (4-8 hours of work).
Continuation based DSL on top of HAppS
Do you have a vision how to do better than WASH? Integrate continuation based interaction with client or use something like Functional Forms for the interaction. How to best to interact with XML etc. Other HAppS related projects also possible.
Mentor: Einar Karttunen (musasabi)
Parsers for various programming languages
Populate the Language hierarchy of modules with new parsers for many languages, at the moment it does only contain Language.Haskell.
Mentor: Shae Matijs Erisson (shapr)
Mentor: Shae Matijs Erisson (shapr)
Students' ideas / Game
I'm ready to take on anyone willing to write a useful application or game (preferably a program) given that it is of reasonable size (upper limitaton).
Mentor: Johan Henriksson (Mahogny)
1. Further develop RBR, a tool for masking repeats. This can include a) optimize (using FastPackedString and/or a new internal data structure); b) extend functionality.
2. Develop a tool for annotation/classification of sequences. This would involve computation on and visualization of graphs (experience with the latter would be really great).
Prior bioinformatics knowledge is not a requirement. Please contact me for details.
Mentor: Ketil (email@example.com)
Concurrent disk-based data structures
Implement B+tree or a variant supporting concurrent updates using STM, serialize updates into a write ahead log and provide for serialization. Bind the whole thing with a nice HaskellDB like API. Variations on the theme possible.
Mentor: Einar Karttunen
We have got cgi, ftp, http, and irc. Get them into shape in the hierarchical libraries as well as adding a number of other protocols, like nntp, smtp and pop3, imap4, ... much like the Ocamlnet project.