|
|
(32 intermediate revisions by 16 users not shown) |
Line 1: |
Line 1: |
| Haskell projects for Google's Summer of Code.
| | Please refer to the new trac-based site at <http://hackage.haskell.org/trac/summer-of-code/>. |
| | |
| This page is for mentors to add their ideas and to say which projects they'd be happy to supervise. Students should not claim projects here however, but using the normal Google Summer of Code application process, see the [http://code.google.com/soc/studentfaq.html student FAQ] for details.
| |
| | |
| == Cabal ==
| |
| | |
| === Cabal-get/HackageDB ===
| |
| Cabal-get is an automatic installer for Cabal libraries.
| |
| The goal is to distribute the program with [http://haskell.org/cabal 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).
| |
| | |
| Mentor: Lemmih (lemmih@gmail.com)
| |
| | |
| == GHC ==
| |
| | |
| === GhcPlugins ===
| |
| 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 [http://haskell.org/hide hIDE].
| |
| | |
| Mentor: Lemmih (lemmih@gmail.com)
| |
| | |
| === Implement various debugging tools in GHC ===
| |
| * Dynamic breakpoints.
| |
| * Generic object viewer.
| |
| * Simple CCS for providing stack traces on exceptions and breakpoints.
| |
| | |
| Mentor: Lemmih (lemmih@gmail.com)
| |
| | |
| === Handle recursive modules in GHC ===
| |
| | |
| === Incremental Garbage Collector for GHC ===
| |
| | |
| Implementing the incremental garbage collection algorithm described in the paper [http://research.microsoft.com/~simonpj/Papers/inc-gc.htm Non-stop Haskell] in GHC.
| |
| | |
| === Parsers for various programming languages ===
| |
| | |
| Populate the [http://haskell.org/ghc/docs/latest/html/libraries/index.html Language] hierarchy of modules with new parsers for many languages, at the moment it does only contain Language.Haskell.
| |
| | |
| Mentor: Shae Matijs Erisson (shapr@scannedinavian.com)
| |
| | |
| === Data.ByteString ===
| |
| | |
| Extend the [http://www.cse.unsw.edu.au/~dons/fps.html Data.ByteString]
| |
| interface to arbitrary (Storable a) arrays. Data.ByteString provides a
| |
| high performance api to arrays of bytes. Generalise this to arbitrary
| |
| vectors of Storable a values, winning fame and glory in the process.
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au)
| |
| | |
| === Unicode layer over Data.ByteString ===
| |
| | |
| Extend the [http://www.cse.unsw.edu.au/~dons/fps.html Data.ByteString]
| |
| interface to support Unicode.
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au)
| |
| | |
| === Improve performance of numerical code ===
| |
| | |
| GHC's performance for double and float intensive code is not as good as
| |
| it could be. Find out why and improve it. Requires GHC backend hacking.
| |
| Must be very Haskell literate or have knowledge of code generators.
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au)
| |
| | |
| === Port the Clean high performance string code ===
| |
| | |
| Clean does very well for low level string benchmarks. Find out what
| |
| they do, and port it to [http://www.cse.unsw.edu.au/~dons/fps.html Data.ByteString]
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au)
| |
| | |
| == Graphics ==
| |
| | |
| === Fix HsSDL (Haskell [http://libsdl.org libSDL] bindings) on Windows and MacOS ===
| |
| | |
| === Gtk / Graphics / GNOME related projects ===
| |
| | |
| I'd be happy to accept projects in this area. Last year I was unoficial mentor to Paolo who did the [http://www.cairographics.org/ cairo] bindings. (Feel free to add more ideas here or I might do as I think of them.)
| |
| | |
| Mentor: Duncan Coutts
| |
| | |
| === D-BUS Binding ===
| |
| | |
| Haskell bindings to the [http://www.freedesktop.org/wiki/Software/dbus D-BUS] message bug system, a simple way for applications to talk to one another.
| |
| | |
| Mentor: Duncan Coutts
| |
| | |
| === Embed ghci/ghci-api in ion ===
| |
| | |
| [http://modeemi.cs.tut.fi/~tuomov/ion/ ion] is a cool window manager
| |
| written by Tuomo Valkonen, a Haskell hacker. It is currently extensible
| |
| in Ion, but a very interesting project would be to work out how to
| |
| dynamically extend it in Haskell, perhaps using ideas from
| |
| [http://www.cse.unsw.edu.au/~dons/yi.html Yi].
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au)
| |
| | |
| == Web development ==
| |
| | |
| === 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)
| |
| | |
| == Editing ==
| |
| | |
| === Port ghc-api's eval mechanism to Yi ===
| |
| | |
| Yi is an editor written and extensible in Haskell. Construct a binding
| |
| to ghc-api such that new expressions may be evaluated at runtime in the
| |
| editor, accessing the editors internal structures in a type safe way,
| |
| dynamically. elisp for Haskell!
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au) and Lemmih (lemmih@gmail.com).
| |
| | |
| === Yi projects ===
| |
| | |
| Syntax Highlighting, Plugins. It's quite a peculiar kind of application. Its design is based on [http://www.cse.unsw.edu.au/~dons/papers/PSSC04.html type-safe dynamically loadable modules] and it is [http://www.cse.unsw.edu.au/~dons/papers/PSSC04.html more dynamic than Emacs]!
| |
| | |
| Mentor: Shae Matijs Erisson (shapr@scannedinavian.com)
| |
| | |
| === Generic Hide Hacking ===
| |
| * Rewrite plugins for the new plugin-system.
| |
| * Integration with [[Lambdabot]], access to plugins through Hide.
| |
| * Other?
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au), Lemmih (lemmih@gmail.com)
| |
| | |
| == Games ==
| |
| | |
| === Frag hacking ===
| |
| | |
| [[Frag]] is a 3d first person shootup game written in Haskell,
| |
| using OpenGL. It can be greatly extended in all sorts of ways. If
| |
| you're in to gaming, have a look at this.
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au)
| |
| | |
| === Students' ideas / Games ===
| |
| | |
| 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)
| |
| | |
| == Bioinformatics ==
| |
| | |
| === Bioinformatics tools ===
| |
| | |
| 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 ([mailto:ketil@ii.uib.no ketil@ii.uib.no])
| |
| | |
| == Concurrency / Network ==
| |
| | |
| === 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
| |
| | |
| === Haskellnet ===
| |
| | |
| 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 [http://ocamlnet.sourceforge.net/doc/goals/goals.html Ocamlnet project].
| |
| | |
| Mentor: Shae Matijs Erisson (shapr@scannedinavian.com)
| |
| | |
| == UNIX ==
| |
| | |
| === A Haskell shell ===
| |
| | |
| Concise syntax and higher order functions would make a Haskell shell
| |
| very useful. This project would aim to produce a real world shell
| |
| written in Haskell, and using an embedded domain specific language to
| |
| encode common operations.
| |
| | |
| Mentor: Don Stewart (dons@cse.unsw.edu.au)
| |