
16 May
2007
16 May
'07
5:15 a.m.
Hi, I'm trying to avoid CAF's being created, and I was wondering how is the best way to do it with GHC. For example: f = .... Can I attach {-# INLINE #-} to f, and expect the CAF to be removed that way? Is there any NOCAF annotation. I can always f _, then change the callers to f () - if I'm doing that what is the most efficient fake argument, and should I annotate f in any way? If the dummy argument isn't used, is GHC going to float the let outside and re-CAF it? The next example is: foreign import ccall safe "stdio.h getchar" getchar2 :: CInt Can I stop this being CAF'd in any way? I'm working at a very low level here, so any hacky things with big disclaimers are still appreciated. Thanks Neil