summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2015-01-22 10:52:02 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2015-01-22 10:52:02 +0000
commitccbe2b8b8a564598dfbb72e2cd617c8f0c891b9a (patch)
tree17751a7ee98345b2c3113a43ae5680c701be1c71
parent8a29493dc35d28b42105501ad19ba7e82448772a (diff)
downloadhaskell-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.
-rw-r--r--libraries/haskell98/.gitignore3
-rw-r--r--libraries/haskell98/Array.hs15
-rw-r--r--libraries/haskell98/Bits.hs8
-rw-r--r--libraries/haskell98/CError.hs8
-rw-r--r--libraries/haskell98/CForeign.hs7
-rw-r--r--libraries/haskell98/CPUTime.hs9
-rw-r--r--libraries/haskell98/CString.hs7
-rw-r--r--libraries/haskell98/CTypes.hs7
-rw-r--r--libraries/haskell98/Char.hs18
-rw-r--r--libraries/haskell98/Complex.hs11
-rw-r--r--libraries/haskell98/Directory.hs46
-rw-r--r--libraries/haskell98/ForeignPtr.hs7
-rw-r--r--libraries/haskell98/IO.hs74
-rw-r--r--libraries/haskell98/Int.hs7
-rw-r--r--libraries/haskell98/Ix.hs10
-rw-r--r--libraries/haskell98/LICENSE28
-rw-r--r--libraries/haskell98/List.hs34
-rw-r--r--libraries/haskell98/Locale.hs17
-rw-r--r--libraries/haskell98/MarshalAlloc.hs7
-rw-r--r--libraries/haskell98/MarshalArray.hs7
-rw-r--r--libraries/haskell98/MarshalError.hs22
-rw-r--r--libraries/haskell98/MarshalUtils.hs7
-rw-r--r--libraries/haskell98/Maybe.hs16
-rw-r--r--libraries/haskell98/Monad.hs19
-rw-r--r--libraries/haskell98/Numeric.hs48
-rw-r--r--libraries/haskell98/Prelude.hs196
-rw-r--r--libraries/haskell98/Ptr.hs7
-rw-r--r--libraries/haskell98/Random.hs407
-rw-r--r--libraries/haskell98/Ratio.hs10
-rw-r--r--libraries/haskell98/Setup.hs6
-rw-r--r--libraries/haskell98/StablePtr.hs7
-rw-r--r--libraries/haskell98/Storable.hs7
-rw-r--r--libraries/haskell98/System.hs15
-rw-r--r--libraries/haskell98/Time.hs22
-rw-r--r--libraries/haskell98/Word.hs7
-rw-r--r--libraries/haskell98/changelog.md15
-rw-r--r--libraries/haskell98/haskell98.cabal86
-rw-r--r--libraries/haskell98/prologue.txt9
-rw-r--r--testsuite/tests/perf/compiler/all.T7
-rw-r--r--testsuite/tests/perf/haddock/all.T13
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)