[GHC] #11330: Test `dynamic-paper` fails with core lint error (hpc) and "Simplifier ticks exhausted" (optasm)

GHC ghc-devs at haskell.org
Tue Jan 26 10:48:36 UTC 2016


#11330: Test `dynamic-paper` fails with core lint error (hpc) and "Simplifier ticks
exhausted" (optasm)
-------------------------------------+-------------------------------------
        Reporter:  thomie            |                Owner:  simonpj
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.0.1
       Component:  Compiler          |              Version:  7.11
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
                                     |  dependent/should_compile/dynamic-
                                     |  paper
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Simon Peyton Jones <simonpj@…>):

 In [changeset:"016a0bd1ba129134dfa612db0d96e01644fa7b9f/ghc"
 016a0bd1/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="016a0bd1ba129134dfa612db0d96e01644fa7b9f"
 Fix two cloning-related bugs

 Crikey!  Not just one but two bugs in type variable cloning,
 both dating from the days before PolyKinds.  Both were shown up
 by Trac #11330.

 1. In SetLevels, when floating a case expression we must clone its
    binders, *and* do so in a telescope-aware way, because the
    constructor may bind a kind variable that appears in the kind
    of a type variable.

    Instead of doing this (wrongly) by steam, call CoreSubst.cloneBndrs.

    I added Notes and did other refactoring at the same time.

 2. It turned out that CoreSubst.cloneBndrs calls TyCoRep.cloneTyVarBndr,
    and that too was bogus!  It didn't substitute in the kind of the
    TyVar being cloned.  There was even a comment to say "variables can't
    appear in kinds".  Thta hasn't been true for a long time now.

 Easily fixed.

 Interestingly, I then found that test
    dependent/should_compile/KindEqualities
 was emitting a new inexhaustive-pattern-match warning.  Sure enough
 it was valid!  So the lack of cloning in cloneTyVarBndr really was
 causing an observable bug; just one that we had not observed.
 }}}

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11330#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list