Version 28 (modified by igloo, 6 years ago) (diff)

We decided against bundling cabal-install

Plans for GHC 6.10

We expect to release GHC 6.10 around ICFP 2008.

  • Release candidate: Friday 19th September 2008.

Here are the big items that we hope to include, along with who is primarily responsible for delivering these promises.

Things that are done already

  • Several language extensions advertised in the November 2007 status report:
    • Improvements to record syntax
    • View patterns
    • Quasiquotation
    • Generalised list comprehensions

Done: these are all in the HEAD already.

  • External Core (output only) is working again, thanks to Tim Chevalier.
  • Better versioning to support separate compilation; perhaps checksums/fingerprints. Already done!
  • GHC now uses libffi to implement parts of the FFI, replacing some of the home-grown and very architecture-specific code we had to do this. Amongst other benefits, this will ease the task of porting GHC in the future. Done; but maybe use it to solve the SE Linux paranoia problem?

Things we plan to do for sure

  • Ship the Haskell Library Platform instead of 'extralibs'. Don and Duncan are leading.
  • Haddock 2 (see also #1964 (GHC.Prim), #2335 (build problem)). (Ian Lynagh: a few days.)
    • Build it with GHC (maybe ship it with GHC too)
    • Documentation for GHC API done via Haddock 2
  • Unicode support for text I/O. This means adding Unicode encoding/decoding for Text I/O handles. (Simon Marlow: a few days work.)
    • Consensus was that Text I/O should always use the current locale encoding.
    • You can elect to have no encoding by opening in binary mode, but that's all.
  • Shared libraries, as a result of Clemens Fruhwirth's Summer of Code project. (#1876) Simon Marlow: about a week's work.
    • Binaries get much smaller
    • Compile a package on Windows to a DLL; it just works
    • C program (or Excel) that calls multiple Haskell functions gets just one copy of the RTS, rather than one per DLL as now.
    • Performance penalty, but too small to measure
  • Back-end revamp (see also #1501). John Dias is in charge. For 6.10 we will make sure that the whole existing path still exists, so we can choose at a late date whether to rely on the new path or not.

  • GHC API improvement: Thomas Schilling is doing a SoC project. Preserve comments and pragmas, generic traversals (#1467, #1886, GhcApiStatus). We'll ship whatever Thomas has committed by then.
  • Finish System.Process revamp (#2233)

Lower priorities for 6.10

  • Backwards compatibility: we're not sure what to do here.
  • More library reorg (#1338). The goal here is to shift stuff out of boot-libs and into the Haskell Library Platform, which is independently upgradable. Not hugely urgent, nice to have.
  • Binary package DB, or at least make the one-file-per package work (#593, #723, #2089)
  • ^C should raise an exception by default (also SIGPIPE, see #1619, #2301). Nearly done! But not quite complete if you fork another process. This latter part is lower priority.

Beyond 6.10

This is a list of things that are floating about in our minds for what to do beyond 6.10. Nothing is decided, and these items vary wildly in their size.

  • Opaque interfaces (optionally), so you can upgrade a library without recompiling.
  • Parallelism: better profiling tools.
  • Visual Haskell: a Visual Studio plugin. There is one, but it has suffered bit-rot.

  • GHC as a platform is the aspiration that it should be easy to plug extensions into GHC, and easy to use GHC to extend other software.
  • Static verification along the lines of Dana Xu's work.