diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2015-01-22 10:52:02 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2015-01-22 10:52:02 +0000 |
commit | ccbe2b8b8a564598dfbb72e2cd617c8f0c891b9a (patch) | |
tree | 17751a7ee98345b2c3113a43ae5680c701be1c71 | |
parent | 8a29493dc35d28b42105501ad19ba7e82448772a (diff) | |
download | haskell-ccbe2b8b8a564598dfbb72e2cd617c8f0c891b9a.tar.gz |
Revert "32-bit performance wibbles"
This reverts commit 387f1d1ec334788c3e891e9304d427bc804998f4.
Bizarrely, this commit accidentally added libraries/haskell98.
So I'll revert it entirely and start again.
40 files changed, 7 insertions, 1249 deletions
diff --git a/libraries/haskell98/.gitignore b/libraries/haskell98/.gitignore deleted file mode 100644 index 8f4d26768c..0000000000 --- a/libraries/haskell98/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -GNUmakefile -dist-install -ghc.mk diff --git a/libraries/haskell98/Array.hs b/libraries/haskell98/Array.hs deleted file mode 100644 index 3bcc271ac0..0000000000 --- a/libraries/haskell98/Array.hs +++ /dev/null @@ -1,15 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 709 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Trustworthy #-} -#endif - -module Array ( - module Ix, -- export all of Ix for convenience - Array, array, listArray, (!), bounds, indices, elems, assocs, - accumArray, (//), accum, ixmap - ) where - -import Ix -import Data.Array diff --git a/libraries/haskell98/Bits.hs b/libraries/haskell98/Bits.hs deleted file mode 100644 index e1a141c6ec..0000000000 --- a/libraries/haskell98/Bits.hs +++ /dev/null @@ -1,8 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Bits (module Data.Bits) where -import Data.Bits - diff --git a/libraries/haskell98/CError.hs b/libraries/haskell98/CError.hs deleted file mode 100644 index e97a2df442..0000000000 --- a/libraries/haskell98/CError.hs +++ /dev/null @@ -1,8 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module CError (module Foreign.C.Error) where -import Foreign.C.Error - diff --git a/libraries/haskell98/CForeign.hs b/libraries/haskell98/CForeign.hs deleted file mode 100644 index 6801704475..0000000000 --- a/libraries/haskell98/CForeign.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module CForeign (module Foreign.C) where -import Foreign.C diff --git a/libraries/haskell98/CPUTime.hs b/libraries/haskell98/CPUTime.hs deleted file mode 100644 index 461bc91abc..0000000000 --- a/libraries/haskell98/CPUTime.hs +++ /dev/null @@ -1,9 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module CPUTime ( - getCPUTime, cpuTimePrecision - ) where -import System.CPUTime diff --git a/libraries/haskell98/CString.hs b/libraries/haskell98/CString.hs deleted file mode 100644 index 5b6a7e0232..0000000000 --- a/libraries/haskell98/CString.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module CString (module Foreign.C.String) where -import Foreign.C.String diff --git a/libraries/haskell98/CTypes.hs b/libraries/haskell98/CTypes.hs deleted file mode 100644 index 5b8bc80188..0000000000 --- a/libraries/haskell98/CTypes.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module CTypes (module Foreign.C.Types) where -import Foreign.C.Types diff --git a/libraries/haskell98/Char.hs b/libraries/haskell98/Char.hs deleted file mode 100644 index a7f1b9c8da..0000000000 --- a/libraries/haskell98/Char.hs +++ /dev/null @@ -1,18 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Char ( - isAscii, isLatin1, isControl, isPrint, isSpace, isUpper, isLower, - isAlpha, isDigit, isOctDigit, isHexDigit, isAlphaNum, - digitToInt, intToDigit, - toUpper, toLower, - ord, chr, - readLitChar, showLitChar, lexLitChar, - - -- ...and what the Prelude exports - Char, String - ) where - -import Data.Char diff --git a/libraries/haskell98/Complex.hs b/libraries/haskell98/Complex.hs deleted file mode 100644 index 64efdbd8f8..0000000000 --- a/libraries/haskell98/Complex.hs +++ /dev/null @@ -1,11 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Complex ( - Complex((:+)), realPart, imagPart, conjugate, - mkPolar, cis, polar, magnitude, phase - ) where - -import Data.Complex diff --git a/libraries/haskell98/Directory.hs b/libraries/haskell98/Directory.hs deleted file mode 100644 index bfea5de2e1..0000000000 --- a/libraries/haskell98/Directory.hs +++ /dev/null @@ -1,46 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 709 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Trustworthy #-} -#endif - -module Directory ( - Permissions( Permissions, readable, writable, executable, searchable ), - createDirectory, removeDirectory, removeFile, - renameDirectory, renameFile, getDirectoryContents, - getCurrentDirectory, setCurrentDirectory, - doesFileExist, doesDirectoryExist, - getPermissions, setPermissions, - getModificationTime - ) where - -import System.Directory hiding (Permissions, - readable, writable, executable, searchable, - getPermissions, setPermissions) -import qualified System.Directory as SD - -data Permissions = Permissions { - readable :: Bool, - writable :: Bool, - executable :: Bool, - searchable :: Bool - } - deriving (Eq, Ord, Read, Show) - -getPermissions :: FilePath -> IO Permissions -getPermissions fp = do perm <- SD.getPermissions fp - return $ Permissions { - readable = SD.readable perm, - writable = SD.writable perm, - executable = SD.executable perm, - searchable = SD.searchable perm - } - -setPermissions :: FilePath -> Permissions -> IO () -setPermissions fp perm = let mkPerm = setOwnerReadable (readable perm) - . setOwnerWritable (writable perm) - . setOwnerExecutable (executable perm) - . setOwnerSearchable (searchable perm) - in SD.setPermissions fp (mkPerm emptyPermissions) - diff --git a/libraries/haskell98/ForeignPtr.hs b/libraries/haskell98/ForeignPtr.hs deleted file mode 100644 index 0e1b7103e4..0000000000 --- a/libraries/haskell98/ForeignPtr.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Trustworthy #-} -#endif - -module ForeignPtr (module Foreign.ForeignPtr) where -import Foreign.ForeignPtr diff --git a/libraries/haskell98/IO.hs b/libraries/haskell98/IO.hs deleted file mode 100644 index 3103a96f87..0000000000 --- a/libraries/haskell98/IO.hs +++ /dev/null @@ -1,74 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module IO ( - Handle, HandlePosn, - IOMode(ReadMode,WriteMode,AppendMode,ReadWriteMode), - BufferMode(NoBuffering,LineBuffering,BlockBuffering), - SeekMode(AbsoluteSeek,RelativeSeek,SeekFromEnd), - stdin, stdout, stderr, - openFile, hClose, hFileSize, hIsEOF, isEOF, - hSetBuffering, hGetBuffering, hFlush, - hGetPosn, hSetPosn, hSeek, - hWaitForInput, hReady, hGetChar, hGetLine, hLookAhead, hGetContents, - hPutChar, hPutStr, hPutStrLn, hPrint, - hIsOpen, hIsClosed, hIsReadable, hIsWritable, hIsSeekable, - isAlreadyExistsError, isDoesNotExistError, isAlreadyInUseError, - isFullError, isEOFError, - isIllegalOperation, isPermissionError, isUserError, - ioeGetErrorString, ioeGetHandle, ioeGetFileName, - try, bracket, bracket_, - - -- ...and what the Prelude exports - IO, FilePath, IOError, ioError, userError, catch, interact, - putChar, putStr, putStrLn, print, getChar, getLine, getContents, - readFile, writeFile, appendFile, readIO, readLn - ) where - -import System.IO -import System.IO.Error - --- | The 'bracket' function captures a common allocate, compute, deallocate --- idiom in which the deallocation step must occur even in the case of an --- error during computation. This is similar to try-catch-finally in Java. --- --- This version handles only IO errors, as defined by Haskell 98. --- The version of @bracket@ in "Control.Exception" handles all exceptions, --- and should be used instead. - -bracket :: IO a -> (a -> IO b) -> (a -> IO c) -> IO c -bracket before after m = do - x <- before - rs <- try (m x) - _ <- after x - case rs of - Right r -> return r - Left e -> ioError e - --- | A variant of 'bracket' where the middle computation doesn't want @x@. --- --- This version handles only IO errors, as defined by Haskell 98. --- The version of @bracket_@ in "Control.Exception" handles all exceptions, --- and should be used instead. - -bracket_ :: IO a -> (a -> IO b) -> IO c -> IO c -bracket_ before after m = do - x <- before - rs <- try m - _ <- after x - case rs of - Right r -> return r - Left e -> ioError e - --- | The construct 'try' @comp@ exposes IO errors which occur within a --- computation, and which are not fully handled. --- --- Non-I\/O exceptions are not caught by this variant; to catch all --- exceptions, use 'Control.Exception.try' from "Control.Exception". -try :: IO a -> IO (Either IOError a) -try f = catch (do r <- f - return (Right r)) - (return . Left) - diff --git a/libraries/haskell98/Int.hs b/libraries/haskell98/Int.hs deleted file mode 100644 index 241f6d8914..0000000000 --- a/libraries/haskell98/Int.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Int (module Data.Int) where -import Data.Int diff --git a/libraries/haskell98/Ix.hs b/libraries/haskell98/Ix.hs deleted file mode 100644 index 94d8856c96..0000000000 --- a/libraries/haskell98/Ix.hs +++ /dev/null @@ -1,10 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Ix ( - Ix(range, index, inRange), rangeSize - ) where - -import Data.Ix diff --git a/libraries/haskell98/LICENSE b/libraries/haskell98/LICENSE deleted file mode 100644 index de923be627..0000000000 --- a/libraries/haskell98/LICENSE +++ /dev/null @@ -1,28 +0,0 @@ -Code derived from the document "Report on the Programming Language -Haskell 98", is distributed under the following license: - - Copyright (c) 2002 Simon Peyton Jones - - The authors intend this Report to belong to the entire Haskell - community, and so we grant permission to copy and distribute it for - any purpose, provided that it is reproduced in its entirety, - including this Notice. Modified versions of this Report may also be - copied and distributed for any purpose, provided that the modified - version is clearly presented as such, and that it does not claim to - be a definition of the Haskell 98 Language. - ------------------------------------------------------------------------------ - -Code derived from the document "The Haskell 98 Foreign Function -Interface, An Addendum to the Haskell 98 Report" is distributed under -the following license: - - Copyright (c) 2002 Manuel M. T. Chakravarty - - The authors intend this Report to belong to the entire Haskell - community, and so we grant permission to copy and distribute it for - any purpose, provided that it is reproduced in its entirety, - including this Notice. Modified versions of this Report may also be - copied and distributed for any purpose, provided that the modified - version is clearly presented as such, and that it does not claim to - be a definition of the Haskell 98 Foreign Function Interface. diff --git a/libraries/haskell98/List.hs b/libraries/haskell98/List.hs deleted file mode 100644 index eb87353e3f..0000000000 --- a/libraries/haskell98/List.hs +++ /dev/null @@ -1,34 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module List ( - elemIndex, elemIndices, - find, findIndex, findIndices, - nub, nubBy, delete, deleteBy, (\\), deleteFirstsBy, - union, unionBy, intersect, intersectBy, - intersperse, transpose, partition, group, groupBy, - inits, tails, isPrefixOf, isSuffixOf, - mapAccumL, mapAccumR, - sort, sortBy, insert, insertBy, maximumBy, minimumBy, - genericLength, genericTake, genericDrop, - genericSplitAt, genericIndex, genericReplicate, - zip4, zip5, zip6, zip7, - zipWith4, zipWith5, zipWith6, zipWith7, - unzip4, unzip5, unzip6, unzip7, unfoldr, - - -- ...and what the Prelude exports - -- []((:), []), -- This is built-in syntax - map, (++), concat, filter, - head, last, tail, init, null, length, (!!), - foldl, foldl1, scanl, scanl1, foldr, foldr1, scanr, scanr1, - iterate, repeat, replicate, cycle, - take, drop, splitAt, takeWhile, dropWhile, span, break, - lines, words, unlines, unwords, reverse, and, or, - any, all, elem, notElem, lookup, - sum, product, maximum, minimum, concatMap, - zip, zip3, zipWith, zipWith3, unzip, unzip3 - ) where - -import Data.OldList hiding (foldl', splitAt) diff --git a/libraries/haskell98/Locale.hs b/libraries/haskell98/Locale.hs deleted file mode 100644 index 65123da5f9..0000000000 --- a/libraries/haskell98/Locale.hs +++ /dev/null @@ -1,17 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 709 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Trustworthy #-} -#endif - -module Locale ( - TimeLocale(..), defaultTimeLocale - ) where - -import System.Locale ( - -- just the bits that are specified by Haskell 98 - TimeLocale(TimeLocale,wDays,months,amPm,dateTimeFmt, - dateFmt,timeFmt,time12Fmt), - defaultTimeLocale - ) diff --git a/libraries/haskell98/MarshalAlloc.hs b/libraries/haskell98/MarshalAlloc.hs deleted file mode 100644 index 0da40ac2cd..0000000000 --- a/libraries/haskell98/MarshalAlloc.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module MarshalAlloc (module Foreign.Marshal.Alloc) where -import Foreign.Marshal.Alloc diff --git a/libraries/haskell98/MarshalArray.hs b/libraries/haskell98/MarshalArray.hs deleted file mode 100644 index 60f4db83d6..0000000000 --- a/libraries/haskell98/MarshalArray.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module MarshalArray (module Foreign.Marshal.Array) where -import Foreign.Marshal.Array diff --git a/libraries/haskell98/MarshalError.hs b/libraries/haskell98/MarshalError.hs deleted file mode 100644 index 16049cc970..0000000000 --- a/libraries/haskell98/MarshalError.hs +++ /dev/null @@ -1,22 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module MarshalError ( - module Foreign.Marshal.Error, - IOErrorType, - mkIOError, - alreadyExistsErrorType, - doesNotExistErrorType, - alreadyInUseErrorType, - fullErrorType, - eofErrorType, - illegalOperationErrorType, - permissionErrorType, - userErrorType, - annotateIOError - ) where - -import System.IO.Error -import Foreign.Marshal.Error diff --git a/libraries/haskell98/MarshalUtils.hs b/libraries/haskell98/MarshalUtils.hs deleted file mode 100644 index 55dc8bf72b..0000000000 --- a/libraries/haskell98/MarshalUtils.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module MarshalUtils (module Foreign.Marshal.Utils) where -import Foreign.Marshal.Utils diff --git a/libraries/haskell98/Maybe.hs b/libraries/haskell98/Maybe.hs deleted file mode 100644 index 818ffe797f..0000000000 --- a/libraries/haskell98/Maybe.hs +++ /dev/null @@ -1,16 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Maybe ( - isJust, isNothing, - fromJust, fromMaybe, listToMaybe, maybeToList, - catMaybes, mapMaybe, - - -- ...and what the Prelude exports - Maybe(Nothing, Just), - maybe - ) where - -import Data.Maybe diff --git a/libraries/haskell98/Monad.hs b/libraries/haskell98/Monad.hs deleted file mode 100644 index 852b8b4ccc..0000000000 --- a/libraries/haskell98/Monad.hs +++ /dev/null @@ -1,19 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Monad ( - MonadPlus(mzero, mplus), - join, guard, when, unless, ap, - msum, - filterM, mapAndUnzipM, zipWithM, zipWithM_, foldM, - liftM, liftM2, liftM3, liftM4, liftM5, - - -- ...and what the Prelude exports - Monad((>>=), (>>), return, fail), - Functor(fmap), - mapM, mapM_, sequence, sequence_, (=<<), - ) where - -import Control.Monad diff --git a/libraries/haskell98/Numeric.hs b/libraries/haskell98/Numeric.hs deleted file mode 100644 index 28657fd8ae..0000000000 --- a/libraries/haskell98/Numeric.hs +++ /dev/null @@ -1,48 +0,0 @@ -{-# LANGUAGE CPP, PackageImports #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Numeric ( - - -- * Showing - - showSigned, -- :: (Real a) => (a -> ShowS) -> Int -> a -> ShowS - - showIntAtBase, -- :: Integral a => a -> (a -> Char) -> a -> ShowS - showInt, -- :: Integral a => a -> ShowS - showHex, -- :: Integral a => a -> ShowS - showOct, -- :: Integral a => a -> ShowS - - showEFloat, -- :: (RealFloat a) => Maybe Int -> a -> ShowS - showFFloat, -- :: (RealFloat a) => Maybe Int -> a -> ShowS - showGFloat, -- :: (RealFloat a) => Maybe Int -> a -> ShowS - showFloat, -- :: (RealFloat a) => a -> ShowS - - floatToDigits, -- :: (RealFloat a) => Integer -> a -> ([Int], Int) - - -- * Reading - - -- | /NB:/ 'readInt' is the \'dual\' of 'showIntAtBase', - -- and 'readDec' is the \`dual\' of 'showInt'. - -- The inconsistent naming is a historical accident. - - readSigned, -- :: (Real a) => ReadS a -> ReadS a - - readInt, -- :: (Integral a) => a -> (Char -> Bool) - -- -> (Char -> Int) -> ReadS a - readDec, -- :: (Integral a) => ReadS a - readOct, -- :: (Integral a) => ReadS a - readHex, -- :: (Integral a) => ReadS a - - readFloat, -- :: (RealFloat a) => ReadS a - - lexDigits, -- :: ReadS String - - -- * Miscellaneous - - fromRat, -- :: (RealFloat a) => Rational -> a - - ) where - -import "base" Numeric diff --git a/libraries/haskell98/Prelude.hs b/libraries/haskell98/Prelude.hs deleted file mode 100644 index 508f735962..0000000000 --- a/libraries/haskell98/Prelude.hs +++ /dev/null @@ -1,196 +0,0 @@ -{-# LANGUAGE BangPatterns, NoImplicitPrelude, PackageImports, Trustworthy #-} - --- | --- The Haskell 98 Prelude: a standard module imported by default --- into all Haskell modules. For more documentation, see the Haskell 98 --- Report <http://www.haskell.org/onlinereport/>. - -module Prelude ( - - -- * Standard types, classes and related functions - - -- ** Basic data types - Bool(False, True), - (&&), (||), not, otherwise, - - Maybe(Nothing, Just), - maybe, - - Either(Left, Right), - either, - - Ordering(LT, EQ, GT), - Char, String, - - -- *** Tuples - fst, snd, curry, uncurry, - - -- ** Basic type classes - Eq((==), (/=)), - Ord(compare, (<), (<=), (>=), (>), max, min), - Enum(succ, pred, toEnum, fromEnum, enumFrom, enumFromThen, - enumFromTo, enumFromThenTo), - Bounded(minBound, maxBound), - - -- ** Numbers - - -- *** Numeric types - Int, Integer, Float, Double, - Rational, - - -- *** Numeric type classes - Num((+), (-), (*), negate, abs, signum, fromInteger), - Real(toRational), - Integral(quot, rem, div, mod, quotRem, divMod, toInteger), - Fractional((/), recip, fromRational), - Floating(pi, exp, log, sqrt, (**), logBase, sin, cos, tan, - asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh), - RealFrac(properFraction, truncate, round, ceiling, floor), - RealFloat(floatRadix, floatDigits, floatRange, decodeFloat, - encodeFloat, exponent, significand, scaleFloat, isNaN, - isInfinite, isDenormalized, isIEEE, isNegativeZero, atan2), - - -- *** Numeric functions - subtract, even, odd, gcd, lcm, (^), (^^), - fromIntegral, realToFrac, - - -- ** Monads and functors - Monad((>>=), (>>), return, fail), - Functor(fmap), - mapM, mapM_, sequence, sequence_, (=<<), - - -- ** Miscellaneous functions - id, const, (.), flip, ($), until, - asTypeOf, error, undefined, - seq, ($!), - - -- * List operations - map, (++), filter, - head, last, tail, init, null, length, (!!), - reverse, - -- ** Reducing lists (folds) - foldl, foldl1, foldr, foldr1, - -- *** Special folds - and, or, any, all, - sum, product, - concat, concatMap, - maximum, minimum, - -- ** Building lists - -- *** Scans - scanl, scanl1, scanr, scanr1, - -- *** Infinite lists - iterate, repeat, replicate, cycle, - -- ** Sublists - take, drop, splitAt, takeWhile, dropWhile, span, break, - -- ** Searching lists - elem, notElem, lookup, - -- ** Zipping and unzipping lists - zip, zip3, zipWith, zipWith3, unzip, unzip3, - -- ** Functions on strings - lines, words, unlines, unwords, - - -- * Converting to and from @String@ - -- ** Converting to @String@ - ShowS, - Show(showsPrec, showList, show), - shows, - showChar, showString, showParen, - -- ** Converting from @String@ - ReadS, - Read(readsPrec, readList), - reads, readParen, read, lex, - - -- * Basic Input and output - IO, - -- ** Simple I\/O operations - -- All I/O functions defined here are character oriented. The - -- treatment of the newline character will vary on different systems. - -- For example, two characters of input, return and linefeed, may - -- read as a single newline character. These functions cannot be - -- used portably for binary I/O. - -- *** Output functions - putChar, - putStr, putStrLn, print, - -- *** Input functions - getChar, - getLine, getContents, interact, - -- *** Files - FilePath, - readFile, writeFile, appendFile, readIO, readLn, - -- ** Exception handling in the I\/O monad - IOError, ioError, userError, catch - - ) where - -import qualified "base" Control.Exception.Base as New (catch) -import "base" Control.Monad -import "base" System.IO -import "base" System.IO.Error (IOError, ioError, userError) -import "base" Data.OldList hiding ( splitAt ) -import "base" Data.Either -import "base" Data.Maybe -import "base" Data.Tuple - -import GHC.Base (($), ($!), (&&), (.), (||), Bool(..), Char, Eq(..), Int, - Ord(..), Ordering(..), String, asTypeOf, const, error, flip, - id, not, otherwise, seq, undefined, until) -import Text.Read -import GHC.Enum -import GHC.Num -import GHC.Real hiding ( gcd ) -import qualified GHC.Real ( gcd ) -import GHC.Float -import GHC.Show - --- ----------------------------------------------------------------------------- --- Miscellaneous functions - --- | The 'catch' function establishes a handler that receives any --- 'IOError' raised in the action protected by 'catch'. --- An 'IOError' is caught by --- the most recent handler established by one of the exception handling --- functions. These handlers are --- not selective: all 'IOError's are caught. Exception propagation --- must be explicitly provided in a handler by re-raising any unwanted --- exceptions. For example, in --- --- > f = catch g (\e -> if IO.isEOFError e then return [] else ioError e) --- --- the function @f@ returns @[]@ when an end-of-file exception --- (cf. 'System.IO.Error.isEOFError') occurs in @g@; otherwise, the --- exception is propagated to the next outer handler. --- --- When an exception propagates outside the main program, the Haskell --- system prints the associated 'IOError' value and exits the program. --- --- Non-I\/O exceptions are not caught by this variant; to catch all --- exceptions, use 'Control.Exception.catch' from "Control.Exception". -catch :: IO a -> (IOError -> IO a) -> IO a -catch = New.catch - --- | @'gcd' x y@ is the greatest (positive) integer that divides both @x@ --- and @y@; for example @'gcd' (-3) 6@ = @3@, @'gcd' (-3) (-6)@ = @3@, --- @'gcd' 0 4@ = @4@. @'gcd' 0 0@ raises a runtime error. -gcd :: (Integral a) => a -> a -> a -gcd 0 0 = error "Prelude.gcd: gcd 0 0 is undefined" -gcd x y = GHC.Real.gcd x y - --- The GHC's version of 'splitAt' is too strict in 'n' compared to --- Haskell98/2010 version. Ticket #1182. - --- | 'splitAt' @n xs@ returns a tuple where first element is @xs@ prefix of --- length @n@ and second element is the remainder of the list: --- --- > splitAt 6 "Hello World!" == ("Hello ","World!") --- > splitAt 3 [1,2,3,4,5] == ([1,2,3],[4,5]) --- > splitAt 1 [1,2,3] == ([1],[2,3]) --- > splitAt 3 [1,2,3] == ([1,2,3],[]) --- > splitAt 4 [1,2,3] == ([1,2,3],[]) --- > splitAt 0 [1,2,3] == ([],[1,2,3]) --- > splitAt (-1) [1,2,3] == ([],[1,2,3]) --- --- It is equivalent to @('take' n xs, 'drop' n xs)@. --- 'splitAt' is an instance of the more general 'Data.List.genericSplitAt', --- in which @n@ may be of any integral type. -splitAt :: Int -> [a] -> ([a],[a]) -splitAt n xs = (take n xs, drop n xs) diff --git a/libraries/haskell98/Ptr.hs b/libraries/haskell98/Ptr.hs deleted file mode 100644 index 7d1cdb2ca5..0000000000 --- a/libraries/haskell98/Ptr.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Ptr (module Foreign.Ptr) where -import Foreign.Ptr diff --git a/libraries/haskell98/Random.hs b/libraries/haskell98/Random.hs deleted file mode 100644 index 840e668568..0000000000 --- a/libraries/haskell98/Random.hs +++ /dev/null @@ -1,407 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Trustworthy #-} -#endif - -module Random ( - - -- $intro - - -- * Random number generators - - RandomGen(next, split, genRange) - - -- ** Standard random number generators - , StdGen - , mkStdGen - - -- ** The global random number generator - - -- $globalrng - - , getStdRandom - , getStdGen - , setStdGen - , newStdGen - - -- * Random values of various types - , Random ( random, randomR, - randoms, randomRs, - randomIO, randomRIO ) - - -- * References - -- $references - - ) where - -import Prelude - -import Data.Int - -import System.CPUTime ( getCPUTime ) -import Data.Time ( getCurrentTime, UTCTime(..) ) -import Data.Ratio ( numerator, denominator ) -import Data.Char ( isSpace, chr, ord ) -import System.IO.Unsafe ( unsafePerformIO ) -import Data.IORef -import Numeric ( readDec ) - --- The standard nhc98 implementation of Time.ClockTime does not match --- the extended one expected in this module, so we lash-up a quick --- replacement here. -getTime :: IO (Integer, Integer) -getTime = do - utc <- getCurrentTime - let daytime = toRational $ utctDayTime utc - return $ quotRem (numerator daytime) (denominator daytime) - --- | The class 'RandomGen' provides a common interface to random number --- generators. --- --- Minimal complete definition: 'next' and 'split'. - -class RandomGen g where - - -- |The 'next' operation returns an 'Int' that is uniformly distributed - -- in the range returned by 'genRange' (including both end points), - -- and a new generator. - next :: g -> (Int, g) - - -- |The 'split' operation allows one to obtain two distinct random number - -- generators. This is very useful in functional programs (for example, when - -- passing a random number generator down to recursive calls), but very - -- little work has been done on statistically robust implementations of - -- 'split' (["Random\#Burton", "Random\#Hellekalek"] - -- are the only examples we know of). - split :: g -> (g, g) - - -- |The 'genRange' operation yields the range of values returned by - -- the generator. - -- - -- It is required that: - -- - -- * If @(a,b) = 'genRange' g@, then @a < b@. - -- - -- * 'genRange' always returns a pair of defined 'Int's. - -- - -- The second condition ensures that 'genRange' cannot examine its - -- argument, and hence the value it returns can be determined only by the - -- instance of 'RandomGen'. That in turn allows an implementation to make - -- a single call to 'genRange' to establish a generator's range, without - -- being concerned that the generator returned by (say) 'next' might have - -- a different range to the generator passed to 'next'. - -- - -- The default definition spans the full range of 'Int'. - genRange :: g -> (Int,Int) - - -- default method - genRange _ = (minBound, maxBound) - -{- | -The 'StdGen' instance of 'RandomGen' has a 'genRange' of at least 30 bits. - -The result of repeatedly using 'next' should be at least as statistically -robust as the /Minimal Standard Random Number Generator/ described by -["Random\#Park", "Random\#Carta"]. -Until more is known about implementations of 'split', all we require is -that 'split' deliver generators that are (a) not identical and -(b) independently robust in the sense just given. - -The 'Show' and 'Read' instances of 'StdGen' provide a primitive way to save the -state of a random number generator. -It is required that @'read' ('show' g) == g@. - -In addition, 'reads' may be used to map an arbitrary string (not necessarily one -produced by 'show') onto a value of type 'StdGen'. In general, the 'Read' -instance of 'StdGen' has the following properties: - -* It guarantees to succeed on any string. - -* It guarantees to consume only a finite portion of the string. - -* Different argument strings are likely to result in different results. - --} - -data StdGen - = StdGen Int32 Int32 - -instance RandomGen StdGen where - next = stdNext - split = stdSplit - genRange _ = stdRange - -instance Show StdGen where - showsPrec p (StdGen s1 s2) = - showsPrec p s1 . - showChar ' ' . - showsPrec p s2 - -instance Read StdGen where - readsPrec _p = \ r -> - case try_read r of - r'@[_] -> r' - _ -> [stdFromString r] -- because it shouldn't ever fail. - where - try_read r = do - (s1, r1) <- readDec (dropWhile isSpace r) - (s2, r2) <- readDec (dropWhile isSpace r1) - return (StdGen s1 s2, r2) - -{- - If we cannot unravel the StdGen from a string, create - one based on the string given. --} -stdFromString :: String -> (StdGen, String) -stdFromString s = (mkStdGen num, rest) - where (cs, rest) = splitAt 6 s - num = foldl (\a x -> x + 3 * a) 1 (map ord cs) - - -{- | -The function 'mkStdGen' provides an alternative way of producing an initial -generator, by mapping an 'Int' into a generator. Again, distinct arguments -should be likely to produce distinct generators. --} -mkStdGen :: Int -> StdGen -- why not Integer ? -mkStdGen s = mkStdGen32 $ fromIntegral s - -mkStdGen32 :: Int32 -> StdGen -mkStdGen32 s - | s < 0 = mkStdGen32 (-s) - | otherwise = StdGen (s1+1) (s2+1) - where - (q, s1) = s `divMod` 2147483562 - s2 = q `mod` 2147483398 - -createStdGen :: Integer -> StdGen -createStdGen s = mkStdGen32 $ fromIntegral s - --- FIXME: 1/2/3 below should be ** (vs@30082002) XXX - -{- | -With a source of random number supply in hand, the 'Random' class allows the -programmer to extract random values of a variety of types. - -Minimal complete definition: 'randomR' and 'random'. - --} - -class Random a where - -- | Takes a range /(lo,hi)/ and a random number generator - -- /g/, and returns a random value uniformly distributed in the closed - -- interval /[lo,hi]/, together with a new generator. It is unspecified - -- what happens if /lo>hi/. For continuous types there is no requirement - -- that the values /lo/ and /hi/ are ever produced, but they may be, - -- depending on the implementation and the interval. - randomR :: RandomGen g => (a,a) -> g -> (a,g) - - -- | The same as 'randomR', but using a default range determined by the type: - -- - -- * For bounded types (instances of 'Bounded', such as 'Char'), - -- the range is normally the whole type. - -- - -- * For fractional types, the range is normally the semi-closed interval - -- @[0,1)@. - -- - -- * For 'Integer', the range is (arbitrarily) the range of 'Int'. - random :: RandomGen g => g -> (a, g) - - -- | Plural variant of 'randomR', producing an infinite list of - -- random values instead of returning a new generator. - randomRs :: RandomGen g => (a,a) -> g -> [a] - randomRs ival g = x : randomRs ival g' where (x,g') = randomR ival g - - -- | Plural variant of 'random', producing an infinite list of - -- random values instead of returning a new generator. - randoms :: RandomGen g => g -> [a] - randoms g = (\(x,g') -> x : randoms g') (random g) - - -- | A variant of 'randomR' that uses the global random number generator - -- (see "Random#globalrng"). - randomRIO :: (a,a) -> IO a - randomRIO range = getStdRandom (randomR range) - - -- | A variant of 'random' that uses the global random number generator - -- (see "Random#globalrng"). - randomIO :: IO a - randomIO = getStdRandom random - - -instance Random Int where - randomR (a,b) g = randomIvalInteger (toInteger a, toInteger b) g - random g = randomR (minBound,maxBound) g - -instance Random Char where - randomR (a,b) g = - case (randomIvalInteger (toInteger (ord a), toInteger (ord b)) g) of - (x,g') -> (chr x, g') - random g = randomR (minBound,maxBound) g - -instance Random Bool where - randomR (a,b) g = - case (randomIvalInteger (bool2Int a, bool2Int b) g) of - (x, g') -> (int2Bool x, g') - where - bool2Int :: Bool -> Integer - bool2Int False = 0 - bool2Int True = 1 - - int2Bool :: Int -> Bool - int2Bool 0 = False - int2Bool _ = True - - random g = randomR (minBound,maxBound) g - -instance Random Integer where - randomR ival g = randomIvalInteger ival g - random g = randomR (toInteger (minBound::Int), toInteger (maxBound::Int)) g - -instance Random Double where - randomR ival g = randomIvalDouble ival id g - random g = randomR (0::Double,1) g - --- hah, so you thought you were saving cycles by using Float? -instance Random Float where - random g = randomIvalDouble (0::Double,1) realToFrac g - randomR (a,b) g = randomIvalDouble (realToFrac a, realToFrac b) realToFrac g - -mkStdRNG :: Integer -> IO StdGen -mkStdRNG o = do - ct <- getCPUTime - (sec, psec) <- getTime - return (createStdGen (sec * 12345 + psec + ct + o)) - -randomIvalInteger :: (RandomGen g, Num a) => (Integer, Integer) -> g -> (a, g) -randomIvalInteger (l,h) rng - | l > h = randomIvalInteger (h,l) rng - | otherwise = case (f n 1 rng) of (v, rng') -> (fromInteger (l + v `mod` k), rng') - where - k = h - l + 1 - b = 2147483561 - n = iLogBase b k - - f 0 acc g = (acc, g) - f n' acc g = - let - (x,g') = next g - in - f (n' - 1) (fromIntegral x + acc * b) g' - -randomIvalDouble :: (RandomGen g, Fractional a) => (Double, Double) -> (Double -> a) -> g -> (a, g) -randomIvalDouble (l,h) fromDouble rng - | l > h = randomIvalDouble (h,l) fromDouble rng - | otherwise = - case (randomIvalInteger (toInteger (minBound::Int32), toInteger (maxBound::Int32)) rng) of - (x, rng') -> - let - scaled_x = - fromDouble ((l+h)/2) + - fromDouble ((h-l) / realToFrac int32Count) * - fromIntegral (x::Int32) - in - (scaled_x, rng') - -int32Count :: Integer -int32Count = toInteger (maxBound::Int32) - toInteger (minBound::Int32) + 1 - -iLogBase :: Integer -> Integer -> Integer -iLogBase b i = if i < b then 1 else 1 + iLogBase b (i `div` b) - -stdRange :: (Int,Int) -stdRange = (0, 2147483562) - -stdNext :: StdGen -> (Int, StdGen) --- Returns values in the range stdRange -stdNext (StdGen s1 s2) = (fromIntegral z', StdGen s1'' s2'') - where z' = if z < 1 then z + 2147483562 else z - z = s1'' - s2'' - - k = s1 `quot` 53668 - s1' = 40014 * (s1 - k * 53668) - k * 12211 - s1'' = if s1' < 0 then s1' + 2147483563 else s1' - - k' = s2 `quot` 52774 - s2' = 40692 * (s2 - k' * 52774) - k' * 3791 - s2'' = if s2' < 0 then s2' + 2147483399 else s2' - -stdSplit :: StdGen -> (StdGen, StdGen) -stdSplit std@(StdGen s1 s2) - = (left, right) - where - -- no statistical foundation for this! - left = StdGen new_s1 t2 - right = StdGen t1 new_s2 - - new_s1 | s1 == 2147483562 = 1 - | otherwise = s1 + 1 - - new_s2 | s2 == 1 = 2147483398 - | otherwise = s2 - 1 - - StdGen t1 t2 = snd (next std) - --- The global random number generator - -{- $globalrng #globalrng# - -There is a single, implicit, global random number generator of type -'StdGen', held in some global variable maintained by the 'IO' monad. It is -initialised automatically in some system-dependent fashion, for example, by -using the time of day, or Linux's kernel random number generator. To get -deterministic behaviour, use 'setStdGen'. --} - --- |Sets the global random number generator. -setStdGen :: StdGen -> IO () -setStdGen sgen = writeIORef theStdGen sgen - --- |Gets the global random number generator. -getStdGen :: IO StdGen -getStdGen = readIORef theStdGen - -theStdGen :: IORef StdGen -theStdGen = unsafePerformIO $ do - rng <- mkStdRNG 0 - newIORef rng - --- |Applies 'split' to the current global random generator, --- updates it with one of the results, and returns the other. -newStdGen :: IO StdGen -newStdGen = atomicModifyIORef theStdGen split - -{- |Uses the supplied function to get a value from the current global -random generator, and updates the global generator with the new generator -returned by the function. For example, @rollDice@ gets a random integer -between 1 and 6: - -> rollDice :: IO Int -> rollDice = getStdRandom (randomR (1,6)) - --} - -getStdRandom :: (StdGen -> (a,StdGen)) -> IO a -getStdRandom f = atomicModifyIORef theStdGen (swap . f) - where swap (v,g) = (g,v) - -{- $references - -1. FW #Burton# Burton and RL Page, /Distributed random number generation/, -Journal of Functional Programming, 2(2):203-212, April 1992. - -2. SK #Park# Park, and KW Miller, /Random number generators - -good ones are hard to find/, Comm ACM 31(10), Oct 1988, pp1192-1201. - -3. DG #Carta# Carta, /Two fast implementations of the minimal standard -random number generator/, Comm ACM, 33(1), Jan 1990, pp87-88. - -4. P #Hellekalek# Hellekalek, /Don\'t trust parallel Monte Carlo/, -Department of Mathematics, University of Salzburg, -<http://random.mat.sbg.ac.at/~peter/pads98.ps>, 1998. - -5. Pierre #LEcuyer# L'Ecuyer, /Efficient and portable combined random -number generators/, Comm ACM, 31(6), Jun 1988, pp742-749. - -The Web site <http://random.mat.sbg.ac.at/> is a great source of information. - --} diff --git a/libraries/haskell98/Ratio.hs b/libraries/haskell98/Ratio.hs deleted file mode 100644 index a7ae384179..0000000000 --- a/libraries/haskell98/Ratio.hs +++ /dev/null @@ -1,10 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Ratio ( - Ratio, Rational, (%), numerator, denominator, approxRational - ) where - -import Data.Ratio diff --git a/libraries/haskell98/Setup.hs b/libraries/haskell98/Setup.hs deleted file mode 100644 index 6fa548caf7..0000000000 --- a/libraries/haskell98/Setup.hs +++ /dev/null @@ -1,6 +0,0 @@ -module Main (main) where - -import Distribution.Simple - -main :: IO () -main = defaultMain diff --git a/libraries/haskell98/StablePtr.hs b/libraries/haskell98/StablePtr.hs deleted file mode 100644 index e80f382b93..0000000000 --- a/libraries/haskell98/StablePtr.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module StablePtr (module Foreign.StablePtr) where -import Foreign.StablePtr diff --git a/libraries/haskell98/Storable.hs b/libraries/haskell98/Storable.hs deleted file mode 100644 index de10cc28bf..0000000000 --- a/libraries/haskell98/Storable.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Storable (module Foreign.Storable) where -import Foreign.Storable diff --git a/libraries/haskell98/System.hs b/libraries/haskell98/System.hs deleted file mode 100644 index 212af71d8b..0000000000 --- a/libraries/haskell98/System.hs +++ /dev/null @@ -1,15 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 709 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Trustworthy #-} -#endif - -module System ( - ExitCode(ExitSuccess,ExitFailure), - getArgs, getProgName, getEnv, system, exitWith, exitFailure - ) where - -import System.Exit -import System.Environment -import System.Process diff --git a/libraries/haskell98/Time.hs b/libraries/haskell98/Time.hs deleted file mode 100644 index 67f4c85985..0000000000 --- a/libraries/haskell98/Time.hs +++ /dev/null @@ -1,22 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 709 -{-# LANGUAGE Safe #-} -#elif __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Trustworthy #-} -#endif - -module Time ( - ClockTime, - Month(January,February,March,April,May,June, - July,August,September,October,November,December), - Day(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday), - CalendarTime(CalendarTime, ctYear, ctMonth, ctDay, ctHour, ctMin, - ctSec, ctPicosec, ctWDay, ctYDay, ctTZName, ctTZ, ctIsDST), - TimeDiff(TimeDiff, tdYear, tdMonth, tdDay, tdHour, - tdMin, tdSec, tdPicosec), - getClockTime, addToClockTime, diffClockTimes, - toCalendarTime, toUTCTime, toClockTime, - calendarTimeToString, formatCalendarTime - ) where - -import System.Time diff --git a/libraries/haskell98/Word.hs b/libraries/haskell98/Word.hs deleted file mode 100644 index 5fefc56b0b..0000000000 --- a/libraries/haskell98/Word.hs +++ /dev/null @@ -1,7 +0,0 @@ -{-# LANGUAGE CPP #-} -#if __GLASGOW_HASKELL__ >= 701 -{-# LANGUAGE Safe #-} -#endif - -module Word (module Data.Word) where -import Data.Word diff --git a/libraries/haskell98/changelog.md b/libraries/haskell98/changelog.md deleted file mode 100644 index 0fec6a3317..0000000000 --- a/libraries/haskell98/changelog.md +++ /dev/null @@ -1,15 +0,0 @@ -# Changelog for [`haskell98` package](http://hackage.haskell.org/package/haskell98) - -## 2.0.0.4 *TBA* - - - Bundled with GHC 7.10.1 - -## 2.0.0.3 *Mar 2014* - - - Bundled with GHC 7.8.1 - - - Remove NHC98-specific code - - - Adapt to changes in GHC 7.8's core-libraries - - - Update to Cabal format 1.10 diff --git a/libraries/haskell98/haskell98.cabal b/libraries/haskell98/haskell98.cabal deleted file mode 100644 index 728879df10..0000000000 --- a/libraries/haskell98/haskell98.cabal +++ /dev/null @@ -1,86 +0,0 @@ -name: haskell98 -version: 2.0.0.4 --- NOTE: Don't forget to update ./changelog.md -license: BSD3 -license-file: LICENSE -maintainer: libraries@haskell.org -bug-reports: http://ghc.haskell.org/trac/ghc/newticket?component=libraries/haskell98 -synopsis: Compatibility with Haskell 98 -category: Haskell98, Prelude -homepage: http://www.haskell.org/definition/ -build-type: Simple -cabal-version: >=1.10 -description: - This package provides compatibility with the modules of Haskell - 98 and the FFI addendum, by means of wrappers around modules from - the base package (which in many cases have additional features). - However "Prelude", "Numeric" and "Foreign" are provided directly by - the @base@ package. - -extra-source-files: - changelog.md - -source-repository head - type: git - location: http://git.haskell.org/packages/haskell98.git - -Library - default-language: Haskell98 - other-extensions: - BangPatterns - NoImplicitPrelude - PackageImports - Safe - Trustworthy - - build-depends: - array >= 0.5 && < 0.6, - base >= 4.8 && < 4.9, - directory >= 1.2 && < 1.3, - old-locale >= 1.0 && < 1.1, - old-time >= 1.1 && < 1.2, - process >= 1.2 && < 1.3, - time >= 1.4 && < 1.6 - - -- haskell98 is a "hidden" package - exposed: False - - exposed-modules: - -- Haskell 98 - Prelude - - Array - CPUTime - Char - Complex - Directory - IO - Ix - List - Locale - Maybe - Monad - Numeric - Random - Ratio - System - Time - - -- FFI addendum (Foreign is in the base package) - Bits - CError - CForeign - CString - CTypes - ForeignPtr - Int - MarshalAlloc - MarshalArray - MarshalError - MarshalUtils - Ptr - StablePtr - Storable - Word - - ghc-options: -Wall diff --git a/libraries/haskell98/prologue.txt b/libraries/haskell98/prologue.txt deleted file mode 100644 index 93bc35b62a..0000000000 --- a/libraries/haskell98/prologue.txt +++ /dev/null @@ -1,9 +0,0 @@ -This package provides compatibility with the modules of Haskell 98 and -the FFI addendum, by means of wrappers around modules from the @base@ package -(which in many cases have additional features). -However @Prelude@, @Numeric@ and @Foreign@ are provided directly -by the @base@ package. -The modules of this package are documented in the /Revised Haskell 98 Report/, -at <http://www.haskell.org/onlinereport/>, -and the /Haskell 98 Foreign Function Interface/ addendum, -at <http://www.cse.unsw.edu.au/~chak/haskell/ffi/>. diff --git a/testsuite/tests/perf/compiler/all.T b/testsuite/tests/perf/compiler/all.T index a874866949..e65ce83f35 100644 --- a/testsuite/tests/perf/compiler/all.T +++ b/testsuite/tests/perf/compiler/all.T @@ -578,7 +578,7 @@ test('T9872a', # 2014-12-10 5521332656 Initally created # 2014-12-16 5848657456 Flattener parameterized over roles # 2014-12-18 2680733672 Reduce type families even more eagerly - (wordsize(32), 1325592896, 5) + (wordsize(32), 1400000000, 5) ]), ], compile_fail, @@ -615,7 +615,7 @@ test('T9872d', # 2014-12-18 796071864 Initally created # 2014-12-18 739189056 Reduce type families even more eagerly # 2015-01-07 687562440 TrieMap leaf compression - (wordsize(32), 328810212, 5) + (wordsize(32), 353644844, 5) ]), ], compile, @@ -624,9 +624,8 @@ test('T9872d', test('T9961', [ only_ways(['normal']), compiler_stats_num_field('bytes allocated', - [(wordsize(64), 772510192, 5), + [(wordsize(64), 772510192, 5) # 2015-01-12 807117816 Initally created - (wordsize(32), 375647160, 5) ]), ], compile, diff --git a/testsuite/tests/perf/haddock/all.T b/testsuite/tests/perf/haddock/all.T index e9ffbb6275..21b4af7425 100644 --- a/testsuite/tests/perf/haddock/all.T +++ b/testsuite/tests/perf/haddock/all.T @@ -23,13 +23,11 @@ test('haddock.base', # 2014-10-07: 8322584616 (x86_64/Linux) # 2014-12-14: 9502647104 (x86_64/Linux) - Update to Haddock 2.16 # 2014-01-08: 9014511528 (x86_64/Linux) - Eliminate so-called "silent superclass parameters" (and others) - - ,(platform('i386-unknown-mingw32'), 4434804940, 5) + ,(platform('i386-unknown-mingw32'), 4202377432, 5) # 2013-02-10: 3358693084 (x86/Windows) # 2013-11-13: 3097751052 (x86/Windows, 64bit machine) # 2014-04-04: 3548581572 (x86/Windows, 64bit machine) # 2014-12-01: 4202377432 (x86/Windows, 64bit machine) - # 2015-01-20: 4434804940 (x86/Windows, 64bit machine) ,(wordsize(32), 3799130400, 1)]) # 2012-08-14: 3046487920 (x86/OSX) @@ -66,13 +64,12 @@ test('haddock.Cabal', # 2014-12-14: 6387320816 (x86_64/Linux) - Update to Haddock 2.16 # 2015-01-22: 6710234312 (x86_64/Linux) - Cabal updated - ,(platform('i386-unknown-mingw32'), 3293415576, 5) + ,(platform('i386-unknown-mingw32'), 3088635556, 5) # 2012-10-30: 1733638168 (x86/Windows) # 2013-02-10: 1906532680 (x86/Windows) # 2014-01-28: 1966911336 (x86/Windows) # 2014-04-24: 2052220292 (x86/Windows) # 2014-12-01: 3088635556 (x86/Windows) - # 2015-01-20: 3293415576 ,(wordsize(32), 2127198484, 1)]) # 2012-08-14: 1648610180 (x86/OSX) @@ -87,7 +84,7 @@ test('haddock.compiler', [unless(in_tree_compiler(), skip) ,stats_num_field('bytes allocated', [(wordsize(64), 33562468736, 10) - # 2012P-08-14: 26070600504 (amd64/Linux) + # 2012-08-14: 26070600504 (amd64/Linux) # 2012-08-29: 26353100288 (amd64/Linux, new CG) # 2012-09-18: 26882813032 (amd64/Linux) # 2012-11-12: 25990254632 (amd64/Linux) @@ -95,14 +92,12 @@ test('haddock.compiler', # 2012-11-27: 28708374824 (amd64/Linux) # 2014-09-10: 30353349160 (amd64/Linux) post-AMP cleanup # 2014-11-22: 33562468736 (amd64/Linux) - - ,(platform('i386-unknown-mingw32'), 902576468, 10) + ,(platform('i386-unknown-mingw32'), 217933548, 10) # 2012-10-30: 13773051312 (x86/Windows) # 2013-02-10: 14925262356 (x86/Windows) # 2013-11-13: 14328363592 (x86/Windows, 64bit machine) # 2014-12-01: 104140852 (x86/Windows, sudden shrinkage!) # 2014-12-10: 217933548 increased again - ,(wordsize(32), 15110426000, 1)]) # 2012-08-14: 13471797488 (x86/OSX) # 2014-01-22: 14581475024 (x86/Linux - new haddock) |