Re: Unexpected boxing in generated code

2007-08-07 Thread Neil Mitchell
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

Re: Unexpected boxing in generated code

2007-08-07 Thread Simon Marlow
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.

RE: Unexpected boxing in generated code

2007-07-10 Thread Simon Peyton-Jones
] [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

Unexpected boxing in generated code

2007-07-09 Thread Neil Mitchell
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 -