
#14880: GHC panic: updateRole -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: goldfire Type: bug | Status: new Priority: normal | Milestone: 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 simonpj): This is all very puzzling. But when we get to the bottom of it we may speed up a key piece of infrastructure! So I think it's worth persevering. Some other ideas 1. Is `poly_merge` still high on the list in `ticky` in the accumulator version? If so, why? 2. Can you post the accumulator version for types anyway? 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? 4. In `unitFV` I see {{{ unitFV :: Id -> FV unitFV var fv_cand in_scope acc@(have, haveSet) | var `elemVarSet` in_scope = acc | var `elemVarSet` haveSet = acc | fv_cand var = (var:have, extendVarSet haveSet var) | otherwise = acc }}} Notice that ''before inserting we test for membership''. Could that possibly be a win? If so, we can use it in the `VarSet` version. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/14880#comment:59 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler