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?
Backwards compatibility: we've introduce "base3-compat", a backwards-compatible version of the base library
that will provide essentially the same API as the base library that shipped with GHC 6.8.3, so that code
depending on base-3 will continue to just work.
GHC API improvement: Thomas Schilling is doing a SoC project. Preserve comments and pragmas, generic traversals (#1467 (closed), #1886 (closed), GhcApiStatus). We'll ship whatever Thomas has committed by then.
More library reorg (#1338 (closed)). 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.
^C should raise an exception by default (also SIGPIPE, see #1619 (closed), #2301 (closed)). Nearly done! But not quite complete if you fork another process. This latter part is lower priority.
Things we plan to do for sure
Ship the Haskell Library Platform instead of 'extralibs'. Don and Duncan are leading.
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.
Back-end revamp (see also #1501 (closed)). 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.
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 (closed)) 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
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.