On 08/07/2010 21:34, John Meacham wrote:
On Tue, Jul 06, 2010 at 09:48:20PM +0300, Roman Cheplyaka wrote:
Greetings! Now, can different compiler/interpreter authors make
statements about support of this standard in their compilers please?

Jhc supports all the language features of haskell 2010 except pattern
guards. (ironic as I am a huge fan of said feature.)

The library situation is more complicated, there is tension between
haskell 98, haskell 2010, and supporting code in the wild, which often
assumes some specific version of ghc's base, which doesn't quite conform
to either. My current thinking is to give up supporting base directly as
a clone of ghc's and rather support just haskell 98 and haskell 2010
modes "natively", then compatability libraries (called things like
ghc-base-4 and ghc-base-3 perhaps) would be independent projects and not
tied to jhc releases.

The story we tentatively plan to provide in GHC 6.14.1 is a haskell2010 package that provides exactly the API specified by the report (by definition, since the source was used to generate the report :-). The modules of haskell2010 overlap with base, so it will be impossible to depend on both haskell2010 and base, without using non-portable extensions like PackageImports.

I hadn't realised before, but this situation is better for portability, because it discourages people from using base package modules in pure Haskell 2010 code. The downside is exactly the reverse: if you wanted to use modules from base, then you don't get to use the pure Haskell 2010 modules too (although the base versions are virtually identical at the moment).

So, if things stay like this, then you can write pure Haskell 2010 with GHC in two ways:

 - using Cabal: say "extensions: Haskell2010" and
   "build-depends: haskell2010".  Maybe Cabal should have a new
   "language"  directive, because "extensions" is a bit strange.

 - using GHC standalone: say "-package haskell2010 -hide-package base".


-XHaskell2010 will be the default for standalone GHC, although for Cabal we'll probably require you to say what the language is, in the interests of being explicit and for backwards compatibility with existing packages.


jhc 0.7.4 which supports garbage collection and a speedier runtime and
better support for external build systems will be out soon. My goal is
one more point release before 0.8.0 which will have full haskell 2010
and 98 support.

I haven't looked at the new jhc yet, but I have a question about the GC support: is it conservative or accurate? If accurate, how are you finding the pointers - a shadow stack?

Cheers,
        Simon
_______________________________________________
Haskell mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to