
#14880: GHC panic: updateRole -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: goldfire Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Compiler (Type | Version: 8.2.2 checker) | Resolution: | Keywords: TypeInType Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple crash or panic | Test Case: Blocked By: | Blocking: Related Tickets: #15076 | Differential Rev(s): Phab:D4769 Wiki Page: | -------------------------------------+------------------------------------- Comment (by tdammers): Test run results: - `wip/T14880-baseline`: pre-patch GHC HEAD. `("bytes allocated", "1144547520")` - `wip/T14880`: patch fully applied. `("bytes allocated", "1207856632")` - `wip/T14880-just-tvs`: only implement the "use VarSets, not FV" part of #14880 `("bytes allocated", "1176403280")` - `wip/T14880-nondet-fv`: baseline (same as `wip/T14880-baseline`), but using the `NDFV` replacement instead of `FV` (getting rid of the list that `FV` drags around to maintain insertion order). `("bytes allocated", "1144547040")` - `wip/T14880-nondet-no-in-scope`: same as `wip/T14880-nondet-fv`, but instead of adding to the `in_scope` set, remove items from the accumulator. `("bytes allocated", "4064821552")` - `wip/T14880-nondet-fv-2`: same as `wip/T14880-nondet-fv`, but with the `NDFV` type rewritten to update sets in place rather than building a computation accumulator-style. `("bytes allocated", "1222408136")` So it seems that somehow my results got mixed up somewhere, because there is a whopping 400% increase in memory use when removing the in-scope feature. There must be something else going on there though, because neither the fully applied patch nor the `just-tvs` version deviate this severely, despite also not using this in-scope pre-filtering. Disregarding the `nondet-no-in-scope` figure, we thus get: - applying full patch: 1145M -> 1208M - only introducing VarSet: 1145M -> 1176M (worse than baseline, better than full patch) - making FV nondeterministic: 1145M -> 1145M (no effect) - rewriting (ND)FV to not use accumulator style: 1145M -> 1222M (worse than full patch) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14880#comment:93 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler