Using GHC Core as a Language Target
csaba.hruska at gmail.com
Mon Oct 29 19:11:38 UTC 2018
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 <http://www.stephendiehl.com/posts/ghc_01.html>
- Dive into GHC: Intermediate Forms
- Dive into GHC: Targeting Core
On Thu, Oct 25, 2018 at 8:51 PM Ara Adkins <me at ara.io> wrote:
> 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
> On 25 Oct 2018, at 19:20, Iavor Diatchki <iavor.diatchki at gmail.com> wrote:
> I have not done what you are asking, but here is how I'd approach the
> 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.
> On Mon, Oct 22, 2018 at 1:46 AM Ara Adkins <me at 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.
>> ghc-devs mailing list
>> ghc-devs at haskell.org
> ghc-devs mailing list
> ghc-devs at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ghc-devs