[Haskell-cafe] jhc speed

John A. De Goes john at n-brain.net
Sun Feb 22 10:48:57 EST 2009


I think doing this work would improve the design of GHC by improving  
modularity and factoring out generalized abstractions.

The richest possible core language makes the most sense for a common  
core, because what's not needed can always be discarded. From your  
description, it sounds like such a common core language would be a  
hybrid of jhc and ghc core, because each contains more information for  
particular subsets of the language.

Layering higher-level primitives on lower-level primitives also makes  
sense, as it's a very flexible approach.

How much support and direction can you provide if we get enough people  
interested in this?

Regards,

John A. De Goes
N-BRAIN, Inc.
The Evolution of Collaboration

http://www.n-brain.net    |    877-376-2724 x 101

On Feb 22, 2009, at 7:45 AM, John Meacham wrote:

> On Sun, Feb 22, 2009 at 07:25:26AM -0700, John A. De Goes wrote:
>>
>> Is there any conceivable factoring of GHC that would allow you to
>> sandwich the core of jhc in between the front and back ends of GHC?  
>> Or
>> are the architectures so fundamentally incompatible as to make this
>> impossible?
>
> Well, it wouldn't really be useful sandwiched between the front and  
> back
> end of ghc, the main advantages jhc has over ghc's model are in its
> lower level optimizations closer to the back end. Feeding ghc core  
> into
> jhc shouldn't be impossible. Oddly enough, I have written a ghc back  
> end
> for jhc, mainly for testing purposes rather than a serious back end.
>
> The tricky part isn't so much the translation of ghc to jhc core, the
> type system and representation are quite similar, but the difference  
> in
> the primitives that the two systems expect to exist. for instance, ghc
> has high level primitives, such as operations on Integers and  
> primitive
> types that high signedness. While jhcs primitives are much lower  
> level,
> it has no special concept of Integer for instance, you implement  
> Integer
> either in pure haskell code or FFI bindings to GMP or some other way,
> and jhc's primitive numerical types are simply bit patterns with no
> interpretation, for instance
>
> data Int = I Bits32_
> data Word = W Bits32_
>
> and the only thing that makes Int signed and Word not is in the 'Num'
> instances for those types.
>
> That said, i don't see any reason a ghc-core front end for jhc  
> wouldn't
> be possible, an adapter library could be written to provide ghc style
> primitives on top of the jhc ones. It would certainly be an  
> interesting
> project.
>
>
>        John
>
>
> -- 
> John Meacham - ⑆repetae.net⑆john⑈
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe



More information about the Haskell-Cafe mailing list