[GHC] #13338: New versions of time and Cabal are causing a Core Lint error on Windows

GHC ghc-devs at haskell.org
Sat Feb 25 18:34:33 UTC 2017


#13338: New versions of time and Cabal are causing a Core Lint error on Windows
-------------------------------------+-------------------------------------
        Reporter:  rwbarton          |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  highest           |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.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):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by rwbarton):

 * owner:  rwbarton => (none)
 * cc: simonpj (added)


Comment:

 Here is a self-contained reproducer with today's HEAD:
 {{{#!hs
 {-# LANGUAGE MagicHash #-}

 module Fl2 where

 import GHC.Exts

 magic# :: Int# -> Bool
 magic# x# = True
 {-# NOINLINE magic# #-}

 f :: Int# -> Int -> Int
 f x# n = length [ i | i@(I# i#) <- [0..n], magic# (remInt# x# 100000# -#
 i#) ]
 }}}
 When the expression `remInt# x# 100000#` gets floated out of the loop and
 replaced by
 {{{
 case lvl_s2Tb of v_B1 { I# v_B2 -> v_B2 }
 }}}
 the surrounding application
 {{{
 -# (case lvl_s2Tb of v_B1 { I# v_B2 -> v_B2 }) i#_a1ok
 }}}
 does not satisfy the let/app invariant.

 Interestingly my build of the "Join points" commit (Feb 1) does not float
 out the expression `remInt# x# 100000#`. That's a bit curious since it
 already contains the commit "Float unboxed expressions by boxing". So my
 guess is that one of "Another improvement to SetLevels" and "Fix SetLevels
 for join points" is responsible.

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


More information about the ghc-tickets mailing list