Hi Simon,
OK this is an interesting one. Here's the smallest program that demonstrates
the problem.
foreign import ccall unsafe stdio.h getchar getchar :: IO CInt
f56 :: State# RealWorld - Int - Int
f56 s v2 = case (unIO getchar s) of
(# s' , v6 #) -
case v2 of
Simon Peyton-Jones wrote:
| I've got an inner loop that I think I can see is strict in the Int
| argument being passed around, but that GHC 6.6.1 isn't unboxing. In the
| following example both functions take a GHC.Base.Int, which I think
| should be an Int#.
OK this is an interesting one.