I recently found out about MicroHs, a Haskell compiler using combinators to get very small executables. It is, as far as I know, the only Haskell compiler besides GHC that is being actively developed/maintained. So I wonder, what happened to all the other Haskell compilers? I found the paper A History of Haskell: Being Lazy With Class from 2007, which, among other things, talks about the different Haskell implementations. There’s also a page on the Haskell Wiki about Haskell implementations. Since all of them, except GHC and MicroHs, are kind of dead, I’m interested in why they died and what made them special. Here’s what I gathered so far:
hbc
was the first Haskell compiler, written in Lazy ML, by Lennart Augustsson (who is also the author of MicroHs). Being written in Lazy ML is likely why it died.- Hugs is a Haskell interpreter and seems to have been quite popular.
nhc98
was supposed to be space-efficient. It only works on 32 bit platforms.- Yale Haskell compiled to Common Lisp. It was abandoned in 1995 due to performance issues & lack of funding.
- UHC (Utrecht Haskell Compiler) had JVM and JS backends.
jhc
did whole-program analysis to produce efficient programs. Also works as a cross compiler.yhc
(York Haskell Compiler) was a fork of nhc. I found a blog post “Yhc is dead”. It seems the main reason for its death was that too many libraries rely on GHC.- LHC (LLVM Haskell Compiler) compiled to LLVM. Probably succeeded by GHCs LLVM backend?