1. 07 Aug, 2019 11 commits
  2. 04 Aug, 2019 6 commits
    • Ben Gamari's avatar
      testsuite: Rework tracking of fragile tests · 6e5dfcd2
      Ben Gamari authored
      Breaks fragile tests into two groups, allowing us to easily preserve
      stdout/stderr of failing fragile tests.
      6e5dfcd2
    • Ben Gamari's avatar
      configure: Search for LLVM executables with two-number versions · 2e031806
      Ben Gamari authored
      Fedora uses the naming llc-7.0 while Debian uses llc-7. Ensure that both
      are found.
      
      Fixes #16990.
      2e031806
    • Ben Gamari's avatar
      testsuite: Add testsuite for #16978 · 3b31a94d
      Ben Gamari authored
      3b31a94d
    • Simon Peyton Jones's avatar
      Don't float unlifted join points to top level · 7d8d0012
      Simon Peyton Jones authored
      Ticket #16978 showed that we were floating a recursive,
      unlifted join point to top level.  It's very much a corner
      case:
      
          joinrec j :: Int#
                  j = jump j
          in ...
      
      But somehow it showed up in a real program.
      
      For non-recursive bindings in SetLevels.lvlBind we were already
      (correctly) checking for unlifted bindings, but when I wrote
      that code I didn't think that a /recursive/ binding could be
      unlifted but /join-points/ can be!
      
      Actually I don't think that SetLevels should be floating
      join points at all.  SetLevels really floats things to move
      stuff out of loops and save allocation; but none of that applies
      to join points.  The only reason to float join points is in
      cases like
         join j1 x = join j2 y = ...
                     in ...
      which we might want to swizzle to
         join j2 x y = ... in
         join j1 x = ...
         in ...
      because now j1 looks small and might be inlined away altogether.
      But this is a very local float perhaps better done in the simplifier.
      
      Still: this patch fixes the crash, and does so in a way that is
      harmless if/when we change our strategy for floating join points.
      7d8d0012
    • Matthew Pickering's avatar
      Update .gitignore · 8a061d18
      Matthew Pickering authored
      Add some files generated by hadrian and some tooling files
      8a061d18
    • Ben Gamari's avatar
      gitlab-ci: Manually set SPHINXBUILD on Windows · 7e404afd
      Ben Gamari authored
      For some reason configure seems unable to find it on its own. Let's try
      giving it a hint.
      
      Addresses #16398.
      7e404afd
  3. 03 Aug, 2019 5 commits
  4. 02 Aug, 2019 5 commits
    • Adam Sandberg Eriksson's avatar
      5e960287
    • Krzysztof Gogolewski's avatar
      Remove build.nix.sh · c902f56b
      Krzysztof Gogolewski authored
      This file refers to shell.nix, which was removed in
      430e6fed and c00d2f59.
      c902f56b
    • Ryan Scott's avatar
      Use injectiveVarsOfType to catch dodgy type family instance binders (#17008) · 93bed40a
      Ryan Scott authored
      Previously, we detected dodgy type family instances binders by
      expanding type synonyms (via `exactTyCoVarsOfType`) and looking for
      type variables on the RHS that weren't mentioned on the (expanded)
      LHS. But this doesn't account for type families (like the example
      in #17008), so we instead use `injectiveVarsOfType` to only count
      LHS type variables that are in injective positions. That way, the `a`
      in `type instance F (x :: T a) = a` will not count if `T` is a type
      synonym _or_ a type family.
      
      Along the way, I moved `exactTyCoVarsOfType` to `TyCoFVs` to live
      alongside its sibling functions that also compute free variables.
      
      Fixes #17008.
      93bed40a
    • Ryan Scott's avatar
      Rip out 9-year-old pattern variable hack (#17007) · 1b9d32b8
      Ryan Scott authored
      GHC had an ad hoc validity check in place to rule out pattern
      variables bound by type synonyms, such as in the following example:
      
      ```hs
      type ItemColID a b = Int  -- Discards a,b
      
      get :: ItemColID a b -> ItemColID a b
      get (x :: ItemColID a b) = x :: ItemColID a b
      ```
      
      This hack is wholly unnecessary nowadays, since OutsideIn(X) is more
      than capable of instantiating `a` and `b` to `Any`. In light of this,
      let's rip out this validity check.
      
      Fixes #17007.
      1b9d32b8
    • Andreas Klebinger's avatar
      Add StandaloneDeriving example for DerivingVia. · 95521140
      Andreas Klebinger authored
      [skip-ci]
      95521140
  5. 01 Aug, 2019 1 commit
    • Ivan Kasatenko's avatar
      Fix T16916 CI failures (#16966) · 986643cb
      Ivan Kasatenko authored
      1. Slightly increased the waiting time for the tested effect to be more
         profound.
      
      2. Introduced measuring of the actual time spent waiting and adjusing
         CPU time by it to compensate for threadDelay waiting time
         inconsistencies.
      986643cb
  6. 31 Jul, 2019 5 commits
    • Ben Gamari's avatar
      gitlab-ci: Fix it after upgrade · 5e04841c
      Ben Gamari authored
      It seems that the regular expression parser changed in GitLab 12.1 and
      now does now support forward slashes in the RE, even when escaped.
      5e04841c
    • Ben Gamari's avatar
      Work around redundant import issue · 787fab43
      Ben Gamari authored
      As mentioned in #16997, GHC currently complains about this import.
      In general I'm reluctant to paper over things like this but in the case
      of an hs-boot file I think adding an import list is the right thing to
      do regardless of the bug.
      787fab43
    • Ben Gamari's avatar
      Move tyConAppNeedsKindSig to Type · 88410e77
      Ben Gamari authored
      Previously it was awkwardly in TyCoFVs (and before that in TyCoRep).
      Type seems like a sensible place for it to live.
      88410e77
    • Ben Gamari's avatar
      gitignore: Add .mypy_cache · b6fa7fe3
      Ben Gamari authored
      b6fa7fe3
    • Ben Gamari's avatar
      Break up TyCoRep · 371dadfb
      Ben Gamari authored
      This breaks up the monstrous TyCoReps module into several new modules by
      topic:
      
       * TyCoRep: Contains the `Coercion`, `Type`, and related type
         definitions and a few simple predicates but nothing further
      
       * TyCoPpr: Contains the the pretty-printer logic
      
       * TyCoFVs: Contains the free variable computations (and
         `tyConAppNeedsKindSig`, although I suspect this should change)
      
       * TyCoSubst: Contains the substitution logic for types and coercions
      
       * TyCoTidy: Contains the tidying logic for types
      
      While we are able to eliminate a good number of `SOURCE` imports (and
      make a few others smaller) with this change, we must introduce one new
      `hs-boot` file for `TyCoPpr` so that `TyCoRep` can define `Outputable`
      instances for the types it defines.
      
      Metric Increase:
          haddock.Cabal
          haddock.compiler
      371dadfb
  7. 30 Jul, 2019 2 commits
  8. 29 Jul, 2019 2 commits
  9. 28 Jul, 2019 2 commits
  10. 26 Jul, 2019 1 commit