aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYann Herklotz <git@yannherklotz.com>2019-06-29 20:21:43 +0100
committerYann Herklotz <git@yannherklotz.com>2019-06-29 20:21:43 +0100
commitbb697f8bc7b593e5aabb43505f686e6503b7726f (patch)
treee25f874fa5b68224337b016e1d17ef45204e45c0
parent8734d40f4842065ce5a579eb0cc77171bbd436b0 (diff)
downloadverismith-bb697f8bc7b593e5aabb43505f686e6503b7726f.tar.gz
verismith-bb697f8bc7b593e5aabb43505f686e6503b7726f.zip
Fix pedantic warnings
-rw-r--r--src/VeriFuzz/Fuzz.hs6
-rw-r--r--src/VeriFuzz/Internal.hs13
-rw-r--r--src/VeriFuzz/Report.hs3
-rw-r--r--src/VeriFuzz/Result.hs5
-rw-r--r--src/VeriFuzz/Sim/Icarus.hs4
5 files changed, 21 insertions, 10 deletions
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)