[Haskell-cafe] [GSoC] Plugins for GHC

Max Bolingbroke batterseapower at hotmail.com
Fri Mar 21 18:23:37 EDT 2008


I'm interested in working on a plugins system for the Glasgow Haskell
Compiler. The idea here is to allow third parties to add more
capabilities to the compiler in a way that doesn't involve messing
around with modifying GHC itself. Potential use cases are:
* Allow Haskell code to be selectively run on GPUs
* Idiosyncratic application-specific optimization passes
* And whatever clever ideas the community comes up with!

This project has previously been proposed as an Microsoft Research
internship project
(http://hackage.haskell.org/trac/ghc/wiki/Internships).I have a
preliminary wiki page with details at

I'd particularly like to get feedback from the list on:
* Other design goals people would like to see
* Improvements to the proposed (very half-baked!) user interface
* Other hooks people think they might like to have into the compiler
* Interested mentors. Simon PJ has indicated he would be interested in
mentoring this, but there might be other projects that need him more?

This project would satisfy a dependency that Manuel mentioned in
http://groups.google.com/group/fa.haskell/msg/3ca260fb075a901e to
implement an "array DSL" for GPUs in Haskell. It would mean GHC taking
a dependency on hs-plugins
(http://www.cse.unsw.edu.au/~dons/hs-plugins/), as that's our current
strategy to allow GHC to dynamically link with the plugins.

A little about my experience with GHC: this year I worked on
implementing comprehensive comprehensions
(http://research.microsoft.com/~simonpj/papers/list-comp/index.htm) as
my final year undergraduate project, supervised by Simon PJ. I have
subsequently implemented a few other patches, adding some core-level
optimizations / bug fixes (some of which are pending review).

Thanks in advance for your comments!

More information about the Haskell-Cafe mailing list