
That’s a brilliant resource! Thanks so much for the links. _ara
On 29 Oct 2018, at 19:11, Csaba Hruska
wrote: There is also a nice intro blog post about GHC internals with an example how to compile a custom constructed module AST. Dive into GHC: Pipeline Dive into GHC: Intermediate Forms Dive into GHC: Targeting Core Cheers, Csaba Hruska
On Thu, Oct 25, 2018 at 8:51 PM Ara Adkins
wrote: Heya, Those are exactly the kind of pointers I was hoping for. Thanks Iavor.
I’m sure I’ll have more questions with time, but that’s a great starting point.
_ara
On 25 Oct 2018, at 19:20, Iavor Diatchki
wrote: Hello,
I have not done what you are asking, but here is how I'd approach the problem.
1. Assuming you already have some Core, you'd have to figure out how to include it with the rest of the GHC pipeline: * A lot of the code that glues everything together is in `compiler/main`. Modules of interest seem to be `DriverPipeline`, `HscMain`, and `PipelineMoand` * A quick looks suggests that maybe you want to call `hscGenHardCode` in `HscMain`, with your core program inside the `CgGuts` argument. * Exactly how you setup things probably depends on how much of the rest of the Haskell ecosystem you are trying to integrate with (separate compilation, avoiding recompilation, support for packages, etc.)
2. The syntax for Core is in `compiler/coreSyn`, with the basic AST being in module `CoreSyn`. Module `MkCore` has a lot of helpers for working with core syntax.
3. The "desugarer" (in `compiler/deSugar`) is the GHC phase that translates the front end syntax (hsSyn) into core, so that should have lots of examples of how to generate core.
Cheers, -Iavor
On Mon, Oct 22, 2018 at 1:46 AM Ara Adkins
wrote: Hey All, I was chatting to SPJ about the possibility of using GHC Core + the rest of the GHC compilation pipeline as a target for a functional language, and he mentioned that asking here would likely be more productive when it comes to the GHC API.
I'm wondering where the best place would be for me to look in the API for building core expressions, and also whether it is possible to trigger the GHC code-generation pipeline from the core stage onwards.
Best, Ara _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs