
Hi Tim,
When you say "multi-stage programming language" do you have a specific
calculus in mind? I think this can mean lots of different things to
different people.
This is a topic I have been interested in recently.
Cheers,
Matt
On Fri, Nov 17, 2017 at 6:05 PM, Tim Sheard
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 string.
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 advice 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@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs