1. 06 Mar, 2017 11 commits
    • ruperthorlick's avatar
      Changed OverLit warnings to work with negative literals (#13257) · 3fdabe98
      ruperthorlick authored
      Test Plan: Validate, check generated warnings
      
      Reviewers: austin, bgamari, dfeuer
      
      Reviewed By: bgamari, dfeuer
      
      Subscribers: dfeuer, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3281
      3fdabe98
    • Tamar Christina's avatar
      Add GCC bin folder to search path. · 016b10c5
      Tamar Christina authored
      D3155 added pthread by default to GHCi.  However this was only tested
      using something running in an msys2 shell. As it turns out it's been
      picking up pthread in the environment and not the inplace gcc.
      
      This results in an error when using ghci outside of msys2.
      
      Test Plan: start cmd, start ghc-stage2 --interactive
      
      Reviewers: austin, hvr, bgamari, dfeuer
      
      Reviewed By: dfeuer
      
      Subscribers: dfeuer, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3279
      016b10c5
    • Ben Gamari's avatar
      Read COMPLETE sets from external packages · 8ca4bb1c
      Ben Gamari authored
      Currently, `COMPLETE` pragmas are not read from external packages at
      all, which quite limits their usefulness. This extends
      `ExternalPackageState` to include `COMPLETE` sets from other packages,
      and plumbs around the appropriate values to make it work the way you'd
      expect it to.
      
      Requires a `binary` submodule update.
      
      Fixes #13350.
      
      Test Plan: make test TEST=T13350
      
      Reviewers: rwbarton, mpickering, austin, simonpj, bgamari
      
      Reviewed By: simonpj
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3257
      8ca4bb1c
    • Matthew Pickering's avatar
      Add -dno-debug-output to validate GhcStage1HcOpts · c02d03de
      Matthew Pickering authored
      This flag only affects whether WARNs are printed to the build log.
      ASSERT fails will still be printed and cause an abort.
      
      Most of the WARNs in the compiler are speculative and meant to help with
      debugging rather than indicative of any real errors. This causes
      a lot of noise in the build log which is not helpful and makes them very
      long.
      
      Test Plan: Check that the build log is less than 27000 lines long
      
      Reviewers: austin, bgamari, rwbarton
      
      Reviewed By: bgamari
      
      Subscribers: thomie, snowleopard
      
      Differential Revision: https://phabricator.haskell.org/D3213
      c02d03de
    • rwbarton's avatar
      Add SplitSections = NO to build flavors with SplitObjs = NO · 29b6845e
      rwbarton authored
      Test Plan: harbormaster
      
      Reviewers: nomeata, austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie, snowleopard
      
      Differential Revision: https://phabricator.haskell.org/D3276
      29b6845e
    • Gabor Greif's avatar
      Typos in comments and manual · 749740f9
      Gabor Greif authored
      749740f9
    • Simon Peyton Jones's avatar
      Make FloatOut/SetLevels idemoptent on bottoming functions · fb9ae288
      Simon Peyton Jones authored
      This fixes Trac #13369.  It turned out that I really had got the
      bottoming-float code wrong, again.  The new story is explained in
      Note [Bottoming floats], esp item (3), and Note [Floating from a RHS].
      
      I didn't make a regression test; it's hard to to so.
      
      Nofib result are good
      
      --------------------------------------------------------------------------------
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
      --------------------------------------------------------------------------------
               banner          -2.2%     -4.6%      0.00      0.00     +0.0%
                 bspt          -1.3%     -1.6%      0.01      0.01     +0.0%
            cacheprof          -1.8%     -0.3%     +3.7%     +3.7%     -0.9%
         digits-of-e2          -1.0%     -1.5%     -0.5%     -0.5%     +0.0%
               expert          -1.3%     -0.2%      0.00      0.00     +0.0%
               n-body          -1.1%     -0.2%     +0.1%     +0.1%     +0.0%
              veritas          -2.9%     -0.1%      0.00      0.00     +0.0%
      --------------------------------------------------------------------------------
                  Min          -2.9%     -4.6%     -7.4%     -7.4%    -19.8%
                  Max          -1.0%     +0.0%     +5.2%     +5.1%    +10.0%
       Geometric Mean          -1.2%     -0.1%     +0.5%     +0.5%     -0.1%
      
      I /think/ all this is due to this error-floating change; but it's possible
      that some was due to commit "Fix CSE (again) on literal strings" a couple
      of commits earlier.
      fb9ae288
    • Simon Peyton Jones's avatar
      Comments only · 995ab74b
      Simon Peyton Jones authored
      995ab74b
    • Simon Peyton Jones's avatar
      Tiny refactor · 1163f4f2
      Simon Peyton Jones authored
      1163f4f2
    • Simon Peyton Jones's avatar
      Make TH_Roles2 less fragile · 9b2c73ea
      Simon Peyton Jones authored
      We need -dsuppress-uniques else this test keeps failing spuriously
      9b2c73ea
    • Simon Peyton Jones's avatar
      Fix CSE (again) on literal strings · 9304df52
      Simon Peyton Jones authored
      Fixes Trac #13367.  See Note [Take care with literal strings]
      9304df52
  2. 04 Mar, 2017 7 commits
  3. 03 Mar, 2017 22 commits
    • Ben Gamari's avatar
      testsuite: Fix double test of +Infinity · 0fd83405
      Ben Gamari authored
      The second set was supposed to be a NaN.
      0fd83405
    • Ingo Blechschmidt's avatar
      Fix a tiny typo · a86e68ce
      Ingo Blechschmidt authored
      a86e68ce
    • Ben Gamari's avatar
      testsuite: Add a NaN case to numrun015 · 2f8534b5
      Ben Gamari authored
      2f8534b5
    • Ben Gamari's avatar
      testsuite: Bump down allocations of T4029 · 96f5656d
      Ben Gamari authored
      96f5656d
    • Ben Gamari's avatar
      Add test to ensure that SPEC rules are named deterministically · 0ce11aed
      Ben Gamari authored
      Test Plan: Validate
      
      Reviewers: niteria, austin, dfeuer
      
      Reviewed By: dfeuer
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3220
      0ce11aed
    • Moritz Angermann's avatar
      Allow iOS to load archives through the linker · d5e0b4bd
      Moritz Angermann authored
      This basically just adds ios where darwin already was, and is just one
      of the pieces for the rts linker support for ios (aarch64-macho)
      
      ---
      
      The following diagram and legend tries to explain the dependencies a
      bit:
      ```
        .- This
        v
      D3255 <- D3252 <- D3251 <- D3239
        ^
        '- D3238
      ```
      
      - In D3238 we started allowing preloading object code with mmap
        in iOS, where we can't have r+w+x.
      - In D3239 we introduced a richer extension of the object code
        data type to make working with mach-o files easier.
      - In D3240 we set the stage to allow loading archives (.a) on iOS
      - In D3251 we added init and deinit functions to populate and
        depopulate the enriched object code data structure for mach-o
        files.
      - In D3252 we refactored most of the MachO.c file to use the
        new types and data structure.
      - in D3255 we finally introduce the aarch64-mach-o linker.
      
      Reviewers: bgamari, austin, erikd, simonmar
      
      Reviewed By: bgamari
      
      Subscribers: thomie, ryantrinkle
      
      Differential Revision: https://phabricator.haskell.org/D3240
      d5e0b4bd
    • rwbarton's avatar
      Comments only, in CSE (#13340) · 5ed56fc8
      rwbarton authored
      Reviewers: simonpj, austin, bgamari, dfeuer
      
      Reviewed By: dfeuer
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D3268
      5ed56fc8
    • rwbarton's avatar
      Deserialize IfaceId more lazily · 64462544
      rwbarton authored
      This change sped up the total validate --build-only time by 0.8%
      on my test system; hopefully a representative result.
      
      I didn't bother making the other constructors lazy because for
      IfaceData and IfaceClass we need to pull on some of the fields
      in loadDecl, and all the others seem much more rare than IfaceId.
      
      Test Plan: validate, perf
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D3269
      64462544
    • Ben Gamari's avatar
      testsuite: Add test for floating-point abs (numrun015) · 10d28d0a
      Ben Gamari authored
      Test Plan: Validate
      
      Reviewers: idontgetoutmuch, austin
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D3273
      10d28d0a
    • Ben Gamari's avatar
      Produce KindReps for common kinds in GHC.Types · c1dacb8a
      Ben Gamari authored
      Unfortunately this comes with a fair bit of implementation cost. Perhaps
      some refactoring would help, but in the interest of getting 8.2 out the
      door I'm pushing as-is.
      
      While this doesn't have nearly the effect on compiler allocations
      that D3166 has, it's still nothing to sneeze at. nofib shows,
      ```
      ------------------------------------------------------------------------
              Program               master           D3166            D3219
      ------------------------------------------------------------------------
              -1 s.d.                -----          -3.555%          -4.081%
              +1 s.d.                -----          +1.937%          +1.593%
              Average                -----          -0.847%          -1.285%
      ```
      
      Test Plan: Validate
      
      Reviewers: austin
      
      Subscribers: thomie, simonmar
      
      Differential Revision: https://phabricator.haskell.org/D3219
      c1dacb8a
    • Ben Gamari's avatar
      TcTypeable: Try to reuse KindReps · a694cee7
      Ben Gamari authored
      Here we rework the TcTypeable implementation to reuse KindRep bindings
      when possible. This is an attempt at minimizing the impact of Typeable
      binding generation by reducing the number of bindings that we produce.
      
      It turns out that this produces some pretty reasonable compiler
      allocations improvements. It seems to erase most of the increases
      initially introduced by TTypeable in the testsuite. Moreover, nofib
      shows,
      ```
              -1 s.d.                -----          -3.555%
              +1 s.d.                -----          +1.937%
              Average                -----          -0.847%
      ```
      
      Here are a few of the high-scorers (ignore last column, which is for
      D3219),
      ```
      veritas
                Types             88800920         -18.945%         -21.480%
      
      veritas
              Tactics            540766744         -27.256%         -27.338%
      
      sched
                 Main            567013384          -4.947%          -5.358%
      
      listcompr
                 Main            532300000          -4.273%          -4.572%
      
      listcopy
                 Main            537785392          -4.382%          -4.635%
      
      anna
             BaseDefs           1984225032         -10.639%         -10.832%
      
      ```
      as expected, these tend to be modules with either very many or very
      large types.
      
      Test Plan: Validate
      
      Reviewers: austin, dfeuer
      
      Subscribers: simonmar, dfeuer, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3166
      a694cee7
    • Ben Gamari's avatar
    • Ben Gamari's avatar
      testsuite: Bump down allocations for T12707 · 9808ebc8
      Ben Gamari authored
      9808ebc8
    • rwbarton's avatar
      Update test completesig04 · 61e760b0
      rwbarton authored
      It relied on an orphan COMPLETE pragma, so was broken by commit fce3d37c.
      
      Test Plan: validate
      
      Reviewers: austin, bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D3266
      61e760b0
    • Ben Gamari's avatar
      Revert "Read COMPLETE sets from external packages" · c02896ab
      Ben Gamari authored
      This reverts commit 0d2f7330.
      c02896ab
    • Ben Gamari's avatar
      testsuite: Fix output due to recent COMPLETE changes · ca538b84
      Ben Gamari authored
      It's unclear why this didn't show up in my initial local validation. Oh
      well.
      ca538b84
    • Ryan Scott's avatar
      Read COMPLETE sets from external packages · 0d2f7330
      Ryan Scott authored
      Currently, `COMPLETE` pragmas are not read from external packages at
      all, which quite limits their usefulness. This extends
      `ExternalPackageState` to include `COMPLETE` sets from other packages,
      and plumbs around the appropriate values to make it work the way you'd
      expect it to.
      
      Fixes #13350.
      
      Test Plan: make test TEST=T13350
      
      Reviewers: rwbarton, mpickering, austin, simonpj, bgamari
      
      Reviewed By: simonpj
      
      Subscribers: simonpj, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3257
      0d2f7330
    • Ben Gamari's avatar
      Show: Add ShowS for ", " · 615ded12
      Ben Gamari authored
      This is produced often enough in derived Show instances that it is likely
      worthwhile defining it once.
      615ded12
    • rwbarton's avatar
      testsuite: Move echoing commands in make invocations to VERBOSE=5 · 6421c6f2
      rwbarton authored
      D2894 added a new verbosity level VERBOSE=4 to strip -s/--silent
      flags from make invocations in test commands. This will probably
      cause the test to fail of course, but is useful for seeing what
      a test that's already failing is doing.
      
      However there was already an undocumented meaning of VERBOSE=4,
      added in commit cfeededf, that causes the results of performance
      tests to be printed unconditionally (even when they are within the
      expected range). nomeata's ghc builder uses these figures to
      collect historical data on performance test figures. The new
      meaning of VERBOSE=4 added in D2894 means that any test that uses
      make now fails on the builder.
      
      This commit moves the new behavior of D2894 to the level VERBOSE=5
      so that nomeata's ghc builder again produces useful results on
      failing tests. It also adds documentation for both settings.
      
      Test Plan: did some manual testing
      
      Reviewers: austin, bgamari, Phyx, nomeata
      
      Reviewed By: bgamari, Phyx
      
      Subscribers: nomeata, thomie, Phyx
      
      Differential Revision: https://phabricator.haskell.org/D3141
      6421c6f2
    • ruperthorlick's avatar
      Changed parser message for RankNTypes (#12811) · 488a9daa
      ruperthorlick authored
      Added a check for whether RankNTypes is enabled
      and changed error message accordingly
      
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie, mpickering
      
      Differential Revision: https://phabricator.haskell.org/D3262
      488a9daa
    • ruperthorlick's avatar
      Add suggestion for PatternSynonyms parse error (fixes #12429) · 4b1f0721
      ruperthorlick authored
      Reviewers: austin, bgamari
      
      Reviewed By: bgamari
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D3261
      4b1f0721
    • rwbarton's avatar
      Don't float out expressions that are okay for speculation · 27bf6b68
      rwbarton authored
      It turned out not to be worth the overhead according to nofib
      (+11.62% on fannkuch-redux, +4.3% on k-nucleotide, and some other
      smaller losses, with no significant gains).
      
      Test Plan: validate
      
      Reviewers: simonpj, austin, bgamari
      
      Reviewed By: simonpj
      
      Subscribers: thomie
      
      Differential Revision: https://phabricator.haskell.org/D3250
      27bf6b68