diff options
author | simonpj <unknown> | 1999-07-06 16:46:12 +0000 |
---|---|---|
committer | simonpj <unknown> | 1999-07-06 16:46:12 +0000 |
commit | 9d38678ea60ff32f756390a30c659daa22c98c93 (patch) | |
tree | 520970e39a3c81cdeb22271b83e576e726abdb37 /ghc/lib/posix | |
parent | 47a40c89ca2e588b62d986a58907e178bce1de4f (diff) | |
download | haskell-9d38678ea60ff32f756390a30c659daa22c98c93.tar.gz |
[project @ 1999-07-06 16:45:31 by simonpj]
All Simon's recent tuning changes. Rough summary follows:
* Fix Kevin Atkinson's cant-find-instance bug. Turns out that Rename.slurpSourceRefs
needs to repeatedly call getImportedInstDecls, and then go back to slurping
source-refs. Comments with Rename.slurpSourceRefs.
* Add a case to Simplify.mkDupableAlt for the quite-common case where there's
a very simple alternative, in which case there's no point in creating a
join-point binding.
* Fix CoreUtils.exprOkForSpeculation so that it returns True of (==# a# b#).
This lack meant that
case ==# a# b# of { True -> x; False -> x }
was not simplifying
* Make float-out dump bindings at the top of a function argument, as
at the top of a let(rec) rhs. See notes with FloatOut.floatRhs
* Make the ArgOf case of mkDupableAlt generate a OneShot lambda.
This gave a noticeable boost to spectral/boyer2
* Reduce the number of coerces, using worker/wrapper stuff.
The main idea is in WwLib.mkWWcoerce. The gloss is that we must do
the w/w split even for small non-recursive things. See notes with
WorkWrap.tryWw.
* This further complicated getWorkerId, so I finally bit the bullet and
make the workerInfo field of the IdInfo work properly, including
under substitutions. Death to getWorkerId. Kevin Glynn will be happy.
* Make all lambdas over realWorldStatePrimTy
into one-shot lambdas. This is a GROSS HACK.
* Also make the occurrence analyser aware of one-shot lambdas.
* Make various Prelude things into INLINE, so that foldr doesn't
get inlined in their body, so that the caller gets the benefit
of fusion. Notably in PrelArr.lhs.
Diffstat (limited to 'ghc/lib/posix')
-rw-r--r-- | ghc/lib/posix/Posix.lhs | 2 | ||||
-rw-r--r-- | ghc/lib/posix/PosixIO.lhs | 4 | ||||
-rw-r--r-- | ghc/lib/posix/PosixProcEnv.lhs | 6 | ||||
-rw-r--r-- | ghc/lib/posix/PosixProcPrim.lhs | 2 |
4 files changed, 7 insertions, 7 deletions
diff --git a/ghc/lib/posix/Posix.lhs b/ghc/lib/posix/Posix.lhs index 93f70a226a..b758e07367 100644 --- a/ghc/lib/posix/Posix.lhs +++ b/ghc/lib/posix/Posix.lhs @@ -84,7 +84,7 @@ runProcess path args env dir stdin stdout stderr = do pid <- forkProcess case pid of Nothing -> doTheBusiness - Just x -> return () + Just _ -> return () where doTheBusiness :: IO () doTheBusiness = do diff --git a/ghc/lib/posix/PosixIO.lhs b/ghc/lib/posix/PosixIO.lhs index 8a0713be48..4baf007648 100644 --- a/ghc/lib/posix/PosixIO.lhs +++ b/ghc/lib/posix/PosixIO.lhs @@ -128,8 +128,8 @@ fdToHandle fd@(FD# fd#) = do fd_str = "<file descriptor: " ++ show (I# fd#) ++ ">" fdRead :: Fd -> ByteCount -> IO (String, ByteCount) -fdRead fd 0 = return ("", 0) -fdRead fd nbytes = do +fdRead _fd 0 = return ("", 0) +fdRead fd nbytes = do bytes <- allocChars nbytes rc <- _ccall_ read fd bytes nbytes case rc of diff --git a/ghc/lib/posix/PosixProcEnv.lhs b/ghc/lib/posix/PosixProcEnv.lhs index 7d33f0ea84..bd0394adf2 100644 --- a/ghc/lib/posix/PosixProcEnv.lhs +++ b/ghc/lib/posix/PosixProcEnv.lhs @@ -245,10 +245,10 @@ getTerminalName fd = do if str == nullAddr then do err <- try (queryTerminal fd) - either (\err -> syserr "getTerminalName") - (\succ -> if succ then ioError (IOError Nothing NoSuchThing + either (\ _err -> syserr "getTerminalName") + (\ succ -> if succ then ioError (IOError Nothing NoSuchThing "getTerminalName" "no name") - else ioError (IOError Nothing InappropriateType + else ioError (IOError Nothing InappropriateType "getTerminalName" "not a terminal")) err else strcpy str diff --git a/ghc/lib/posix/PosixProcPrim.lhs b/ghc/lib/posix/PosixProcPrim.lhs index 7e93a2111b..ffe72145f2 100644 --- a/ghc/lib/posix/PosixProcPrim.lhs +++ b/ghc/lib/posix/PosixProcPrim.lhs @@ -178,7 +178,7 @@ getGroupProcessStatus block stopped pgid = do getAnyProcessStatus :: Bool -> Bool -> IO (Maybe (ProcessID, ProcessStatus)) getAnyProcessStatus block stopped = getGroupProcessStatus block stopped 1 `catch` - \ err -> syserr "getAnyProcessStatus" + \ _err -> syserr "getAnyProcessStatus" exitImmediately :: ExitCode -> IO () exitImmediately exitcode = do |