[Haskell-cafe] Retargeting Haskell compiler to embedded/hardware

Tom Hawkins tomahawkins at gmail.com
Tue Sep 28 21:58:11 EDT 2010


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.


More information about the Haskell-Cafe mailing list