X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Ftests%2FcodeGen%2Fshould_run%2Fcg026.hs;h=7d2ded43a28c4cf8b86a807d79f40a62dd3631a8;hb=68b16e25b5c48fb85d0ff9d6bfffc1068e573db9;hp=570306cd35d28fe07627d137ea14d79a3219e82f;hpb=ddddb042fb266dc114273db94c3b2b04ada6346b;p=ghc-hetmet.git diff --git a/ghc/tests/codeGen/should_run/cg026.hs b/ghc/tests/codeGen/should_run/cg026.hs index 570306c..7d2ded4 100644 --- a/ghc/tests/codeGen/should_run/cg026.hs +++ b/ghc/tests/codeGen/should_run/cg026.hs @@ -3,12 +3,14 @@ module Main ( main ) where import PrelBase +import Addr import ST import IOExts +import ST import MutableArray import ByteArray -import Addr import Int( Num(fromInt) ) +import CString (packString) import Ratio import Array @@ -25,13 +27,18 @@ main = putStr -- Arr# Char# ------------------------------------------- -- (main effort is in packString#) +foreign label "stdout" addrOfStdout :: Addr + +stdout :: Addr +stdout = indexAddrOffAddr addrOfStdout 0 + test_chars :: String test_chars = let str = reverse "Now is the time for all good men to come to...\n" in unsafePerformIO ( - _ccall_ fprintf (``stdout''::Addr) "%d %s\n" (93::Int) str >> - _ccall_ fflush (``stdout''::Addr) >> + _ccall_ fprintf stdout (packString "%d %s\n") (93::Int) (packString str) >> + _ccall_ fflush stdout >> return "" ) @@ -54,7 +61,7 @@ test_ints fill_in arr# 0# (size# -# 1#) >> -- freeze the puppy: - freezeIntArray arr# + freezeByteArray arr# ) fill_in :: MutableByteArray s Int -> Int# -> Int# -> ST s () @@ -91,7 +98,7 @@ test_addrs fill_in arr# 0# (size# -# 1#) >> -- freeze the puppy: - freezeAddrArray arr# + freezeByteArray arr# ) fill_in :: MutableByteArray s Int -> Int# -> Int# -> ST s () @@ -132,7 +139,7 @@ test_floats fill_in arr# 0# (size# -# 1#) >> -- freeze the puppy: - freezeFloatArray arr# + freezeByteArray arr# ) fill_in :: MutableByteArray s Int -> Int# -> Int# -> ST s () @@ -173,7 +180,7 @@ test_doubles fill_in arr# 0# (size# -# 1#) >> -- freeze the puppy: - freezeDoubleArray arr# + freezeByteArray arr# ) fill_in :: MutableByteArray s Int -> Int# -> Int# -> ST s () @@ -204,18 +211,18 @@ test_ptrs f size = runST ( - newArray (1, size) (3 % 5) >>= \ arr# -> + newSTArray (1, size) (3 % 5) >>= \ arr# -> -- don't fill in the whole thing fill_in arr# 1 400 >> - freezeArray arr# + freezeSTArray arr# ) - fill_in :: MutableArray s Int (Ratio Int) -> Int -> Int -> ST s () + fill_in :: STArray s Int (Ratio Int) -> Int -> Int -> ST s () fill_in arr_in# first last = if (first > last) then return () - else writeArray arr_in# first (fromInt (first * first)) >> + else writeSTArray arr_in# first (fromInt (first * first)) >> fill_in arr_in# (first + 1) last lookup_range :: Array Int (Ratio Int) -> Int -> Int -> [Ratio Int]