1. 21 Dec, 2018 7 commits
    • Ben Gamari's avatar
      Revert "gitlab: Drop submodules hack" · a3c6f5e4
      Ben Gamari authored
      It turns out that the submodules hack is useful to ensure that
      CI works in forks.
      This reverts commit 90ceafa8.
    • Simon Peyton Jones's avatar
      Improve documention of TypeInType · e9346b53
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Fix treatment of hi-boot files and dfuns · a57d5c4d
      Simon Peyton Jones authored
      Trac #16038 exposed the fact that TcRnDriver.checkHiBootIface
      was creating a binding, in the module being compiled, for
         $fxBlah = $fBlah
       but $fxBlah was a /GlobalId/. But all bindings should be for
       /LocalIds/ else dependency analysis goes down the tubes.
      * I added a CoreLint check that an occurrence of a GlobalId
        is not bound by an binding of a LocalId.  (There is already
        a binding-site check that no binding binds a GlobalId.)
      * I refactored (and actually signficantly simplified) the
        tricky code for dfuns in checkHiBootIface to ensure that
        we get LocalIds for those boot-dfuns.
      Alas, I then got "duplicate instance" messages when compiling
      HsExpr. It turns out that this is a long-standing, but extremely
      delicate, bug: even before this patch, if you compile HsExpr
      with -ddump-tc-trace, you get "duplicate instance". Without
      -ddump-tc-trace, it's OK.  What a mess!
      The reason for the duplicate-instance is now explained in
      Note [Loading your own hi-boot file] in LoadIface.  I fixed
      it by a Gross Hack in LoadIface.loadInterface. This is at
      least no worse than before.
      But there should be a better way. I have opened #16081 for this.
    • Simon Peyton Jones's avatar
      Tiny refactor to tcExtendRecEnv · 66ce7de1
      Simon Peyton Jones authored
      In tcExtendRecEnv, there is no need to us setGlobalTypeEnv
      (which side-effects the tcg_type_env_var).  tcExtendRecEnv
      is used only when kind-checking a group of type/class decls
      and no knot-tying via tcg_type_env_var is needed.
      There is no change in functionality.
    • Simon Peyton Jones's avatar
      Comments only · 28188e06
      Simon Peyton Jones authored
    • Simon Peyton Jones's avatar
      Make candidateQTvs contain tyvar with zonked kinds · 71e26a74
      Simon Peyton Jones authored
      candidateQTyVars was failing to return fully-zonked
      tyvars, and that made things fall over chaotically
      when we try to sort them into a well-scoped telescope.
      Result: Trac #15795
      So I made candidateQTvs guarantee to have fully-zonked
      tyvars (i.e. with zonked kinds).  That's a bit annoying
      but not really difficult.
    • Ryan Scott's avatar
      Fix #16002 by moving a validity check to the renamer · 28f41f1a
      Ryan Scott authored
      The validity check which rejected things like:
      type family B x where
        A x = x
      Used to live in the typechecker. But it turns out that this validity
      check was //only// being run on closed type families without CUSKs!
      This meant that GHC would silently accept something like this:
      type family B (x :: *) :: * where
        A x = x
      This patch fixes the issue by moving this validity check to the
      renamer, where we can be sure that the check will //always// be run.
      Test Plan: make test TEST=T16002
      Reviewers: simonpj, bgamari
      Reviewed By: simonpj
      Subscribers: goldfire, rwbarton, carter
      GHC Trac Issues: #16002
      Differential Revision: https://phabricator.haskell.org/D5420
  2. 20 Dec, 2018 3 commits
  3. 19 Dec, 2018 8 commits
  4. 18 Dec, 2018 13 commits
  5. 17 Dec, 2018 9 commits