packages feed

hbf 0.1.0.2 → 0.2.0.0

raw patch · 9 files changed

+23/−18 lines, 9 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- HBF.Compiler: instance Data.Semigroup.Semigroup HBF.Compiler.FusedProgram
- HBF.Types: instance Data.Semigroup.Semigroup (HBF.Types.Program o)
- HBF.Types: instance GHC.Base.Monad m => HBF.Types.MachineIO (Control.Monad.Trans.State.Lazy.StateT HBF.Types.MockIO m)
+ HBF.Compiler: instance GHC.Base.Semigroup HBF.Compiler.FusedProgram
+ HBF.Types: instance GHC.Base.Monad m => HBF.Types.MachineIO (Control.Monad.Trans.State.Strict.StateT HBF.Types.MockIO m)
+ HBF.Types: instance GHC.Base.Semigroup (HBF.Types.Program o)
- HBF.Compiler: data ParseError :: *
+ HBF.Compiler: data ParseError
- HBF.Parser: data ParseError :: *
+ HBF.Parser: data ParseError

Files

ChangeLog.md view
@@ -11,3 +11,8 @@ ## 0.1.0.2 -- 2018-06-26  Minor changes to README and travis script++## 0.2.0.0 -- 2018-07-04++  - Use strict StateT for tests.+  - Fix hpack escape for ghc-options
bench/Main.hs view
@@ -1,6 +1,6 @@ module Main where -import           Control.Monad.Trans.State (execStateT)+import           Control.Monad.Trans.State.Strict (execStateT) import           Criterion.Main import qualified Data.Text.Lazy.IO         as TIO import           System.FilePath           (takeBaseName)
hbf.cabal view
@@ -2,10 +2,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: d0a2bab316b8254089629b690ac242bffc13bc51cd5d53ff8037f99af9ce20ce+-- hash: 56df657de174d194d56b8c72e4f4d3b87fce264c956fe1ac7899735a657145e7  name:                hbf-version:             0.1.0.2+version:             0.2.0.0 cabal-version:       >= 1.10 build-type:          Simple license:             GPL-3@@ -91,7 +91,7 @@     , transformers >=0.5.2.0     , vector >=0.12.0.1   if flag(profile)-    ghc-options: -fprof-auto -with-rtsopts='-p -s -h -i0.05'+    ghc-options: -fprof-auto "-with-rtsopts=-p -s -h -i0.05"   default-language: Haskell2010  executable hbfc
src/HBF/Compiler.hs view
@@ -19,7 +19,7 @@   ) where  import           Control.Monad             (when)-import           Control.Monad.Trans.State (State, execState, get, modify, put)+import           Control.Monad.Trans.State.Strict (State, execState, get, modify, put) import qualified Data.Binary               as B import           Data.ByteString.Lazy      (ByteString) import           Data.Coerce               (coerce)
src/HBF/Types.hs view
@@ -18,7 +18,7 @@  import           Control.DeepSeq                (NFData) import           Control.Exception              (catch)-import           Control.Monad.Trans.State.Lazy (StateT, get, modify, put)+import           Control.Monad.Trans.State.Strict (StateT, get, modify, put) import           Data.Binary                    (Binary) import           Data.Char                      (chr, ord) import           Data.Int                       (Int8)
tests/CompilerTest.hs view
@@ -1,13 +1,11 @@ module CompilerTest where -import           Control.Monad.Trans.State (execStateT) import qualified Data.Text.Lazy.IO         as TIO import           Hedgehog import qualified Hedgehog                  as H import           Test.HUnit  import           HBF.Compiler-import qualified HBF.Eval                  as E import           HBF.Types import           Helper @@ -74,7 +72,7 @@   b <- exec unoptimized   a @?= b   where-    exec program = execStateT (E.eval program) (mkMockIOS "25454\n")+    exec program = execProgram program (mkMockIOS "25454\n")  fullyFused :: Program o -> Bool fullyFused p = all (uncurry fused) (zip ops (tail ops))
tests/EvalTest.hs view
@@ -1,6 +1,5 @@ module EvalTest where -import           Control.Monad.Trans.State (runStateT) import           Data.Char                 (ord) import           Data.Int                  (Int8) import qualified Data.Text.Lazy.IO         as TIO@@ -76,8 +75,9 @@   code <- TIO.readFile "tests/allfeatures.bf"   let (Right (program, _)) = C.inMemoryCompile C.defaultCompilerOptions code   (finalMachine, finalState) <--    runStateT-      (E.evalWith E.defaultVMOptions {E.vmOptsMemoryBytes = bytes} program)+    execProgramWith+      program+      E.defaultVMOptions {E.vmOptsMemoryBytes = bytes}       (mkMockIOS "0")   mockOutputS finalState @?= expectedOutput   memory finalMachine @?= expectedMemory
tests/Helper.hs view
@@ -6,7 +6,7 @@ -- needed for smallcheck module Helper where -import           Control.Monad.Trans.State (runStateT)+import           Control.Monad.Trans.State.Strict (runStateT) import           Data.Coerce               (coerce) import           Data.Int                  (Int8) import           Data.Semigroup            (Semigroup, (<>))@@ -22,7 +22,7 @@ import           HBF.Compiler              (CompilerOptions (..),                                             defaultCompilerOptions,                                             inMemoryCompile)-import           HBF.Eval                  (MachineType, eval)+import           HBF.Eval                  (MachineType, eval, evalWith, VMOptions, defaultVMOptions) import           HBF.Parser import           HBF.Types @@ -123,8 +123,11 @@   -> Series m a6 cons5 f = decDepth $ f <$> series <~> series <~> series <~> series <~> series +execProgramWith :: Program Optimized -> VMOptions -> MockIO -> IO (MachineType, MockIO)+execProgramWith p options = runStateT (evalWith options p)+ execProgram :: Program Optimized -> MockIO -> IO (MachineType, MockIO)-execProgram p = runStateT (eval p)+execProgram p = execProgramWith p defaultVMOptions  execProgramS :: Program Optimized -> String -> IO (MachineType, MockIO) execProgramS p input = runStateT (eval p) (mkMockIOS input)
tests/IntegrationTests.hs view
@@ -2,14 +2,13 @@  module IntegrationTests where -import           Control.Monad.Trans.State (execStateT) import           System.IO                 (hClose) import           System.IO.Temp            (withSystemTempFile) import           Test.HUnit  import qualified HBF.Compiler              as C-import qualified HBF.Eval                  as E import           HBF.Types+import           Helper  squaresPath :: FilePath squaresPath = "tests/squares.bf"@@ -31,5 +30,5 @@ unit_compileAndEvalSquares :: Assertion unit_compileAndEvalSquares = do   program <- compile squaresPath-  mock <- execStateT (E.eval program) (mkMockIO [])+  (_,mock) <- execProgram program (mkMockIO [])   mockOutputS mock @?= squaresResult