From: rrt Date: Wed, 28 Feb 2001 10:45:40 +0000 (+0000) Subject: [project @ 2001-02-28 10:45:40 by rrt] X-Git-Tag: Approximately_9120_patches~2522 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=a4835ae22106abc72154bf0e106fca410fd49652;p=ghc-hetmet.git [project @ 2001-02-28 10:45:40 by rrt] Various bits of modernisation; in particular, in cg026, do the Char test the same way as all the others, rather than in a way that fails on Windows. --- diff --git a/ghc/tests/codeGen/should_run/Makefile b/ghc/tests/codeGen/should_run/Makefile index 893a21a..b08a533 100644 --- a/ghc/tests/codeGen/should_run/Makefile +++ b/ghc/tests/codeGen/should_run/Makefile @@ -1,5 +1,5 @@ #----------------------------------------------------------------------------- -# $Id: Makefile,v 1.16 2000/12/12 17:21:40 simonmar Exp $ +# $Id: Makefile,v 1.17 2001/02/28 10:45:40 rrt Exp $ TOP = ../.. include $(TOP)/mk/boilerplate.mk @@ -18,7 +18,7 @@ SRC_HC_OPTS += -dcore-lint cg012_HC_OPTS = -fglasgow-exts cg015_HC_OPTS = -fglasgow-exts cg018_HC_OPTS = -fglasgow-exts -cg025_HC_OPTS = -package lang +cg025_HC_OPTS = -package lang -package text cg026_HC_OPTS = -package lang -fglasgow-exts -fvia-C cg029_HC_OPTS = -package lang -fglasgow-exts cg030_HC_OPTS = -package lang -fglasgow-exts diff --git a/ghc/tests/codeGen/should_run/cg025.hs b/ghc/tests/codeGen/should_run/cg025.hs index ba24d3a..dae4827 100644 --- a/ghc/tests/codeGen/should_run/cg025.hs +++ b/ghc/tests/codeGen/should_run/cg025.hs @@ -4,10 +4,13 @@ import IO import System import IOExts (trace) +import RegexString +import Maybe main = do prog <- getProgName - hPutStr stderr (shows prog "\n") + let Just (name:_) = matchRegex (mkRegex ".*(cg025.bin)") prog + hPutStr stderr (shows name "\n") args <- getArgs hPutStr stderr (shows args "\n") path <- getEnv "PATH" diff --git a/ghc/tests/codeGen/should_run/cg025.stderr b/ghc/tests/codeGen/should_run/cg025.stderr index 18f9dda..1a835f1 100644 --- a/ghc/tests/codeGen/should_run/cg025.stderr +++ b/ghc/tests/codeGen/should_run/cg025.stderr @@ -7,10 +7,13 @@ GOT PATH import IO import System import IOExts (trace) +import RegexString +import Maybe main = do prog <- getProgName - hPutStr stderr (shows prog "\n") + let Just (name:_) = matchRegex (mkRegex ".*(cg025.bin)") prog + hPutStr stderr (shows name "\n") args <- getArgs hPutStr stderr (shows args "\n") path <- getEnv "PATH" diff --git a/ghc/tests/codeGen/should_run/cg026.hs b/ghc/tests/codeGen/should_run/cg026.hs index 7d2ded4..4943843 100644 --- a/ghc/tests/codeGen/should_run/cg026.hs +++ b/ghc/tests/codeGen/should_run/cg026.hs @@ -5,12 +5,10 @@ module Main ( main ) where import PrelBase import Addr import ST -import IOExts import ST import MutableArray import ByteArray import Int( Num(fromInt) ) -import CString (packString) import Ratio import Array @@ -27,21 +25,41 @@ 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" + = let arr# = f 1000 in - unsafePerformIO ( - _ccall_ fprintf stdout (packString "%d %s\n") (93::Int) (packString str) >> - _ccall_ fflush stdout >> - return "" + shows (lookup_range arr# 42# 416#) "\n" + where + f :: Int -> ByteArray Int + + f size@(I# size#) + = runST ( + -- allocate an array of the specified size + newCharArray (0, (size-1)) >>= \ arr# -> + + -- fill in all elements; elem i has "i" put in it + fill_in arr# 0# (size# -# 1#) >> + + -- freeze the puppy: + freezeByteArray arr# ) + fill_in :: MutableByteArray s Int -> Int# -> Int# -> ST s () + + fill_in arr_in# first# last# + = if (first# ># last#) + then return () + else writeCharArray arr_in# (I# first#) ((chr (I# first#))) >> + fill_in arr_in# (first# +# 1#) last# + + lookup_range :: ByteArray Int -> Int# -> Int# -> [Char] + lookup_range arr from# to# + = if (from# ># to#) + then [] + else (indexCharArray arr (I# from#)) + : (lookup_range arr (from# +# 1#) to#) + -- Arr# Int# ------------------------------------------- test_ints :: String diff --git a/ghc/tests/codeGen/should_run/cg026.stdout b/ghc/tests/codeGen/should_run/cg026.stdout index 87dcba4..cb76dde 100644 --- a/ghc/tests/codeGen/should_run/cg026.stdout +++ b/ghc/tests/codeGen/should_run/cg026.stdout @@ -1,5 +1,4 @@ -93 -...ot emoc ot nem doog lla rof emit eht si woN +"*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\137\138\139\140\141\142\143\144\145\146\147\148\149\150\151\152\153\154\155\156\157\158\159\160\161\162\163\164\165\166\167\168\169\170\171\172\173\174\175\176\177\178\179\180\181\182\183\184\185\186\187\188\189\190\191\192\193\194\195\196\197\198\199\200\201\202\203\204\205\206\207\208\209\210\211\212\213\214\215\216\217\218\219\220\221\222\223\224\225\226\227\228\229\230\231\232\233\234\235\236\237\238\239\240\241\242\243\244\245\246\247\248\249\250\251\252\253\254\255\NUL\SOH\STX\ETX\EOT\ENQ\ACK\a\b\t\n\v\f\r\SO\SI\DLE\DC1\DC2\DC3\DC4\NAK\SYN\ETB\CAN\EM\SUB\ESC\FS\GS\RS\US !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\DEL\128\129\130\131\132\133\134\135\136\137\138\139\140\141\142\143\144\145\146\147\148\149\150\151\152\153\154\155\156\157\158\159\160" [1764,1849,1936,2025,2116,2209,2304,2401,2500,2601,2704,2809,2916,3025,3136,3249,3364,3481,3600,3721,3844,3969,4096,4225,4356,4489,4624,4761,4900,5041,5184,5329,5476,5625,5776,5929,6084,6241,6400,6561,6724,6889,7056,7225,7396,7569,7744,7921,8100,8281,8464,8649,8836,9025,9216,9409,9604,9801,10000,10201,10404,10609,10816,11025,11236,11449,11664,11881,12100,12321,12544,12769,12996,13225,13456,13689,13924,14161,14400,14641,14884,15129,15376,15625,15876,16129,16384,16641,16900,17161,17424,17689,17956,18225,18496,18769,19044,19321,19600,19881,20164,20449,20736,21025,21316,21609,21904,22201,22500,22801,23104,23409,23716,24025,24336,24649,24964,25281,25600,25921,26244,26569,26896,27225,27556,27889,28224,28561,28900,29241,29584,29929,30276,30625,30976,31329,31684,32041,32400,32761,33124,33489,33856,34225,34596,34969,35344,35721,36100,36481,36864,37249,37636,38025,38416,38809,39204,39601,40000,40401,40804,41209,41616,42025,42436,42849,43264,43681,44100,44521,44944,45369,45796,46225,46656,47089,47524,47961,48400,48841,49284,49729,50176,50625,51076,51529,51984,52441,52900,53361,53824,54289,54756,55225,55696,56169,56644,57121,57600,58081,58564,59049,59536,60025,60516,61009,61504,62001,62500,63001,63504,64009,64516,65025,65536,66049,66564,67081,67600,68121,68644,69169,69696,70225,70756,71289,71824,72361,72900,73441,73984,74529,75076,75625,76176,76729,77284,77841,78400,78961,79524,80089,80656,81225,81796,82369,82944,83521,84100,84681,85264,85849,86436,87025,87616,88209,88804,89401,90000,90601,91204,91809,92416,93025,93636,94249,94864,95481,96100,96721,97344,97969,98596,99225,99856,100489,101124,101761,102400,103041,103684,104329,104976,105625,106276,106929,107584,108241,108900,109561,110224,110889,111556,112225,112896,113569,114244,114921,115600,116281,116964,117649,118336,119025,119716,120409,121104,121801,122500,123201,123904,124609,125316,126025,126736,127449,128164,128881,129600,130321,131044,131769,132496,133225,133956,134689,135424,136161,136900,137641,138384,139129,139876,140625,141376,142129,142884,143641,144400,145161,145924,146689,147456,148225,148996,149769,150544,151321,152100,152881,153664,154449,155236,156025,156816,157609,158404,159201,160000,160801,161604,162409,163216,164025,164836,165649,166464,167281,168100,168921,169744,170569,171396,172225,173056]