Avoiding CAF's

Neil Mitchell ndmitchell at gmail.com
Wed May 16 09:22:22 EDT 2007


> See this thread:
> http://www.nabble.com/%7B---INLINE-me_harder---%7D-tf3599366.html

I'll try and see if I can do this with RULES.

> | foreign import ccall safe "stdio.h getchar" getchar2 :: CInt
> |
> | Can I stop this being CAF'd in any way?
> What is the problem you are trying to solve?

I have written an optimiser for Haskell in Yhc Core, and I'm now
trying to spit out optimised Haskell so GHC can create a binary to get
top performance. The main loop is given in: http://hpaste.org/1862

The FFI call must create a IO monad box to put the thing in, then the
main loop strips the IO box away. If I could avoid the overhead of
creating the box in the meantime, that would be preferable.

With that loop I'm about 10% slower than C on the "wc -c" problem
using "getchar" as the character supply, using String = [Char] - and
about 25% faster than GHC.



More information about the Glasgow-haskell-users mailing list