Changes to ghc(6) testsuite(3)

Changes to ghc:
commit 96e6eddc40c34a171f6261a7814a1e264457ce86
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Tue Nov 12 15:10:01 2013 +0000

    Make exprType work correctly in the presnce of type bindings (Trac #8522)

commit 961203b585aac003a32ac0000456bdd742dba4d9
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Tue Nov 12 15:09:15 2013 +0000

    Improve typechecking of tuples (Trac #8514)

commit 802f4b89c1a823f7d530454d52bca80b13fb2f15
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Tue Nov 12 13:12:16 2013 +0000

    Improve eta expansion (again)

    The presenting issue was that we were never eta-expanding

        f (\x -> case x of (a,b) -> \s -> blah)

    and that meant we were allocating two lambdas instead of one.
    See Note [Eta expanding lambdas] in SimplUtils.

    However I didn't want to eta expand the lambda, and then try all over
    again for tryEtaExpandRhs.  Yet the latter is important in the context
    of a let-binding it can do simple arity analysis.  So I ended up
    refactoring CallCtxt so that it tells when we are on the RHS of a let.

    I also moved findRhsArity from SimplUtils to CoreArity.

    Performance increases nicely. Here are the ones where allocation improved
    by more than 0.5%. Notice the nice decrease in binary size too.

    --------------------------------------------------------------------------------
            Program           Size    Allocs   Runtime   Elapsed  TotalMem
    --------------------------------------------------------------------------------
               ansi          -2.3%     -0.9%      0.00      0.00     +0.0%
               bspt          -2.1%     -9.7%      0.01      0.01    -33.3%
              fasta          -1.8%    -11.7%     -3.4%     -3.6%     +0.0%
                fft          -1.9%     -1.3%      0.06      0.06    +11.1%
    reverse-complem          -1.9%    -18.1%     -1.9%     -2.8%     +0.0%
             sphere          -1.8%     -4.5%      0.09      0.09     +0.0%
          transform          -1.8%     -2.3%     -4.6%     -3.1%     +0.0%
    --------------------------------------------------------------------------------
                Min          -3.0%    -18.1%    -13.9%    -14.6%    -35.7%
                Max          -1.3%     +0.0%     +7.7%     +7.7%    +50.0%
     Geometric Mean          -1.9%     -0.6%     -2.1%     -2.1%     -0.2%

commit 0001d161f7f6a6f7392eb2a3229f6204c3423450
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Tue Nov 12 12:59:15 2013 +0000

    Fix egregious omission in CSE (Trac #5996)

    This patch fixes a bad omission in CSE, thanks to 'michaelt' for spotting
    it, and correctly identifying the fix (in cseRhs).  The trouble was with
       x1 = C a b
       x2 = C x1 b
       y1 = C a b
       y2 = C y1 b
    we were not commoning up y2=x2, because we failed to substitute y1:=x1,
    so y2's RHS looked different to x2's

    I also refactoring, so taht the cs_map in a CSEnv map is
           cs_map    :: CoreMap (OutExpr, Id)
    instead of
           cs_map    :: CoreMap (OutExpr, OutExpr)
    Much nicer!

    This doesn't make much difference to allocation, but it gives a surprisingly
    big benefit to binary size.

    --------------------------------------------------------------------------------
            Program           Size    Allocs   Runtime   Elapsed  TotalMem
    --------------------------------------------------------------------------------
               ansi          -1.7%     -0.8%      0.00      0.00     +0.0%
               bspt          -1.6%     -1.5%      0.01      0.01     +0.0%
          cacheprof          -1.8%     -0.2%     +1.6%     +1.9%     +2.7%
                fft          -1.4%     -1.3%      0.06      0.06    +11.1%
                ida          -1.4%     -1.0%      0.12      0.12     +0.0%
               rfib          -1.4%     -0.1%      0.03      0.03     +0.0%
                scs          -1.6%     -0.1%     +1.5%     +1.5%     +0.0%
      spectral-norm          -1.3%     -0.1%     -0.2%     -0.2%     +0.0%
                tak          -1.4%     -0.1%      0.02      0.02     +0.0%
            veritas          -1.4%     -0.1%      0.00      0.00     +0.0%
    --------------------------------------------------------------------------------
                Min          -2.5%     -1.5%    -11.8%    -11.8%     -8.0%
                Max          -1.0%     +0.0%     +2.7%     +2.5%    +11.1%
     Geometric Mean          -1.3%     -0.1%     -2.6%     -2.6%     +0.0%

commit 6c1aba4ff27371fddfc0dce5f9256c97edf16eea
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Mon Nov 11 08:52:51 2013 +0000

    Warn if you use ANN annotations with a stage-1 compiler (Trac #4268)

    This makes us give a civilised warning when we hit an
      {-# ANN f foo #-}
    pragma in a stage-1 compiler.

    We decided that, since it's a pragma, it does not need a language
    extension flag to enable it.

commit 4279665b08a5fed970b5eb37f85bde68bd7c68f9
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Mon Nov 11 08:51:05 2013 +0000

    Make -XTemplateHaskell an error in a stage-1 compiler (except with -M)

    Fixes Trac #8519

Changes to testsuite:
commit 53b3199b03bd2e52c63babffd33d478242ae74d5
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Tue Nov 12 15:06:56 2013 +0000

    Much better perf on 5030, higher peak on 3064

    The peak-megabytes is vulnerable to when GC runs, but
    the bytes-allocated on 5030 shows a big reduction from
    466Mbytes to 367Mbytes.

    This follows the arity improvement and CSE patches

commit 5ecd306e9420b0b4df3432c54555a183e8fe097d
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Mon Nov 11 08:40:31 2013 +0000

    Test Trac #8518

commit 12155437ae9cc6bade3beb209c188859b2867799
Author: Simon Peyton Jones <simonpj@microsoft.com>
Date:   Thu Nov 7 13:29:28 2013 +0000

    Test Trac #8507