From 90341ce4c0e11398b58f4cfb5c5feb3261b877a2 Mon Sep 17 00:00:00 2001 From: simonmar Date: Tue, 21 Mar 2000 14:26:02 +0000 Subject: [PATCH] [project @ 2000-03-21 14:24:20 by simonmar] MutableArray/STArray fixage. --- ghc/tests/array/should_run/arr014.hs | 12 ++++++------ ghc/tests/codeGen/should_run/cg026.hs | 9 +++++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/ghc/tests/array/should_run/arr014.hs b/ghc/tests/array/should_run/arr014.hs index 44a31fd..78ba8be 100644 --- a/ghc/tests/array/should_run/arr014.hs +++ b/ghc/tests/array/should_run/arr014.hs @@ -3,10 +3,10 @@ -- !!! multi-dimensional arrays module Main ( main ) where -import GlaExts +import ST import Array -type TwoD s = MutableArray s Int (MutableArray s Int Int) +type TwoD s = STArray s Int (STArray s Int Int) setup :: ST s (TwoD s) setup = let isz = 10 @@ -16,10 +16,10 @@ setup = let isz = 10 do -- gives : undefined reference to `IOBase_error_closure' -- x <- newArray (0, omax) (error "uninitialised") - dmy <- newArray (0, imax) 0 - x <- newArray (0, omax) dmy - as <- (sequence . replicate osz) (newArray (0, imax) 6) - mapM_ (\(i,v) -> writeArray x i v) (zip [0..omax] as) + dmy <- newSTArray (0, imax) 0 + x <- newSTArray (0, omax) dmy + as <- (sequence . replicate osz) (newSTArray (0, imax) 6) + mapM_ (\(i,v) -> writeSTArray x i v) (zip [0..omax] as) return x main :: IO () diff --git a/ghc/tests/codeGen/should_run/cg026.hs b/ghc/tests/codeGen/should_run/cg026.hs index 570306c..ff9d19e 100644 --- a/ghc/tests/codeGen/should_run/cg026.hs +++ b/ghc/tests/codeGen/should_run/cg026.hs @@ -5,6 +5,7 @@ module Main ( main ) where import PrelBase import ST import IOExts +import ST import MutableArray import ByteArray import Addr @@ -204,18 +205,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] -- 1.7.10.4