[Haskell-cafe] Re: [Haskell] ANNOUNCE: Haskell 2010 Report (final)

Simon Marlow marlowsd at gmail.com
Mon Jul 12 05:07:28 EDT 2010

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?


More information about the Haskell-Cafe mailing list