[GHC] #14880: GHC panic: updateRole
GHC
ghc-devs at haskell.org
Thu Jul 26 10:48:34 UTC 2018
#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
More information about the ghc-tickets
mailing list