ghc-lib 8.10.3.20201220 → 8.10.4.20210206
raw patch · 4 files changed
+37/−4 lines, 4 filesdep ~ghc-lib-parserPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: ghc-lib-parser
API changes (from Hackage documentation)
Files
- compiler/deSugar/DsForeign.hs +4/−1
- compiler/typecheck/TcTyClsDecls.hs +30/−0
- ghc-lib.cabal +2/−2
- ghc-lib/stage0/lib/ghcversion.h +1/−1
compiler/deSugar/DsForeign.hs view
@@ -682,7 +682,10 @@ -- See Note [Tracking foreign exports] in rts/ForeignExports.c vcat [ text "static struct ForeignExportsList" <+> list_symbol <+> equals- <+> braces (text ".exports = " <+> export_list) <> semi+ <+> braces (+ text ".exports = " <+> export_list <> comma <+>+ text ".n_entries = " <+> ppr (length hs_fns))+ <> semi , text "static void " <> ctor_symbol <> text "(void)" <+> text " __attribute__((constructor));" , text "static void " <> ctor_symbol <> text "()"
compiler/typecheck/TcTyClsDecls.hs view
@@ -2747,6 +2747,9 @@ -- GHC.Rename.Source tcInferApps typeLevelMode lhs_fun fun_ty hs_pats + -- Hack alert: see Note [tcFamTyPats: zonking the result kind]+ ; res_kind <- zonkTcType res_kind+ ; traceTc "End tcFamTyPats }" $ vcat [ ppr fam_tc, text "res_kind:" <+> ppr res_kind ] @@ -2755,6 +2758,33 @@ fam_name = tyConName fam_tc fam_arity = tyConArity fam_tc lhs_fun = noLoc (HsTyVar noExtField NotPromoted (noLoc fam_name))++{- Note [tcFamTyPats: zonking the result kind]+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~+Consider (#19250)+ F :: forall k. k -> k+ type instance F (x :: Constraint) = ()++The tricky point is this:+ is that () an empty type tuple (() :: Type), or+ an empty constraint tuple (() :: Constraint)?+We work this out in a hacky way, by looking at the expected kind:+see Note [Inferring tuple kinds].++In this case, we kind-check the RHS using the kind gotten from the LHS:+see the call to tcCheckLHsType in tcTyFamInstEqnGuts in GHC.Tc.Tycl.++But we want the kind from the LHS to be /zonked/, so that when+kind-checking the RHS (tcCheckLHsType) we can "see" what we learned+from kind-checking the LHS (tcFamTyPats). In our example above, the+type of the LHS is just `kappa` (by instantiating the forall k), but+then we learn (from x::Constraint) that kappa ~ Constraint. We want+that info when kind-checking the RHS.++Easy solution: just zonk that return kind. Of course this won't help+if there is lots of type-family reduction to do, but it works fine in+common cases.+-} unravelFamInstPats :: TcType -> [TcType] -- Decompose fam_app to get the argument patterns
ghc-lib.cabal view
@@ -1,7 +1,7 @@ cabal-version: >=1.22 build-type: Simple name: ghc-lib-version: 8.10.3.20201220+version: 8.10.4.20210206 license: BSD3 license-file: LICENSE category: Development@@ -80,7 +80,7 @@ transformers == 0.5.*, process >= 1 && < 1.7, hpc == 0.6.*,- ghc-lib-parser == 8.10.3.20201220+ ghc-lib-parser == 8.10.4.20210206 build-tools: alex >= 3.1, happy >= 1.19.4 other-extensions: BangPatterns
ghc-lib/stage0/lib/ghcversion.h view
@@ -5,7 +5,7 @@ # define __GLASGOW_HASKELL__ 810 #endif -#define __GLASGOW_HASKELL_PATCHLEVEL1__ 3+#define __GLASGOW_HASKELL_PATCHLEVEL1__ 4 #define MIN_VERSION_GLASGOW_HASKELL(ma,mi,pl1,pl2) (\ ((ma)*100+(mi)) < __GLASGOW_HASKELL__ || \