[GSoC] Plugins for GHC

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

Hello Max, Saturday, March 22, 2008, 1:23:37 AM, you wrote:
around with modifying GHC itself. Potential use cases are: * And whatever clever ideas the community comes up with!
i'm interested in syntax macros feature like metalua -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

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
participants (3)
-
Bulat Ziganshin
-
Max Bolingbroke
-
Neil Mitchell