Changeset 21710 for util

Show
Ignore:
Timestamp:
08/01/08 16:28:08 (4 months ago)
Author:
audreyt
Message:

* A better gen_prelude.pl that takes the FFI-based inclusion into account.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • util/gen_prelude.pl

    r21645 r21710  
    7070 
    7171    print OUT <<'.'; 
     72{-# LANGUAGE ForeignFunctionInterface #-} 
    7273module Pugs.Prelude where 
     74import Foreign.C.String 
     75import Data.ByteString.Unsafe (unsafePackCStringLen) 
     76import System.IO.Unsafe 
     77import qualified Data.ByteString as S 
     78import qualified Data.ByteString.Lazy as L 
    7379 
    7480{- 
     
    8692--                  util/gen_prelude.pl                       -- 
    8793---------------------------------------------------------------- 
     94 
     95{-# NOINLINE preludeByteString #-} 
     96preludeByteString :: S.ByteString 
     97preludeByteString = unsafePerformIO $ unsafePackCStringLen (text__prelude_pm, size__prelude_pm) 
     98 
     99preludeByteStringLazy :: L.ByteString 
     100preludeByteStringLazy = L.fromChunks [preludeByteString] 
     101 
     102{-# NOINLINE testByteString #-} 
     103testByteString :: S.ByteString 
     104testByteString = unsafePerformIO $ unsafePackCStringLen (text__test_pm, size__test_pm) 
     105 
     106testByteStringLazy :: L.ByteString 
     107testByteStringLazy = L.fromChunks [testByteString] 
     108 
     109foreign import ccall unsafe "text__prelude_pm" 
     110    text__prelude_pm :: CString 
     111foreign import ccall unsafe "size__prelude_pm" 
     112    size__prelude_pm :: Int 
     113 
     114foreign import ccall unsafe "text__test_pm" 
     115    text__test_pm :: CString 
     116foreign import ccall unsafe "size__test_pm" 
     117    size__test_pm :: Int 
    88118 
    89119preludeStr :: String