From: qrczak Date: Tue, 22 May 2001 19:25:49 +0000 (+0000) Subject: [project @ 2001-05-22 19:25:49 by qrczak] X-Git-Tag: Approximately_9120_patches~1894 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=7a8055296b92b3aae1288f8b627292f65f91941f;p=ghc-hetmet.git [project @ 2001-05-22 19:25:49 by qrczak] Remove module dependency loop: don't import PrelIOBase in PrelRead. readIO is in PrelIO, remove it from PrelRead. Derive instance Read BufferMode automatically. --- diff --git a/ghc/lib/std/PrelIOBase.lhs b/ghc/lib/std/PrelIOBase.lhs index 918d3ed..351f271 100644 --- a/ghc/lib/std/PrelIOBase.lhs +++ b/ghc/lib/std/PrelIOBase.lhs @@ -1,5 +1,5 @@ % ------------------------------------------------------------------------------ -% $Id: PrelIOBase.lhs,v 1.39 2001/05/22 15:06:47 simonmar Exp $ +% $Id: PrelIOBase.lhs,v 1.40 2001/05/22 19:25:49 qrczak Exp $ % % (c) The University of Glasgow, 1994-2001 % @@ -14,13 +14,13 @@ module PrelIOBase where import PrelST -import PrelRead import PrelArr import PrelBase import PrelNum -- To get fromInteger etc, needed because of -fno-implicit-prelude import PrelMaybe ( Maybe(..) ) import PrelShow import PrelList +import PrelRead import PrelDynamic -- --------------------------------------------------------------------------- @@ -219,7 +219,6 @@ bufferIsWritable _other = False bufferEmpty :: Buffer -> Bool bufferEmpty Buffer{ bufRPtr=r, bufWPtr=w } = r == w -bufferEmpty _other = False -- only makes sense for a write buffer bufferFull :: Buffer -> Bool @@ -284,7 +283,7 @@ type FilePath = String data BufferMode = NoBuffering | LineBuffering | BlockBuffering (Maybe Int) - deriving (Eq, Ord, Show, Read) + deriving (Eq, Ord, Read, Show) -- --------------------------------------------------------------------------- -- IORefs diff --git a/ghc/lib/std/PrelRead.lhs b/ghc/lib/std/PrelRead.lhs index 995b9e6..67a8194 100644 --- a/ghc/lib/std/PrelRead.lhs +++ b/ghc/lib/std/PrelRead.lhs @@ -1,5 +1,5 @@ % ------------------------------------------------------------------------------ -% $Id: PrelRead.lhs,v 1.18 2001/02/28 00:01:03 qrczak Exp $ +% $Id: PrelRead.lhs,v 1.19 2001/05/22 19:25:49 qrczak Exp $ % % (c) The University of Glasgow, 1994-2000 % @@ -13,7 +13,7 @@ Instances of the Read class. module PrelRead where -import PrelErr ( error ) +import {-# SOURCE #-} PrelErr ( error ) import PrelEnum ( Enum(..), maxBound ) import PrelNum import PrelReal @@ -24,8 +24,8 @@ import PrelShow -- isAlpha etc import PrelBase -- needed for readIO and instance Read Buffermode -import PrelIOBase ( IO, userError, BufferMode(..) ) -import PrelException ( ioError ) +--import PrelIOBase ( IO, userError, BufferMode(..) ) +--import PrelException ( ioError ) \end{code} %********************************************************* @@ -101,19 +101,6 @@ read s = (x,str1) <- reads str ("","") <- lex str1 return x - - -- raises an exception instead of an error -readIO :: Read a => String -> IO a -readIO s = case (do { (x,t) <- reads s ; ("","") <- lex t ; return x }) of -#ifndef NEW_READS_REP - [x] -> return x - [] -> ioError (userError "Prelude.readIO: no parse") - _ -> ioError (userError "Prelude.readIO: ambiguous parse") -#else - Just x -> return x - Nothing -> ioError (userError "Prelude.readIO: no parse") -#endif - \end{code} \begin{code} @@ -623,26 +610,3 @@ readRational__ top_s #endif \end{code} - -%********************************************************* -%* * -\subsection{Reading BufferMode} -%* * -%********************************************************* - -This instance decl is here rather than somewhere more appropriate in -order that we can avoid both orphan-instance modules and recursive -dependencies. - -\begin{code} -instance Read BufferMode where - readsPrec _ = - readParen False - (\r -> let lr = lex r - in - [(NoBuffering, rest) | ("NoBuffering", rest) <- lr] ++ - [(LineBuffering,rest) | ("LineBuffering",rest) <- lr] ++ - [(BlockBuffering mb,rest2) | ("BlockBuffering",rest1) <- lr, - (mb, rest2) <- reads rest1]) - -\end{code}