1. 10 Jan, 2021 10 commits
  2. 07 Jan, 2021 14 commits
  3. 05 Jan, 2021 1 commit
    • Sylvain Henry's avatar
      Implement Unique supply with Addr# atomic primop · 6c771aaf
      Sylvain Henry authored
      Before this patch the compiler depended on the RTS way (threaded or not)
      to use atomic incrementation or not. This is wrong because the RTS is
      supposed to be switchable at link time, without recompilation.
      
      Now we always use atomic incrementation of the unique counter.
      6c771aaf
  4. 03 Jan, 2021 3 commits
  5. 02 Jan, 2021 12 commits
    • Simon Peyton Jones's avatar
      Add regression test for #18467 · ee1161d3
      Simon Peyton Jones authored
      ee1161d3
    • Simon Peyton Jones's avatar
      Don't use absentError thunks for strict constructor fields · a8926e95
      Simon Peyton Jones authored
      This patch fixes #19133 by using LitRubbish for strict constructor
      fields, even if they are of lifted types.  Previously LitRubbish
      worked only for unlifted (but boxed) types.
      
      The change is very easy, although I needed a boolean field in
      LitRubbish to say whether or not it is lifted.  (That seemed easier
      than giving it another type argument.
      
      This is preparing for Andreas's work on establishing the invariant
      that strict constructor fields are always tagged and evaluated
      (see #16970).
      
      Meanwhile, nothing was actually wrong before, so there are no tests.
      a8926e95
    • Asad Saeeduddin's avatar
      cc87bda6
    • Oleg Grenrus's avatar
      Correct doctests · aa17b84d
      Oleg Grenrus authored
      It's simpler to assume that base is NoImplicitPrelude,
      otherwise running doctest on `GHC.*` modules would be tricky.
      OTOH, most `GHC.List` (where the most name clashes are) examples
      could be changed to use `import qualified Data.List as L`.
      (GHC.List examples won't show for Foldable methods...).
      
      With these changes majority of doctest examples are GHCi-"faithful",
      my WIP GHC-independent doctest runner reports nice summary:
      
      Examples: 582; Tried: 546; Skipped: 34; Success: 515; Errors: 33; Property Failures 2
      
      Most error cases are *Hangs forever*.
      I have yet to figure out how to demonstrate that in GHCi.
      Some of divergences are actually stack overflows, i.e. caught by
      runtime.
      
      Few errorful cases are examples of infinite output, e.g.
      
          >>> cycle [42]
          [42,42,42,42,42,42,42,42,42,42...
      
      while correct, they confuse doctest.
      
      Another erroneous cases are where expected output has line comment, like
      
          >>> fmap show (Just 1)  --  (a   -> b)      -> f a       -> f b
          Just "1"                --  (Int -> String) -> Maybe Int -> Maybe String
      
      I think I just have to teach doctest to strip comments from expected
      output.
      
      This is a first patch in a series.
      There is plenty of stuff already.
      aa17b84d
    • Hécate Moonlight's avatar
    • Hécate Moonlight's avatar
    • Douglas Wilson's avatar
      rts: update usage text for new -A default · d9788fd2
      Douglas Wilson authored
      d9788fd2
    • Joachim Breitner's avatar
      Docs: Remove reference to `type_applications` in `exts/patterns.rst` · c2a007c7
      Joachim Breitner authored
      it is unclear why it is there, and it is _also_ linked from
      `exts/types.rst`.
      c2a007c7
    • Simon Peyton Jones's avatar
      Establish invariant (GivenInv) · 5650c79e
      Simon Peyton Jones authored
      This patch establishes invariant (GivenInv) from GHC.Tc.Utils.TcType
      Note [TcLevel invariants].  (GivenInv) says that unification variables
      from level 'n' should not appear in the Givens for level 'n'.  See
      Note [GivenInv] in teh same module.
      
      This invariant was already very nearly true, but a dark corner of
      partial type signatures made it false.  The patch re-jigs partial type
      signatures a bit to avoid the problem, and documents the invariant
      much more thorughly
      
      Fixes #18646 along the way: see Note [Extra-constraints wildcards]
      in GHC.Tc.Gen.Bind
      
      I also simplified the interface to tcSimplifyInfer slightly, so that
      it /emits/ the residual constraint, rather than /returning/ it.
      5650c79e
    • Ben Gamari's avatar
      rts/Messages: Relax locked-closure assertion · 87bc458d
      Ben Gamari authored
      In general we are less careful about locking closures when running with
      only a single capability.
      
      Fixes #19075.
      87bc458d
    • Artem Pelenitsyn's avatar
      77c4a15f
    • Sylvain Henry's avatar
      Make proper fixed-width number literals · 85d899c8
      Sylvain Henry authored
      (Progress towards #11953, #17377, #17375)
      
      Besides being nicer to use, this also will allow for better constant
      folding for the fixed-width types, on par with what `Int#` and `Word#`
      have today.
      85d899c8