
Hi Tom, The Utrecht Haskell Compiler (UHC) is internally organized as a set of compilers, for which you can configure the aspects you want. It is relatively easy to extract such a particular combination and use it as a starting point. Or you might install UHC itself and use the installed libraries, which include abstract syntax, parser, etc. There is some variation depending on what you need, so check out http://www.cs.uu.nl/wiki/UHC for initial reading, and let me know whether you need more info. regards, On 29 Sep, 2010, at 16:49 , S. Doaitse Swierstra wrote:
Begin forwarded message:
From: Tom Hawkins
Date: 29 september 2010 03:58:11 GMT+02:00 To: haskell-cafe Subject: [Haskell-cafe] Retargeting Haskell compiler to embedded/hardware A few years ago I attempted to build a Haskell hardware compiler (Haskell -> Verilog) based on the Yhc frontent. At the time I was trying to overcome several problems [1] with implementing a hardware description language as a light eDSL, which convinced me a proper compiler may be a better approach. Yhc was recommended as a good starting point since it had a simpler IR compared with GHC -- at least at the time.
I am considering restarting this effort, but this time to target hard realtime embedded code. What is the recommended compiler to start from? I need an IR that is post type checking with as much desugaring as possible, and a code base that is relatively easy to splice and build.
My other requirement is not to be bound to IO () for 'main'. The top level will be a monad, but with different semantics than IO. I would also like to reuse the standard library, with exception to the values related to IO.
What are my options?
Thanks.
-Tom
[1] Lack of observable sharing; function definitions, case expressions, ADTs disappear at compile time; etc. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe
- Atze - Atze Dijkstra, Department of Information and Computing Sciences. /|\ Utrecht University, PO Box 80089, 3508 TB Utrecht, Netherlands. / | \ Tel.: +31-30-2534118/1454 | WWW : http://www.cs.uu.nl/~atze . /--| \ Fax : +31-30-2513971 .... | Email: atze@cs.uu.nl ............ / |___\