MicroHs-0.16.0.0: tests/Info.hs
module Info(main) where
import Data.Version
import Data.Word
import Foreign.Storable
import Foreign.Marshal.Utils
import Foreign.Ptr
import System.Info as I
foreign import capi "want_gmp" want_gmp :: Int
main :: IO ()
main = do
putStrLn $ "Running on " ++ I.os ++ ", " ++ I.arch
putStrLn $ "Compiler " ++ I.compilerName ++ "-" ++ showVersion I.fullCompilerVersion
putStr $ show _wordSize ++ " bit words, "
let
w :: Word
w = if _wordSize == 32 then 0x01000002 else 0x0100000000000002
p <- new w
b <- peek (castPtr p :: Ptr Word8)
putStrLn $
case b of
1 -> "big endian"
2 -> "little endian"
_ -> "mystery endian"
putStrLn $ "GMP: " ++ if want_gmp /= 0 then "yes" else "no"