
Hi Max,
This sounds fantastic!
My only question would be how this relates to the external Core work
that Tim has been doing. If we have this, can external core become a
plugin? If we have this, do we no longer need external Core? It seems
to say that we don't want external Core as the interface, as it won't
be stable in any way - does that mean we don't want external Core at
all?
Thanks
Neil
We certainly need a mechanism for doing
On 3/21/08, Max Bolingbroke
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 _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe