
#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): Replying to [comment:59 simonpj]:
3. Try switching back to FV. That is, take the currently-deleted code for `tyCoFVsOfType`, and re-instate it, but modify it not to take the kinds at the variable occurrences. Now use that instead of the new `fvs_of_type`. It "obviously" should be a lot slower -- is it?
I'm slightly confused here. `fvs_of_type` already uses FV, before and after the patch; the patch however introduces `tcvs_of_type`, which uses VarSets directly instead of going through `FV`, and this function is where the slowdown appears to be. I changed the code such that it always uses `fvs_of_type` (and thus `FV`) instead of `tcvs_of_type`, and the results are mixed: - The two perf test cases that fail validation now perform slightly better - ...but not enough to make the tests pass - ...and now 3 more perf tests fail Output from `./validate`: {{{ ==== STAGE 2 TESTS ==== Unexpected results from: TEST="T12227 T12545 T14052 T3234 T5321Fun T5631" SUMMARY for test run started at Mon Jul 30 12:28:36 2018 CEST 0:22:35 spent to go through 6350 total tests, which gave rise to 19866 test cases, of which 13175 were skipped 36 had missing libraries 6495 expected passes 154 expected failures 0 caused framework failures 0 caused framework warnings 0 unexpected passes 1 unexpected failures 5 unexpected stat failures Unexpected failures: /tmp/ghctest-51wr9fmd/test spaces/./simplCore/should_compile/T3234.run T3234 [stderr mismatch] (optasm) Unexpected stat failures: /tmp/ghctest-51wr9fmd/test spaces/./perf/compiler/T5631.run T5631 [stat not good enough] (normal) /tmp/ghctest-51wr9fmd/test spaces/./perf/compiler/T5321Fun.run T5321Fun [stat not good enough] (normal) /tmp/ghctest-51wr9fmd/test spaces/./perf/compiler/T12227.run T12227 [stat not good enough] (normal) /tmp/ghctest-51wr9fmd/test spaces/./perf/compiler/T12545.run T12545 [stat not good enough] (normal) /tmp/ghctest-51wr9fmd/test spaces/./perf/should_run/T14052.run T14052 [stat not good enough] (ghci) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14880#comment:68 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler