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

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