[GHC] #14117: stg-lint fails on unlifted-type join point binding
GHC
ghc-devs at haskell.org
Tue Aug 15 16:28:03 UTC 2017
#14117: stg-lint fails on unlifted-type join point binding
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
While validating GHC with `BuildFlavour=devel2` and `-dstg-lint` I found
that the linter chokes when it finds a join point of unlifted type (like
this one from the `Binary` module),
{{{
ghc-stage1: panic! (the 'impossible' happened)
(GHC version 8.3.20170815 for x86_64-unknown-linux):
*** Stg Lint ErrMsgs: in Stg2Stg ***
<no location info>: warning:
[RHS of $j_sDSL :: (# State# RealWorld, () #)]
Let(rec) binder ‘$j_sDSL’ has unlifted type ‘(# State# RealWorld,
() #)’
RHS: \r []
src<compiler/utils/Binary.hs:516:9-17>
src<compiler/utils/Binary.hs:(516,21)-(518,26)>
src<compiler/utils/Binary.hs:260:1-45>
src<compiler/utils/Binary.hs:(239,1)-(246,34)>
case readIntArray# [ww_sDSF 0# w1_sDSJ] of {
...
}}}
If I'm not mistaken there is no problem with join points having unlifted
type (see `Note [CoreSyn let/app invariant]`). We just need to update the
STG linter appropriately.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14117>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list