[Git][ghc/ghc][wip/T23162-spj] 11 commits: Big increment in rewriter tracking
Simon Peyton Jones pushed to branch wip/T23162-spj at Glasgow Haskell Compiler / GHC Commits: 2842aa8a by Simon Peyton Jones at 2025-10-22T09:20:06+01:00 Big increment in rewriter tracking Needs more documentation More tidying up of rewriter sets - - - - - 087641b7 by Simon Peyton Jones at 2025-10-22T09:20:06+01:00 Do not treat CoercionHoles as free variables in coercions This fixes a long-standing wart in the free-variable finder; now CoercionHoles are no longer treated as a "free variable" of a coercion. I got big and unexpected performance regressions when making this change. Turned out that CallArity didn't discover that the free variable finder could be eta-expanded, which gave very poor code. So I re-used Note [The one-shot state monad trick] for Endo, resulting in GHC.Utils.EndoOS. Very simple, big win. - - - - - 5728c534 by Simon Peyton Jones at 2025-10-22T09:20:06+01:00 Fix buglet in solving equalities from QCIs - - - - - 6fb8ad25 by Simon Peyton Jones at 2025-10-22T09:20:06+01:00 Improve equality checking for foralls a bit ...by re-using the TcEvBindsVar - - - - - fed02e8e by Simon Peyton Jones at 2025-10-22T09:20:06+01:00 Update debug-tracing in CallArity No effect on behaviour, and commented out anyway - - - - - 50ee09d4 by Simon Peyton Jones at 2025-10-22T09:20:06+01:00 Wibble Endo - - - - - ba99fc22 by Simon Peyton Jones at 2025-10-22T09:20:06+01:00 Wibble CoercionHole free vars - - - - - 2d13e782 by Simon Peyton Jones at 2025-10-22T09:20:06+01:00 Wibble improve forall - - - - - ddcd5a28 by Simon Peyton Jones at 2025-10-22T09:20:07+01:00 Comments only -- remove dangling Note references - - - - - 7da8daaf by Simon Peyton Jones at 2025-10-22T13:10:48+01:00 Accept error message wibbles - - - - - df22e143 by Simon Peyton Jones at 2025-10-22T13:11:02+01:00 More rewriter-set refactoring * Introduce and use CoercionPlusHoles * More documentation - - - - - 36 changed files: - compiler/GHC/Core/Opt/CallArity.hs - compiler/GHC/Core/Opt/Simplify/Iteration.hs - compiler/GHC/Core/Opt/Simplify/Utils.hs - compiler/GHC/Core/TyCo/FVs.hs - compiler/GHC/Core/TyCo/Rep.hs - compiler/GHC/Runtime/Eval.hs - compiler/GHC/Tc/Errors.hs - compiler/GHC/Tc/Errors/Types.hs - compiler/GHC/Tc/Solver/Default.hs - compiler/GHC/Tc/Solver/Dict.hs - compiler/GHC/Tc/Solver/Equality.hs - compiler/GHC/Tc/Solver/InertSet.hs - compiler/GHC/Tc/Solver/Irred.hs - compiler/GHC/Tc/Solver/Monad.hs - compiler/GHC/Tc/Solver/Rewrite.hs - compiler/GHC/Tc/Solver/Solve.hs - compiler/GHC/Tc/Types.hs - compiler/GHC/Tc/Types/Constraint.hs - compiler/GHC/Tc/Types/Evidence.hs - compiler/GHC/Tc/Utils/TcMType.hs - compiler/GHC/Tc/Utils/TcType.hs - compiler/GHC/Tc/Utils/Unify.hs - compiler/GHC/Tc/Zonk/TcType.hs - compiler/GHC/Tc/Zonk/Type.hs - compiler/GHC/Types/Unique/DSM.hs - + compiler/GHC/Utils/EndoOS.hs - compiler/ghc.cabal.in - testsuite/tests/count-deps/CountDepsAst.stdout - testsuite/tests/count-deps/CountDepsParser.stdout - testsuite/tests/partial-sigs/should_fail/T14584a.stderr - testsuite/tests/quantified-constraints/T15359.hs - testsuite/tests/rep-poly/T13233.stderr - testsuite/tests/rep-poly/T14561b.stderr - testsuite/tests/rep-poly/T19709b.stderr - testsuite/tests/rep-poly/T23903.stderr - testsuite/tests/typecheck/should_compile/T25266a.stderr The diff was not included because it is too large. View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/3030178d013f053d85c140f2e8b7b64... -- View it on GitLab: https://gitlab.haskell.org/ghc/ghc/-/compare/3030178d013f053d85c140f2e8b7b64... You're receiving this email because of your account on gitlab.haskell.org.
participants (1)
-
Simon Peyton Jones (@simonpj)