packages feed

hevm 0.50.1 → 0.50.2

raw patch · 4 files changed

+16/−16 lines, 4 filesdep −fgldep −parsecdep −s-cargotPVP ok

version bump matches the API change (PVP)

Dependencies removed: fgl, parsec, s-cargot, semver-range

API changes (from Hackage documentation)

Files

CHANGELOG.md view
@@ -5,9 +5,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.50.2] - 2023-01-06++### Fixed++- Arithmetic overflow in concrete `SAR` edge case ([#163](https://github.com/ethereum/hevm/pull/163))+- Unexpected abstract term application during fully concrete execution ([#163](https://github.com/ethereum/hevm/pull/163))+ ## [0.50.1] - 2022-12-29 -## Fixed+### Fixed  - `hevm exec` no longer fails with `hevm: No match in record selector smttimeout` - the `gas`, `gaslimit`, `priorityfee`, and `gasprice` cli options are now respected
hevm.cabal view
@@ -2,7 +2,7 @@ name:   hevm version:-  0.50.1+  0.50.2 synopsis:   Ethereum virtual machine evaluator description:@@ -141,7 +141,6 @@     cryptonite                        >= 0.30 && < 0.31,     memory                            >= 0.16.0 && < 0.20,     data-dword                        >= 0.3.1 && < 0.4,-    fgl                               >= 5.7.0 && < 5.8,     free                              >= 5.1.3 && < 5.2,     haskeline                         >= 0.8.0 && < 0.9,     process                           >= 1.6.5 && < 1.7,@@ -155,8 +154,6 @@     quickcheck-text                   >= 0.1.2 && < 0.2,     restless-git                      >= 0.7 && < 0.8,     rosezipper                        >= 0.2 && < 0.3,-    s-cargot                          >= 0.1.4 && < 0.2,-    semver-range                      >= 0.2.7 && < 0.3,     temporary                         >= 1.3 && < 1.4,     witherable                        >= 0.3.5 && < 0.5,     wreq                              >= 0.5.3 && < 0.6,@@ -167,7 +164,6 @@     smt2-parser                       >= 0.1.0.1,     word-wrap                         >= 0.5 && < 0.6,     spool                             >= 0.1 && < 0.2,-    parsec                            >= 3.1.15 && < 3.2,   hs-source-dirs:     src 
src/EVM/Expr.hs view
@@ -181,8 +181,12 @@  sar :: Expr EWord -> Expr EWord -> Expr EWord sar = op2 SAR (\x y ->-  let asSigned = (fromIntegral y) :: Int256-  in fromIntegral $ shiftR asSigned (fromIntegral x))+  let msb = testBit y 255+      asSigned = fromIntegral y :: Int256+  in if x > 256 then+       if msb then maxBound else 0+     else+       fromIntegral $ shiftR asSigned (fromIntegral x))  -- ** Bufs ** -------------------------------------------------------------------------------------- @@ -319,7 +323,6 @@  copySlice a@(Lit srcOffset) b@(Lit dstOffset) c@(Lit size) d@(ConcreteBuf src) e@(ConcreteBuf dst)   | dstOffset < maxBytes-  , srcOffset < maxBytes   , size < maxBytes =       let hd = padRight (num dstOffset) $ BS.take (num dstOffset) dst           sl = if srcOffset > num (BS.length src)
test/BlockchainTests.hs view
@@ -112,13 +112,7 @@  commonProblematicTests :: Map String (TestTree -> TestTree) commonProblematicTests = Map.fromList-  [ ("twoOps_d0g0v0_London", expectFailBecause "TODO: regression")-  , ("sar_2^256-1_0_d0g0v0_London", expectFailBecause "TODO: regression")-  , ("shiftCombinations_d0g0v0_London", expectFailBecause "TODO: regression")-  , ("shiftSignedCombinations_d0g0v0_London", expectFailBecause "TODO: regression")-  , ("bufferSrcOffset_d14g0v0_London", expectFailBecause "TODO: regression")-  , ("bufferSrcOffset_d38g0v0_London", expectFailBecause "TODO: regression")-  , ("loopMul_d0g0v0_London", ignoreTestBecause "hevm is too slow")+  [ ("loopMul_d0g0v0_London", ignoreTestBecause "hevm is too slow")   , ("loopMul_d1g0v0_London", ignoreTestBecause "hevm is too slow")   , ("loopMul_d2g0v0_London", ignoreTestBecause "hevm is too slow")   , ("CALLBlake2f_MaxRounds_d0g0v0_London", ignoreTestBecause "very slow, bypasses timeout due time spent in FFI")