<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div class="">Hi,</div><div class=""><br class=""></div><div class="">This patch causes a regression from GHC 7.10 with regards to constraint kinds.</div><div class="">Where previously, constraint tuples could go up to 62, the same as normal tuples, they have now been reduced to 8.</div><div class="">I filed a bug report at: <a href="https://ghc.haskell.org/trac/ghc/ticket/10451" class="">https://ghc.haskell.org/trac/ghc/ticket/10451</a></div><div class=""><br class=""></div><div class="">Regards,</div><div class=""><br class=""></div><div class="">Christiaan</div><br class=""><div><blockquote type="cite" class=""><div class="">On 18 May 2015, at 14:45, <a href="mailto:git@git.haskell.org" class="">git@git.haskell.org</a> wrote:</div><br class="Apple-interchange-newline"><div class="">Repository : <a href="ssh://git@git.haskell.org/ghc" class="">ssh://git@git.haskell.org/ghc</a><br class=""><br class="">On branch : master<br class="">Link : <a href="http://ghc.haskell.org/trac/ghc/changeset/ffc21506894c7887d3620423aaf86bc6113a1071/ghc" class="">http://ghc.haskell.org/trac/ghc/changeset/ffc21506894c7887d3620423aaf86bc6113a1071/ghc</a><br class=""><br class=""><blockquote type="cite" class="">---------------------------------------------------------------<br class=""></blockquote><br class="">commit ffc21506894c7887d3620423aaf86bc6113a1071<br class="">Author: Simon Peyton Jones <<a href="mailto:simonpj@microsoft.com" class="">simonpj@microsoft.com</a>><br class="">Date: Mon May 11 23:19:14 2015 +0100<br class=""><br class=""> Refactor tuple constraints<br class=""><br class=""> Make tuple constraints be handled by a perfectly ordinary<br class=""> type class, with the component constraints being the<br class=""> superclasses:<br class=""> class (c1, c2) => (c2, c2)<br class=""><br class=""> This change was provoked by<br class=""><br class=""> #10359 inability to re-use a given tuple<br class=""> constraint as a whole<br class=""><br class=""> #9858 confusion between term tuples<br class=""> and constraint tuples<br class=""><br class=""> but it's generally a very nice simplification. We get rid of<br class=""> - In Type, the TuplePred constructor of PredTree,<br class=""> and all the code that dealt with TuplePreds<br class=""> - In TcEvidence, the constructors EvTupleMk, EvTupleSel<br class=""><br class=""> See Note [How tuples work] in TysWiredIn.<br class=""><br class=""> Of course, nothing is ever entirely simple. This one<br class=""> proved quite fiddly.<br class=""><br class=""> - I did quite a bit of renaming, which makes this patch<br class=""> touch a lot of modules. In partiuclar tupleCon -> tupleDataCon.<br class=""><br class=""> - I made constraint tuples known-key rather than wired-in.<br class=""> This is different to boxed/unboxed tuples, but it proved<br class=""> awkward to have all the superclass selectors wired-in.<br class=""> Easier just to use the standard mechanims.<br class=""><br class=""> - While I was fiddling with known-key names, I split the TH Name<br class=""> definitions out of DsMeta into a new module THNames. That meant<br class=""> that the known-key names can all be gathered in PrelInfo, without<br class=""> causing module loops.<br class=""><br class=""> - I found that the parser was parsing an import item like<br class=""> T( .. )<br class=""> as a *data constructor* T, and then using setRdrNameSpace to<br class=""> fix it. Stupid! So I changed the parser to parse a *type<br class=""> constructor* T, which means less use of setRdrNameSpace.<br class=""><br class=""> I also improved setRdrNameSpace to behave better on Exact Names.<br class=""> Largely on priciple; I don't think it matters a lot.<br class=""><br class=""> - When compiling a data type declaration for a wired-in thing like<br class=""> tuples (,), or lists, we don't really need to look at the<br class=""> declaration. We have the wired-in thing! And not doing so avoids<br class=""> having to line up the uniques for data constructor workers etc.<br class=""> See Note [Declarations for wired-in things]<br class=""><br class=""> - I found that FunDeps.oclose wasn't taking superclasses into<br class=""> account; easily fixed.<br class=""><br class=""> - Some error message refactoring for invalid constraints in TcValidity<br class=""><br class=""> - Haddock needs to absorb the change too; so there is a submodule update<br class=""><br class=""><br class=""><blockquote type="cite" class="">---------------------------------------------------------------<br class=""></blockquote><br class="">ffc21506894c7887d3620423aaf86bc6113a1071<br class=""> compiler/basicTypes/BasicTypes.hs | 21 +-<br class=""> compiler/basicTypes/DataCon.hs | 1 -<br class=""> compiler/basicTypes/RdrName.hs | 28 +-<br class=""> compiler/basicTypes/Unique.hs | 28 +-<br class=""> compiler/basicTypes/VarSet.hs | 23 +-<br class=""> compiler/coreSyn/CoreLint.hs | 2 +-<br class=""> compiler/coreSyn/MkCore.hs | 7 +-<br class=""> compiler/coreSyn/PprCore.hs | 4 +-<br class=""> compiler/deSugar/Check.hs | 2 +-<br class=""> compiler/deSugar/DsArrows.hs | 2 +-<br class=""> compiler/deSugar/DsBinds.hs | 25 +-<br class=""> compiler/deSugar/DsCCall.hs | 6 +-<br class=""> compiler/deSugar/DsExpr.hs | 5 +-<br class=""> compiler/deSugar/DsMeta.hs | 840 +--------------------<br class=""> compiler/deSugar/Match.hs | 4 +-<br class=""> compiler/ghc.cabal.in | 3 +-<br class=""> compiler/ghci/RtClosureInspect.hs | 7 +-<br class=""> compiler/hsSyn/Convert.hs | 4 +-<br class=""> compiler/hsSyn/HsExpr.hs | 3 +-<br class=""> compiler/hsSyn/HsPat.hs | 35 +-<br class=""> compiler/hsSyn/HsTypes.hs | 2 +-<br class=""> compiler/iface/BinIface.hs | 14 +-<br class=""> compiler/iface/BuildTyCl.hs | 4 +<br class=""> compiler/iface/IfaceSyn.hs | 9 +-<br class=""> compiler/iface/IfaceType.hs | 154 ++--<br class=""> compiler/iface/TcIface.hs | 84 ++-<br class=""> compiler/main/Constants.hs | 3 +<br class=""> compiler/main/HscMain.hs | 11 +-<br class=""> compiler/parser/Parser.y | 20 +-<br class=""> compiler/parser/RdrHsSyn.hs | 164 +++-<br class=""> compiler/prelude/PrelInfo.hs | 28 +-<br class=""> compiler/prelude/PrelNames.hs | 17 -<br class=""> compiler/prelude/PrelRules.hs | 6 +-<br class=""> compiler/prelude/PrimOp.hs | 2 +-<br class=""> compiler/prelude/THNames.hs | 836 ++++++++++++++++++++<br class=""> compiler/prelude/TysWiredIn.hs | 269 ++++---<br class=""> compiler/rename/RnEnv.hs | 1 +<br class=""> compiler/rename/RnNames.hs | 42 +-<br class=""> compiler/rename/RnSplice.hs | 6 +-<br class=""> compiler/simplStg/UnariseStg.hs | 10 +-<br class=""> compiler/specialise/Specialise.hs | 3 +-<br class=""> compiler/stranal/WwLib.hs | 6 +-<br class=""> compiler/typecheck/FunDeps.hs | 32 +-<br class=""> compiler/typecheck/TcBinds.hs | 52 +-<br class=""> compiler/typecheck/TcCanonical.hs | 32 -<br class=""> compiler/typecheck/TcErrors.hs | 2 -<br class=""> compiler/typecheck/TcEvidence.hs | 15 +-<br class=""> compiler/typecheck/TcExpr.hs | 10 +-<br class=""> compiler/typecheck/TcGenDeriv.hs | 15 +-<br class=""> compiler/typecheck/TcHsSyn.hs | 5 +-<br class=""> compiler/typecheck/TcHsType.hs | 15 +-<br class=""> compiler/typecheck/TcInstDcls.hs | 4 +-<br class=""> compiler/typecheck/TcInteract.hs | 11 +-<br class=""> compiler/typecheck/TcMType.hs | 1 -<br class=""> compiler/typecheck/TcPat.hs | 2 +-<br class=""> compiler/typecheck/TcRnMonad.hs | 4 +<br class=""> compiler/typecheck/TcSimplify.hs | 1 -<br class=""> compiler/typecheck/TcSplice.hs | 2 +-<br class=""> compiler/typecheck/TcTyClsDecls.hs | 20 +-<br class=""> compiler/typecheck/TcType.hs | 3 -<br class=""> compiler/typecheck/TcValidity.hs | 186 +++--<br class=""> compiler/types/TyCon.hs | 34 +-<br class=""> compiler/types/Type.hs | 7 +-<br class=""> compiler/types/TypeRep.hs | 11 +-<br class=""> compiler/vectorise/Vectorise/Builtins/Base.hs | 2 +-<br class=""> .../vectorise/Vectorise/Builtins/Initialise.hs | 2 +-<br class=""> compiler/vectorise/Vectorise/Utils/Closure.hs | 4 +-<br class=""> libraries/ghc-prim/GHC/Classes.hs | 44 +-<br class=""> libraries/ghc-prim/GHC/Tuple.hs | 242 +++---<br class=""> libraries/ghc-prim/GHC/Types.hs | 2 +-<br class=""> .../should_fail/NotRelaxedExamples.stderr | 17 +-<br class=""> .../indexed-types/should_fail/TyFamUndec.stderr | 17 +-<br class=""> testsuite/tests/module/all.T | 2 +-<br class=""> testsuite/tests/module/mod89.hs | 2 +<br class=""> testsuite/tests/module/mod89.stderr | 10 +-<br class=""> .../tests/typecheck/should_fail/T9858a.stderr | 2 +-<br class=""> .../tests/typecheck/should_fail/fd-loop.stderr | 12 +-<br class=""> .../tests/typecheck/should_fail/tcfail108.stderr | 4 +-<br class=""> .../tests/typecheck/should_fail/tcfail154.stderr | 6 +-<br class=""> .../tests/typecheck/should_fail/tcfail157.stderr | 12 +-<br class=""> .../tests/typecheck/should_fail/tcfail213.stderr | 4 +-<br class=""> .../tests/typecheck/should_fail/tcfail214.stderr | 8 +-<br class=""> .../tests/typecheck/should_fail/tcfail220.hsig | 1 -<br class=""> .../tests/typecheck/should_fail/tcfail220.stderr | 8 -<br class=""> utils/genprimopcode/Main.hs | 49 +-<br class=""> utils/haddock | 2 +-<br class=""> 86 files changed, 1985 insertions(+), 1672 deletions(-)<br class=""><br class="">Diff suppressed because of size. To see it, use:<br class=""><br class=""> git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc ffc21506894c7887d3620423aaf86bc6113a1071<br class="">_______________________________________________<br class="">ghc-commits mailing list<br class=""><a href="mailto:ghc-commits@haskell.org" class="">ghc-commits@haskell.org</a><br class="">http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-commits<br class=""></div></blockquote></div><br class=""></body></html>