RE: help needed for adding isWHNF primop to 5.00.2

31 Jul
2001
31 Jul
'01
8:41 a.m.
Tue, 31 Jul 2001 12:38:03 +0100, Simon Marlow
pisze: That's the way I'd go. You have to declare the primitive like this, BTW:
isWHNF# :: a -> (# State# RealWorld, Int# #)
because the compiler doesn't know about the IO type and you can't return a Bool directly.
It can return a Bool, e.g. ==# returns a Bool.
But ==# doesn't also return an unboxed tuple, and the code generator has special hacks to deal with primops that return enumerated types. The ==# primop actually returns an Int# which the code generator arranges to convert into a real Bool using the closure table. I guess you could return a Bool by actually indexing into the closure table, or by just returning {False,True}_static_closure. Cheers, Simon
8694
Age (days ago)
8694
Last active (days ago)
0 comments
1 participants
participants (1)
-
Simon Marlow