1. 05 May, 2018 1 commit
  2. 04 May, 2018 2 commits
    • Simon Peyton Jones's avatar
      Simplify callSiteInline a little · 33de71fa
      Simon Peyton Jones authored
      This patch has virtually no effect on anything (according to a
      nofib run).  But it simplifies the definition of interesting_call
      by being a bit less gung-ho about inlining nested function
      bindings.  See Note [Nested functions]
      
      -----------------------------------------------------------------------
              Program           Size    Allocs   Runtime   Elapsed  TotalMem
      -----------------------------------------------------------------------
                 anna          +0.2%     -0.0%     0.163     0.163      0.0%
         binary-trees          +0.1%     +0.0%     -4.5%     -4.5%      0.0%
            cacheprof          -0.1%     +0.1%     -4.7%     -4.8%     +2.7%
                fasta          +0.2%      0.0%     +2.6%     +3.0%      0.0%
                fluid          -0.0%     -0.6%     0.011     0.011      0.0%
               gamteb          -0.1%     -0.0%     0.069     0.070      0.0%
                  hpg          +0.1%     +0.0%     +0.7%     +0.7%      0.0%
                infer          +0.3%     +0.2%     0.097     0.098      0.0%
               lambda          -0.1%     -0.0%     +2.0%     +2.0%      0.0%
               n-body          +0.1%     -0.1%     -0.1%     -0.1%      0.0%
               simple          -0.2%     -0.2%     +0.6%     +0.6%      0.0%
        spectral-norm          +0.1%     -0.0%     -0.1%     -0.1%      0.0%
                  tak          -0.0%     -0.1%     0.024     0.024      0.0%
      --------------------------------------------------------------------------------
                  Min          -0.4%     -0.6%     -5.3%     -5.3%      0.0%
                  Max          +0.3%     +0.2%     +3.3%     +3.3%    +15.0%
       Geometric Mean          -0.0%     -0.0%     -0.3%     -0.3%     +0.2%
      33de71fa
    • niteria's avatar
      Normalize T14999 test output some more · 56974323
      niteria authored
      @osa1 reported that the output on his machine has extra newlines:
      https://phabricator.haskell.org/D4606#129092. This collapses consecutive
      newlines.
      56974323
  3. 03 May, 2018 15 commits
  4. 02 May, 2018 3 commits
  5. 01 May, 2018 7 commits
  6. 27 Apr, 2018 10 commits
    • Simon Peyton Jones's avatar
      Better linting for types · 6da5b877
      Simon Peyton Jones authored
      Trac #15057 described deficiencies in the linting for types
      involving type synonyms.  This patch fixes an earlier attempt.
      
      The moving parts are desrcribed in
        Note [Linting type synonym applications]
      
      Not a big deal.
      6da5b877
    • Simon Peyton Jones's avatar
      Make out-of-scope errors more prominent · 08003e7f
      Simon Peyton Jones authored
      Generally, when the type checker reports an error, more serious
      ones suppress less serious ones.
      
      A "variable out of scope" error is arguably the most serious of all,
      so this patch moves it to the front of the list instead of the end.
      
      This patch also fixes Trac #14149, which had
      -fdefer-out-of-scope-variables, but also had a solid type error.
      As things stood, the type error was not reported at all, and
      compilation "succeeded" with error code 0.  Yikes.
      
      Note that
      
      - "Hole errors" (including out of scope) are never suppressed.
        (maybeReportHoleError vs maybeReportError in TcErorrs)
        They can just get drowned by the noise.
      
      - But with the new orientation, out of scope errors will suppress
        type errors.  That would be easy to change.
      08003e7f
    • Simon Peyton Jones's avatar
      Refactor tcExtendLocalFamInst a bit · 0c01224b
      Simon Peyton Jones authored
      This patch just pulls out FamInst.loadDependentFamInstModules
      as a separate function, and adds better comments.
      
      Provoked by Trac #14759, comment:10.
      0c01224b
    • Simon Peyton Jones's avatar
      Comments only: the FVAnn invariant · 69119b20
      Simon Peyton Jones authored
      69119b20
    • Simon Peyton Jones's avatar
      Minor refactoring in Exitify · 512f5038
      Simon Peyton Jones authored
      No change in behaviour here, just some modest
      refactoring as I tried to understand the code
      better.
      512f5038
    • Simon Peyton Jones's avatar
      Add missing stdout file for T14955 · 56bbe1e4
      Simon Peyton Jones authored
      Accidentally omitted from Trac #14955 commit.
      56bbe1e4
    • Alan Zimmerman's avatar
      TTG : complete for balance of hsSyn AST · c3823cba
      Alan Zimmerman authored
      Summary:
      - remove PostRn/PostTc fields
      - remove the HsVect In/Out distinction for Type, Class and Instance
      - remove PlaceHolder in favour of NoExt
      - Simplify OutputableX constraint
      
      Updates haddock submodule
      
      Test Plan: ./validate
      
      Reviewers: goldfire, bgamari
      
      Subscribers: goldfire, thomie, mpickering, carter
      
      Differential Revision: https://phabricator.haskell.org/D4625
      c3823cba
    • Simon Peyton Jones's avatar
      Rename a local variable · 313720a4
      Simon Peyton Jones authored
      313720a4
    • Simon Peyton Jones's avatar
      Refactor in OccurAnal · 705dcb0d
      Simon Peyton Jones authored
      * (+++)                    -->  andUDs
      * combineAltsUsageDetails  -->  orUDs
      * combineUsageDetailsList  -->  andUDsList
      * Change some andUDsList to a fold for efficiency
      
      No change in behaviour
      705dcb0d
    • Simon Peyton Jones's avatar
      Comments only · 693857f3
      Simon Peyton Jones authored
      693857f3
  7. 26 Apr, 2018 1 commit
    • Simon Peyton Jones's avatar
      Do not unpack class dictionaries with INLINABLE · 3d38e828
      Simon Peyton Jones authored
      Matthew Pickering uncovered a bad performance hole in the way
      that single-method dictionaries work, described in Trac #14955.
      
      See Note [Do not unpack class dictionaries] in WwLib.
      
      I tried to fix this 6 years ago, but got it slightly wrong.  This patch
      fixes it, which makes a dramatic improvement in the test case.
      
      Nofib highlights: not much happening:
      
        Program           Size    Allocs   Runtime   Elapsed  TotalMem
      -----------------------------------------------------------------
            VSM          -0.3%     +2.7%     -7.4%     -7.4%      0.0%
      cacheprof          -0.0%     +0.1%     +0.3%     +0.7%      0.0%
        integer          -0.0%     +1.1%     +7.5%     +7.5%      0.0%
            tak          -0.1%     -0.2%     0.024     0.024      0.0%
      -----------------------------------------------------------------
            Min          -4.4%     -0.2%     -7.4%     -7.4%     -8.0%
            Max          +0.6%     +2.7%     +7.5%     +7.5%      0.0%
      Geom Mean          -0.1%     +0.0%     +0.1%     +0.1%     -0.2%
      
      I investigated VSM.  The patch unpacks class dictionaries a bit more
      than before (i.e. does so if there is no INLINABLE pragma). And that
      gives better code in VSM (less dictionary selection etc), but one closure
      gets one word bigger.
      
      I'll accept these changes in exchange for more robust performance.
      
      Some ghci.debugger output wobbled around (order of bindings
      being displayed). I have no idea why; but I accepted the changes.
      3d38e828
  8. 25 Apr, 2018 1 commit
    • Andrey Mokhov's avatar
      Update Hadrian submodule · 625eea93
      Andrey Mokhov authored
        * Link to Quick Start guide
        * Update README.md (hadrian/578)
        * Fix AppVeyor (hadrian/577)
        * Fix CircleCI
        * Generic library rules (hadrian/571)
        * Fix lint error (hadrian/575)
        * Fix missing libHSghc-8.5-0.a (hadrian/574)
        * Fix the path to touchy (hadrian/572)
        * Fix integer-gmp build (hadrian/568)
        * Undo fs*.h workaround
        * Fix copying of fs*.h files during RTS registration (hadrian/566)
        * Fix Windows build, improve error reporting (hadrian/565)
        * Fix Windows build (hadrian/563)
        * Fix boot and configure on AppVeyor (hadrian/561)
        * Preliminary bindist (hadrian/558, hadrian/555)
        * Unregister stage0 package first if it needs to be
          cloned (hadrian/552)
        * Fix Circle CI (hadrian/553)
        * Fix warnings (hadrian/547)
        * Merge pull request hadrian/542 from Mistuke/fix-specific-file
        * Use Cabal directly in place of ghc-cabal + make build root
          configurable (hadrian/531)
        * Add user-defined flavour example for turning off dynamic
          linking (hadrian/535)
        * Add clean routines for fs (hadrian/533)
        * Add 'git' to nativeBuildInputs in shell.nix (hadrian/530)
        * Add extra include paths when invoking ghc-cabal (hadrian/526)
        * Merge pull request hadrian/528 from snowleopard/bump-cabal
        * Merge pull request hadrian/521 from snowleopard/drop-chmod
        * Change permission bits for build.cabal.sh,
          fixes hadrian/517 (hadrian/520)
        * Pin nixpkgs and all-cabal-hashes in shell.nix (hadrian/511)
        * Add troubleshooting section
      625eea93