id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,testcase,blockedby,blocking,related,differential
1467,GHC API: expose separate compilation stages,simonmar,nominolo,"The GHC API is currently hard to use for certain things: extracting the output from various compilation stages; or ""hooking in"" to the compilation pipeline. The `checkModule` function works for some uses, but it doesn't let you extract Core, for example, and it doesn't complete the compilation and inject the result into the `Session`, so the module still has to be compiled.
One way to solve this would be to abstract the compilation pipeline as a series of functions, so that the user could script the compiler. We haven't worked out the details, but in principle it should be possible to write a GHC API client that invokes the following steps:
* parse a module
* rename/typecheck
* deSugar
* optimise...
* generate code
and can then inject the compilation results back into the `Session` for use by future compilations. Each individual stage should provide a result that can be inspected: get the renamed/typechecked code out, get the Core, and so on.
The current `checkModule` could be built on top of such an interface, but the interface would allow much more flexibility.",task,closed,normal,6.10 branch,GHC API,6.9,fixed,,claus.reinke@…,Unknown/Multiple,Unknown/Multiple,,,,,,