
Hi, 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 http://hackage.haskell.org/trac/ghc/wiki/Plugins 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! Max