
On Fri, Mar 30, 2012 at 1:05 PM, Mats Rauhala
On 11:57 Fri 30 Mar , Brandon Allbery wrote:
The legible C thing is probably jhc ( http://repetae.net/computer/jhc/ ). It's GHC's *illegible* registerized C that is being phased out; the slightly-more-legible ANSI C mode used for porting is staying, though.
Oh wow, I thought jhc was discontinued, but just checked the repositories and mailing lists and it's alive and well. No idea where I got the idea that it was discontinued. Going a little bit on tangent here, but if I understood correctly, jhc is meant to do more optimization. How does this compare to for example ghc?
Both are optimizing compilers, but jhc is intended (by the author) to try different things that ghc. If ghc does it one way, jhc will try to explore other aspects of the design space. The last time this came up, I think someone said that jhc uses GRIN for optimizations: http://www.cafepress.com/haskell_books.12273129 GHC tries to optimize by rewriting and also by conventional means. Both try to specialize away uses of type classes, but as I understand it jhc is far more aggressive, or maybe even has a different run-time representation? Anyway, back to the original topic, some of the big items that I would mention to your friend include: * cabal/cabal-dev * hackage (and some of the better known libraries, Data.Vector/Data.Text/Data.ByteString) * Type Families * Haskell 2010 is the current rev of the language standard Jason