[GHC] #14880: GHC panic: updateRole

GHC ghc-devs at haskell.org
Mon Jul 30 11:02:07 UTC 2018


#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


More information about the ghc-tickets mailing list