1. 07 May, 2017 1 commit
  2. 05 May, 2017 4 commits
    • Douglas Wilson's avatar
      testsuite: add new test for desugar warnings/errors with -fno-code · 6723c2fd
      Douglas Wilson authored
      Add a new (expect_broken) test T10600 that checks that the error:
      Top-level bindings for unlifted types aren't allowed: is thrown when
      compiling with -fno-code. This test currently fails because modules
      compiled with -fno-code aren't desugared. There are several other errors
      which can be thrown during desugaring that aren't tested for,
      discoverable by grepping for "errDs".
      
      Update .stderr files T8101 and T8101b. Presumably the compilation output
      has changed slightly since they were written.
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: rwbarton, thomie
      
      GHC Trac Issues: #10600, #8101
      
      Differential Revision: https://phabricator.haskell.org/D3533
      
      (cherry picked from commit c326665c3742bb97904f7096689d40246ce6397f)
      6723c2fd
    • Ben Gamari's avatar
      TcTypeable: Simplify · fb6936d5
      Ben Gamari authored
      Simon pointed out that the zonk of the tyConKinds was redundant as tycon kinds
      will never contain mutable variables. This allows us to remove tycon_kind.
      Add a few commments clarifying the need to bring TyCon binders into scope before
      typechecking bindings.
      
      (cherry picked from commit c8e4d4b3)
      fb6936d5
    • Ben Gamari's avatar
      CoreTidy: Don't seq unfoldings · febfbc5a
      Ben Gamari authored
      Previously we would force uf_is_value and friends to ensure that we didn't
      retain a reference to the pre-tidying template, resulting in a space leak.
      Instead, we now just reinitialize these fields (despite the fact that they
      should not have changed). This may result in a bit more computation, but most of
      the time we won't ever evaluate them anyways, so the damage shouldn't be so bad.
      
      See #13564.
      
      (cherry picked from commit b3da6a6c)
      febfbc5a
    • Ben Gamari's avatar
      Bump Cabal submodule to 2.0.0.0 · fe5c821b
      Ben Gamari authored
      fe5c821b
  3. 04 May, 2017 10 commits
  4. 03 May, 2017 6 commits
  5. 02 May, 2017 3 commits
    • Simon Peyton Jones's avatar
      Fix loss-of-SpecConstr bug · 78505384
      Simon Peyton Jones authored
      This bug, reported in Trac #13623 has been present since
      
        commit b8b3e30a
        Author: Edward Z. Yang <ezyang@cs.stanford.edu>
        Date:   Fri Jun 24 11:03:47 2016 -0700
      
            Axe RecFlag on TyCons.
      
      SpecConstr tries not to specialise indefinitely, and had a
      limit (see Note [Limit recursive specialisation]) that made
      use of info about whether or not a data constructor was
      "recursive".  This info vanished in the above commit, making
      the limit fire much more often -- and indeed it fired in this
      test case, in a situation where specialisation is /highly/
      desirable.
      
      I refactored the test, to look instead at the number of
      iterations of the loop of "and now specialise calls that
      arise from the specialisation".  Actually less code, and
      more robust.
      
      I also added record field names to a couple of constructors,
      and renamed RuleInfo to SpecInfo.
      
      (cherry picked from commit 9e47dc45)
      78505384
    • Simon Peyton Jones's avatar
      Improve SpecConstr when there are many opportunities · 324eeb94
      Simon Peyton Jones authored
      SpecConstr has -fspec-contr-count=N which limits the maximum
      number of specialisations we make for any particular function.
      But until now, if that limit was exceeded we discarded all the
      candidates!  So adding a new specialisaiton opportunity (by
      adding a new call site, or improving the optimiser) could result
      in less specialisation and worse performance.
      
      This patch instead picks the top N candidates, resulting in
      less brittle behaviour.
      
      See Note [Choosing patterns].
      
      (cherry picked from commit c46a600f)
      324eeb94
    • Ben Gamari's avatar
      Bump haddock submodule · 3e25336f
      Ben Gamari authored
      Fixes previously buggy commit
      3e25336f
  6. 01 May, 2017 6 commits
  7. 30 Apr, 2017 6 commits
    • Ben Gamari's avatar
      Bump unix submodule · 74c0bf2f
      Ben Gamari authored
      74c0bf2f
    • Ben Gamari's avatar
      Bump array submodule · 9adf17e2
      Ben Gamari authored
      9adf17e2
    • Ben Gamari's avatar
      Bump Cabal submodule · 4e676beb
      Ben Gamari authored
      4e676beb
    • Ben Gamari's avatar
      Bump haddock submodule · af73f39b
      Ben Gamari authored
      af73f39b
    • Simon Marlow's avatar
      Don't setProgramDynFlags on every :load · d30ccd45
      Simon Marlow authored
      Summary:
      setProgramDynFlags invalidates the whole module graph, forcing
      everything to be re-summarised (including preprocessing) on every
      :reload.
      
      Looks like this was a bad regression in 8.0, but we didn't notice
      because there was no test for it.  Now there is!
      
      Test Plan:
      * validate
      * new unit test
      
      Reviewers: bgamari, triple, austin, niteria, erikd, jme
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3398
      
      (cherry picked from commit 914842e5)
      d30ccd45
    • Peter Trommler's avatar
      PPC NCG: Implement callish prim ops · f6289e72
      Peter Trommler authored
      Provide PowerPC optimised implementations of callish prim ops.
      
      MO_?_QuotRem
      The generic implementation of quotient remainder prim ops uses
      a division and a remainder operation. There is no remainder on
      PowerPC and so we need to implement remainder "by hand" which
      results in a duplication of the divide operation when using the
      generic code.
      
      Avoid this duplication by implementing the prim op in the native
      code generator.
      
      MO_U_Mul2
      Use PowerPC's instructions for long multiplication.
      
      Addition and subtraction
      Use PowerPC add/subtract with carry/overflow instructions
      
      MO_Clz and MO_Ctz
      Use PowerPC's CNTLZ instruction and implement count trailing
      zeros using count leading zeros
      
      MO_QuotRem2
      Implement an algorithm given by Henry Warren in "Hacker's Delight"
      using PowerPC divide instruction. TODO: Use long division instructions
      when available (POWER7 and later).
      
      Test Plan: validate on AIX and 32-bit Linux
      
      Reviewers: simonmar, erikd, hvr, austin, bgamari
      
      Reviewed By: erikd, hvr, bgamari
      
      Subscribers: trofi, kgardas, thomie
      
      Differential Revision: https://phabricator.haskell.org/D2973
      
      (cherry picked from commit 89a3241f)
      f6289e72
  8. 28 Apr, 2017 4 commits