Avoiding CAF's

Simon Peyton-Jones simonpj at microsoft.com
Wed May 16 08:54:48 EDT 2007

| -----Original Message-----
| From: glasgow-haskell-users-bounces at haskell.org [mailto:glasgow-haskell-users-bounces at haskell.org] On
| Behalf Of Neil Mitchell
| Sent: 16 May 2007 10:16
| To: glasgow-haskell-users at haskell.org
| Subject: Avoiding CAF's
| 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?

See this thread:


| The next example is:
| 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?


More information about the Glasgow-haskell-users mailing list