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.
] [mailto:[EMAIL PROTECTED] On
| Behalf Of Neil Mitchell
| Sent: 09 July 2007 23:14
| To: glasgow-haskell-users@haskell.org
| Subject: Unexpected boxing in generated code
|
| Hi,
|
| 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
Hi,
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#.
Rec {
f60_rS5 :: GHC.Prim.State# GHC.Prim.RealWorld -