1. 16 Oct, 2020 12 commits
  2. 15 Oct, 2020 4 commits
  3. 14 Oct, 2020 8 commits
    • Ben Gamari's avatar
      users-guide: Add missing :ghc-flag: directive · 0c4bfed8
      Ben Gamari authored
      0c4bfed8
    • Simon Peyton Jones's avatar
      Fix some missed opportunities for preInlineUnconditionally · 15d2340c
      Simon Peyton Jones authored
      There are two signficant changes here:
      
      * Ticket #18815 showed that we were missing some opportunities for
        preInlineUnconditionally.  The one-line fix is in the code for
        GHC.Core.Opt.Simplify.Utils.preInlineUnconditionally, which now
        switches off only for INLINE pragmas.  I expanded
        Note [Stable unfoldings and preInlineUnconditionally] to explain.
      
      * When doing this I discovered a way in which preInlineUnconditionally
        was occasionally /too/ eager.  It's all explained in
        Note [Occurrences in stable unfoldings] in GHC.Core.Opt.OccurAnal,
        and the one-line change adding markAllMany to occAnalUnfolding.
      
      I also got confused about what NoUserInline meant, so I've renamed
      it to NoUserInlinePrag, and changed its pretty-printing slightly.
      That led to soem error messate wibbling, and touches quite a few
      files, but there is no change in functionality.
      
      I did a nofib run.  As expected, no significant changes.
      
              Program           Size    Allocs
      ----------------------------------------
               sphere          -0.0%     -0.4%
      ----------------------------------------
                  Min          -0.0%     -0.4%
                  Max          -0.0%     +0.0%
       Geometric Mean          -0.0%     -0.0%
      
      I'm allowing a max-residency increase for T10370, which seems
      very irreproducible. (See comments on !4241.)  There is always
      sampling error for max-residency measurements; and in any case
      the change shows up on some platforms but not others.
      
      Metric Increase:
          T10370
      15d2340c
    • Fumiaki Kinoshita's avatar
      Add -Wnoncanonical-{monad,monoid}-instances to standardWarnings · e60ae8a3
      Fumiaki Kinoshita authored
      ```----------------------
      Metric Decrease:
         T12425
      Metric Increase:
         T17516
      ```
      
      ----------------------
      e60ae8a3
    • Vladislav Zavialov's avatar
      Fix PostfixOperators (#18151) · bf2411a3
      Vladislav Zavialov authored
      This fixes a regression introduced in 2b89ca5b
      See the new T18151x test case.
      bf2411a3
    • Vladislav Zavialov's avatar
      Remove "Operator sections" from docs/users_guide/bugs.rst · ac300a0d
      Vladislav Zavialov authored
      The issue described in that section was fixed by
      2b89ca5b
      ac300a0d
    • Ryan Scott's avatar
      Make DataKinds the sole arbiter of kind-level literals (and friends) · 716385c9
      Ryan Scott authored
      Previously, the use of kind-level literals, promoted tuples,
      and promoted lists required enabling both `DataKinds` and
      `PolyKinds`. This made sense back in a `TypeInType` world, but not so
      much now that `TypeInType`'s role has been superseded. Nowadays,
      `PolyKinds` only controls kind polymorphism, so let's make `DataKinds`
      the thing that controls the other aspects of `TypeInType`, which include
      literals, promoted tuples and promoted lists.
      
      There are some other things that overzealously required `PolyKinds`,
      which this patch fixes as well:
      
      * Previously, using constraints in kinds (e.g., `data T :: () -> Type`)
        required `PolyKinds`, despite the fact that this is orthogonal to kind
        polymorphism. This now requires `DataKinds` instead.
      * Previously, using kind annotations in kinds
        (e.g., `data T :: (Type :: Type) -> Type`) required both `KindSignatures`
        and `PolyKinds`. This doesn't make much sense, so it only requires
        `KindSignatures` now.
      
      Fixes #18831.
      716385c9
    • Ben Gamari's avatar
      Bump LLVM version to 10.0 · 89f4d8e9
      Ben Gamari authored
      Fixes #18267.
      89f4d8e9
    • Ben Gamari's avatar
      gitlab-ci: Verify that Hadrian builds with Stack · 0fc1cb54
      Ben Gamari authored
      As noted in #18726, this regularly breaks. Let's test it.
      
      Note that we don't actually perform a build of GHC itself; we merely
      test that the Hadrian executable builds and works (by invoking `hadrian
      --version`).
      0fc1cb54
  4. 13 Oct, 2020 3 commits
    • Rinat Striungis's avatar
      Unification of Nat and Naturals · 8f4f5794
      Rinat Striungis authored
      This commit removes the separate kind 'Nat' and enables promotion
      of type 'Natural' for using as type literal.
      It partially solves #10776
      
      Now the following code will be successfully typechecked:
          data C = MkC Natural
          type CC = MkC 1
      
      Before this change we had to create the separate type for promotion
          data C = MkC Natural
          data CP = MkCP Nat
          type CC = MkCP 1
      
      But CP is uninhabited in terms.
      
      For backward compatibility type synonym `Nat` has been made:
          type Nat = Natural
      
      The user's documentation and tests have been updated.
      The haddock submodule also have been updated.
      8f4f5794
    • Sylvain Henry's avatar
      Parser: don't require the HomeUnitId · 0a5f2918
      Sylvain Henry authored
      The HomeUnitId is only used by the Cmm parser and this one has access to
      the DynFlags, so it can grab the UnitId of the HomeUnit from them.
      
      Bump haddock submodule
      0a5f2918
    • Wander Hillen's avatar
      Initial ShortText code and conversion of package db code · 7fdcce6d
      Wander Hillen authored
      Metric Decrease:
          Naperian
          T10421
          T10421a
          T10547
          T12150
          T12234
          T12425
          T13035
          T18140
          T18304
          T5837
          T6048
          T13253-spj
          T18282
          T18223
          T3064
          T9961
      Metric Increase
          T13701
      
      HFSKJH
      7fdcce6d
  5. 12 Oct, 2020 1 commit
  6. 11 Oct, 2020 2 commits
    • Danya Rogozin's avatar
      Fall back to types when looking up data constructors (#18740) · 990ea991
      Danya Rogozin authored
      Before this patch, referring to a data constructor in a term-level
      context led to a scoping error:
      
          ghci> id Int
          <interactive>:1:4: error: Data constructor not in scope: Int
      
      After this patch, the renamer falls back to the type namespace
      and successfully finds the Int. It is then rejected in the type
      checker with a more useful error message:
      
          <interactive>:1:4: error:
          • Illegal term-level use of the type constructor ‘Int’
              imported from ‘Prelude’ (and originally defined in ‘GHC.Types’)
          • In the first argument of ‘id’, namely ‘Int’
            In the expression: id Int
      
      We also do this for type variables.
      990ea991
    • Hécate Moonlight's avatar
      274e21f0
  7. 10 Oct, 2020 3 commits
  8. 09 Oct, 2020 7 commits