[GHC] #11660: Remove Type pretty-printer in favor of IfaceType

GHC ghc-devs at haskell.org
Fri Oct 14 13:42:52 UTC 2016


#11660: Remove Type pretty-printer in favor of IfaceType
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:
            Type:  task              |               Status:  patch
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  7.10.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #12550, #12447,   |  Differential Rev(s):  Phab:D2528
  #11786, #11549, #12024, #12697,    |
  #12510                             |
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 One thing slightly non-trivial issue that I've run into on this is that I
 seem to walk into holes while printing with the IfaceType printer which
 previously we avoided. For instance, `tcfail123` fails with,
 {{{
 =====> tcfail123(normal) 61 of 82 [0, 51, 0]
 cd "./typecheck/should_fail/tcfail123.run" &&  "/opt/exp/ghc/ghc-
 ifacetype/inplace/test   spaces/ghc-stage2" -c tcfail123.hs -dcore-lint
 -dcmm-lint -no-user-package-db -rtsopts -fno-warn-missed-specialisations
 -fshow-warning-groups -dno-debug-output
 Actual stderr output differs from expected:
 --- ./typecheck/should_fail/tcfail123.run/tcfail123.stderr.normalised
 2016-10-14 09:36:08.560991222 -0400
 +++ ./typecheck/should_fail/tcfail123.run/tcfail123.comp.stderr.normalised
 2016-10-14 09:36:08.560991222 -0400
 @@ -1,7 +1,14 @@

  tcfail123.hs:11:9:
       Couldn't match a lifted type with an unlifted type
 -      When matching the kind of ‘GHC.Prim.Int#’
 -     In the first argument of ‘f’, namely ‘3#’
 -      In the expression: f 3#
 -      In an equation for ‘h’: h v = f 3#
 +      When matching the kind of ‘GHC.Prim.Int#ghc: panic! (the
 'impossible' happened)
 +  (GHC version 8.1.20161014 for x86_64-unknown-linux):
 +       toIfaceUnivCoProv hit a hole
 +  {ax1}
 +  Call stack:
 +      CallStack (from HasCallStack):
 +        prettyCurrentCallStack, called at
 compiler/utils/Outputable.hs:<line>:<column> in <package-id>:Outputable
 +        callStackDoc, called at
 compiler/utils/Outputable.hs:<line>:<column> in <package-id>:Outputable
 +        pprPanic, called at compiler/iface/IfaceType.hs:<line>:<column>
 in <package-id>:IfaceType
 +
 +Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
 }}}

 It's not entirely clear how best to deal with this, but it does make me
 worried that this idea may be on shaky ground.

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


More information about the ghc-tickets mailing list