[project @ 2001-01-11 17:33:32 by simonmar]
[ghc-hetmet.git] / ghc / tests / codeGen / should_run / cg026.hs
index 570306c..7d2ded4 100644 (file)
@@ -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]