Cache TypeRep kinds aggressively
Cache `TypeRep k` in each `TrApp` or `TrTyCon` constructor of `TypeRep (a :: k)`. This makes `typeRepKind` cheap. With this change, we won't need any special effort to deserialize typereps efficiently. The downside, of course, is that we make `TypeRep`s slightly larger. Reviewers: austin, hvr, bgamari, simonpj Reviewed By: bgamari, simonpj Subscribers: carter, simonpj, rwbarton, thomie GHC Trac Issues: #14254 Differential Revision: https://phabricator.haskell.org/D4085
Showing
- compiler/deSugar/DsBinds.hs 11 additions, 6 deletionscompiler/deSugar/DsBinds.hs
- compiler/prelude/PrelNames.hs 15 additions, 10 deletionscompiler/prelude/PrelNames.hs
- compiler/typecheck/TcTypeable.hs 10 additions, 6 deletionscompiler/typecheck/TcTypeable.hs
- libraries/base/Data/Typeable/Internal.hs 160 additions, 40 deletionslibraries/base/Data/Typeable/Internal.hs
- libraries/base/GHC/Show.hs 38 additions, 0 deletionslibraries/base/GHC/Show.hs
- libraries/base/Type/Reflection/Unsafe.hs 10 additions, 1 deletionlibraries/base/Type/Reflection/Unsafe.hs
- testsuite/tests/ghci.debugger/scripts/break006.stderr 2 additions, 2 deletionstestsuite/tests/ghci.debugger/scripts/break006.stderr
- testsuite/tests/ghci.debugger/scripts/print019.stderr 1 addition, 1 deletiontestsuite/tests/ghci.debugger/scripts/print019.stderr
- testsuite/tests/indexed-types/should_fail/T12522a.stderr 1 addition, 1 deletiontestsuite/tests/indexed-types/should_fail/T12522a.stderr
- testsuite/tests/overloadedlists/should_fail/overloadedlistsfail01.stderr 1 addition, 1 deletion.../overloadedlists/should_fail/overloadedlistsfail01.stderr
- testsuite/tests/typecheck/should_compile/holes2.stderr 1 addition, 1 deletiontestsuite/tests/typecheck/should_compile/holes2.stderr
- testsuite/tests/typecheck/should_fail/tcfail133.stderr 1 addition, 1 deletiontestsuite/tests/typecheck/should_fail/tcfail133.stderr
Loading
Please register or sign in to comment