[GHC] #14118: Strangeness regarding STG alternative types and linter

GHC ghc-devs at haskell.org
Thu Aug 24 16:12:57 UTC 2017


#14118: Strangeness regarding STG alternative types and linter
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  (none)
            Type:  bug               |               Status:  patch
        Priority:  normal            |            Milestone:  8.4.1
       Component:  Compiler          |              Version:  8.2.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D3858
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 Judging from the logic in `lintStgExpr` mention in the ticket description,
 it seems like GHC is supposed to maintain the invariant that we will not
 use the case binder in the RHS if it is an unboxed tuple or sum (e.g. a
 `MultiValAlt`). However, I can't find this invariant documented anywhere,
 nor do we seem to respect it. For instance, consider this example from
 compiling `TyCoRep`,
 {{{
 ghc-stage1: panic! (the 'impossible' happened)
   (GHC version 8.3.20170824 for x86_64-unknown-linux):
           *** Stg Lint ErrMsgs: in Stg2Stg ***
   <no location info>: warning:
        [in body of lambda with binders w_sx0k :: Coercion,
                                        w69_sx0l :: InterestingVarFun,
                                        w70_sx0m :: VarSet,
                                        ww_sx0n :: [Var],
                                        ww1_sx0o :: VarSet]
       ww5_sx1u :: (# [Var], VarSet #) is out of scope
 }}}

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


More information about the ghc-tickets mailing list