True multi stage Haskell
jwlato at gmail.com
Mon Nov 27 01:16:51 UTC 2017
Several years ago I wrote a proof of concept of one way to implement this
I used TH to automatically lift expressions into a newtype-wrapped ExpQ
that could be used for staged evaluation. More than one stage would
probably have been tedious though, and a major problem with any non-trivial
code was getting all the imports in place. I do think it would have been
possible to automatically track imports though.
Of course that was 5 years ago, so state of the art has moved on. TH has
better facilities for this now, and the ghc API probably has something
On Fri, Nov 17, 2017, 10:06 Tim Sheard <sheard at pdx.edu> wrote:
> After many years of hoping someone else would do this, I would like to
> make GHC into a true multi-stage programming language. Here is how I
> thought I might approach this.
> 1) Use the GHC as a library module.
> 2) Use the LLVM backend.
> I have no experience with either of these tools.
> Lets start simple, How would I write functions like
> compile :: String -> IO PtrToLLVMCode -- where the string is a small
> Haskell program.
> llvmCompile :: PtrToLLVMCode -> IO PtrToMachineCode
> jumpTo:: PtrToMachineCode -> IO ans -- where ans is the "type" of the
> Any thoughts on how to get started? What papers to read, examples to
> look at?
> I'd love to move to some more disciplined input type, a sort of (mono)
> typed program
> representation (with similar complexity) to Template Haskell Exp type.
> where (Exp t) is a data structure representing a Haskell program of type t.
> All offers of advice accepted. I'm trying to get started soon, and good
> about what to avoid is especially welcome. If any one wanted to help
> with this,
> that would be great.
> Tim Sheard
> ghc-devs mailing list
> ghc-devs at haskell.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the ghc-devs