1. 31 Jul, 2019 3 commits
    • 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.
    • Ben Gamari's avatar
      gitignore: Add .mypy_cache · b6fa7fe3
      Ben Gamari authored
    • Ben Gamari's avatar
      Break up TyCoRep · 371dadfb
      Ben Gamari authored
      This breaks up the monstrous TyCoReps module into several new modules by
       * 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:
  2. 30 Jul, 2019 2 commits
  3. 29 Jul, 2019 2 commits
  4. 28 Jul, 2019 2 commits
  5. 26 Jul, 2019 6 commits
    • Alex D's avatar
      Add regression test for #16946 · 26314386
      Alex D authored
    • Adam Sandberg Eriksson's avatar
    • Vladislav Zavialov's avatar
    • Vladislav Zavialov's avatar
      TemplateHaskell: reifyType (#16976) · 00d9d284
      Vladislav Zavialov authored
    • Alex D's avatar
      Change behaviour of -ddump-cmm-verbose to dump each Cmm pass output to a... · aae0457f
      Alex D authored
      Change behaviour of -ddump-cmm-verbose to dump each Cmm pass output to a separate file and add -ddump-cmm-verbose-by-proc to keep old behaviour (#16930)
    • Ryan Scott's avatar
      Banish reportFloatingViaTvs to the shadow realm (#15831, #16181) · 30b6f391
      Ryan Scott authored
      GHC used to reject programs of this form:
      newtype Age = MkAge Int
        deriving Eq via Const Int a
      That's because an earlier implementation of `DerivingVia` would
      generate the following instance:
      instance Eq Age where
        (==) = coerce @(Const Int a -> Const Int a -> Bool)
                      @(Age         -> Age         -> Bool)
      Note that the `a` in `Const Int a` is not bound anywhere, which
      causes all sorts of issues. I figured that no one would ever want to
      write code like this anyway, so I simply banned "floating" `via` type
      variables like `a`, checking for their presence in the aptly named
      `reportFloatingViaTvs` function.
      `reportFloatingViaTvs` ended up being implemented in a subtly
      incorrect way, as #15831 demonstrates. Following counsel with the
      sage of gold fire, I decided to abandon `reportFloatingViaTvs`
      entirely and opt for a different approach that would _accept_
      the instance above. This is because GHC now generates this instance
      instance forall a. Eq Age where
        (==) = coerce @(Const Int a -> Const Int a -> Bool)
                      @(Age         -> Age         -> Bool)
      Notice that we now explicitly quantify the `a` in
      `instance forall a. Eq Age`, so everything is peachy scoping-wise.
      See `Note [Floating `via` type variables]` in `TcDeriv` for the full
      A pleasant benefit of this refactoring is that it made it much easier
      to catch the problem observed in #16181, so this patch fixes that
      issue too.
      Fixes #15831. Fixes #16181.
  6. 25 Jul, 2019 4 commits
  7. 24 Jul, 2019 4 commits
    • Ben Gamari's avatar
      gitlab-ci: Fix source tarball job · d0f8ed20
      Ben Gamari authored
      * Use show! in source tarball job. Since we aren't actually building
        anything in this job `show` won't
      * Fix Docker image name
      * Make `version` file contain only version string
    • John Ericson's avatar
      Make stage 1 GHC target independent · b95b6380
      John Ericson authored
      Now that the target macros are not being used, we remove them. This
      prevents target hardcoding regressions.
    • Richard Eisenberg's avatar
    • Alp Mestanogullari's avatar
      Hadrian: run the testsuite in Windows CI job · 6ade71fb
      Alp Mestanogullari authored
      Since MR !1025 fixed the Windows build, allowing us to build a binary
      distribution, we can now run the testsuite in that CI job.
      This required fixing 'createFileLink': it should not try to create
      symlinks on Windows (that requires admin priviledges, which Hadrian can't
      assume). We now instead fall back to copying.
      This patch also removes some duplicated logic for iserv in the test rules,
      where we handle our dependency on the iserv binaries in a special way.
  8. 23 Jul, 2019 2 commits
  9. 21 Jul, 2019 4 commits
    • Ben Gamari's avatar
      ghc-cabal: Use fromFlagOrDefault instead of fromFlag · 4854a349
      Ben Gamari authored
      As fromFlag is partial. The only case where we used fromFlag is when
      determining whether to strip libraries; we now assume that we shouldn't.
    • Roland Senn's avatar
      Fix #8487: Debugger confuses variables · 32be4461
      Roland Senn authored
      To display the free variables for a single breakpoint, GHCi pulls out the
      information from the fields `modBreaks_breakInfo` and `modBreaks_vars`
      of the `ModBreaks` data structure. For a specific breakpoint this gives 2
      lists of types 'Id` (`Var`) and `OccName`. They are used to create the Id's
      for the free variables and must be kept in sync:
      If we remove an element from the Names list, then we also must remove the
      corresponding element from the OccNames list.
    • Ivan Kasatenko's avatar
      Do not ignore events deletion when events to be added are provided (#16916) · 67ee741b
      Ivan Kasatenko authored
      Kqueue/kevent implementation used to ignore events to be unsubscribed
      from when events to be subscribed to were provided. This resulted in a
      lost notification subscription, when GHC runtime didn't listen for any
      events, yet the kernel considered otherwise and kept waking up the IO
      manager thread.
      This commit fixes this issue by always adding and removing all of the
      provided subscriptions.
    • Andreas Klebinger's avatar
      Expose the GhcPrelude module. · 5042ba9d
      Andreas Klebinger authored
      This makes it simpler to load Modules importing it
      when using ghc-the-package.
      Metric Decrease:
  10. 20 Jul, 2019 4 commits
  11. 19 Jul, 2019 7 commits