That’s a brilliant resource! Thanks so much for the links. _ara
> On 29 Oct 2018, at 19:11, Csaba Hruska <csaba.hru...@gmail.com> 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 <m...@ara.io> 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 <iavor.diatc...@gmail.com> 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 <m...@ara.io> 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
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs