From bb697f8bc7b593e5aabb43505f686e6503b7726f Mon Sep 17 00:00:00 2001 From: Yann Herklotz Date: Sat, 29 Jun 2019 20:21:43 +0100 Subject: Fix pedantic warnings --- src/VeriFuzz/Fuzz.hs | 6 +----- src/VeriFuzz/Internal.hs | 13 +++++++++++-- src/VeriFuzz/Report.hs | 3 ++- src/VeriFuzz/Result.hs | 5 +++++ src/VeriFuzz/Sim/Icarus.hs | 4 ++-- 5 files changed, 21 insertions(+), 10 deletions(-) (limited to 'src') diff --git a/src/VeriFuzz/Fuzz.hs b/src/VeriFuzz/Fuzz.hs index 181207c..fcc96d3 100644 --- a/src/VeriFuzz/Fuzz.hs +++ b/src/VeriFuzz/Fuzz.hs @@ -39,9 +39,6 @@ import Control.Monad.Trans.Reader hiding (local) import Control.Monad.Trans.State.Strict import qualified Crypto.Random.DRBG as C import Data.ByteString (ByteString) -import Data.ByteString.Builder (byteStringHex, - toLazyByteString) -import qualified Data.ByteString.Lazy as L import Data.List (nubBy, sort) import Data.Maybe (isNothing) import Data.Text (Text) @@ -224,7 +221,6 @@ simulation src = do resTimes <- liftSh $ mapM (equiv vals) $ conv <$> synth liftSh $ inspect resTimes where - tupEq (a, b) (a', b') = (a == a' && b == b') || (a == b' && b == a') conv (SynthResult a _ _ _) = a equiv b a = toolRun ("simulation for " <> toText a) @@ -371,7 +367,7 @@ fuzz gen conf = do ?~ seed' (tsynth, _) <- titleRun "Synthesis" $ synthesis src (tequiv, _) <- titleRun "Equivalence Check" $ equivalence src - (tsim, _) <- titleRun "Simulation" $ simulation src + (_, _) <- titleRun "Simulation" $ simulation src fails <- failEquivWithIdentity synthFails <- failedSynthesis redResult <- diff --git a/src/VeriFuzz/Internal.hs b/src/VeriFuzz/Internal.hs index 22efa92..fd9d409 100644 --- a/src/VeriFuzz/Internal.hs +++ b/src/VeriFuzz/Internal.hs @@ -14,13 +14,22 @@ module VeriFuzz.Internal ( -- * Useful functions safe , showT + , showBS , comma , commaNL ) where -import Data.Text (Text) -import qualified Data.Text as T +import Data.ByteString (ByteString) +import Data.ByteString.Builder (byteStringHex, toLazyByteString) +import qualified Data.ByteString.Lazy as L +import Data.Text (Text) +import qualified Data.Text as T +import Data.Text.Encoding (decodeUtf8) + +-- | Function to show a bytestring in a hex format. +showBS :: ByteString -> Text +showBS = decodeUtf8 . L.toStrict . toLazyByteString . byteStringHex -- | Converts unsafe list functions in the Prelude to a safe version. safe :: ([a] -> b) -> [a] -> Maybe b diff --git a/src/VeriFuzz/Report.hs b/src/VeriFuzz/Report.hs index fb66275..a3c4ebd 100644 --- a/src/VeriFuzz/Report.hs +++ b/src/VeriFuzz/Report.hs @@ -48,6 +48,7 @@ import Data.ByteString (ByteString) import Data.Maybe (fromMaybe) import Data.Monoid (Endo) import Data.Text (Text) +import qualified Data.Text as T import Data.Text.Lazy (toStrict) import Data.Time import Data.Vector (fromList) @@ -158,7 +159,7 @@ data SimResult = SimResult !SynthTool !SimTool !BResult !NominalDiffTime deriving (Eq) instance Show SimResult where - show (SimResult synth sim r d) = show synth <> ", " <> show sim <> ": " <> show r <> " (" <> show d <> ")" + show (SimResult synth sim r d) = show synth <> ", " <> show sim <> ": " <> show (bimap show (T.unpack . showBS) r) <> " (" <> show d <> ")" getSimResult :: SimResult -> UResult getSimResult (SimResult _ _ (Pass _) _) = Pass () diff --git a/src/VeriFuzz/Result.hs b/src/VeriFuzz/Result.hs index 77aa5b3..c02690f 100644 --- a/src/VeriFuzz/Result.hs +++ b/src/VeriFuzz/Result.hs @@ -31,6 +31,7 @@ import Control.Monad.Base import Control.Monad.IO.Class import Control.Monad.Trans.Class import Control.Monad.Trans.Control +import Data.Bifunctor (Bifunctor (..)) import Shelly (RunFailed (..), Sh, catch_sh) import Shelly.Lifted (MonadSh, liftSh) @@ -64,6 +65,10 @@ instance Monad (Result a) where instance MonadBase (Result a) (Result a) where liftBase = id +instance Bifunctor Result where + bimap a _ (Fail c) = Fail $ a c + bimap _ b (Pass c) = Pass $ b c + -- | The transformer for the 'Result' type. This newtype ResultT a m b = ResultT { runResultT :: m (Result a b) } diff --git a/src/VeriFuzz/Sim/Icarus.hs b/src/VeriFuzz/Sim/Icarus.hs index a5a3227..7f90814 100644 --- a/src/VeriFuzz/Sim/Icarus.hs +++ b/src/VeriFuzz/Sim/Icarus.hs @@ -22,12 +22,12 @@ import Control.Lens import Control.Monad (void) import Crypto.Hash (Digest, hash) import Crypto.Hash.Algorithms (SHA256) -import Data.Binary (decode, encode) +import Data.Binary (encode) import Data.Bits import qualified Data.ByteArray as BA (convert) import Data.ByteString (ByteString) import qualified Data.ByteString as B -import Data.ByteString.Lazy (fromStrict, toStrict) +import Data.ByteString.Lazy (toStrict) import qualified Data.ByteString.Lazy as L (ByteString) import Data.Char (digitToInt) import Data.Foldable (fold) -- cgit