Changelog for hevm-0.51.0

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[0.51.0] - 2023-04-27

Added

Changed

Fixed

Fixed

[0.50.5] - 2023-04-18

Changed

Fixed

[0.50.4] - 2023-03-17

Fixed

Changed

Added

[0.50.3] - 2023-02-17

Fixed

Added

Changed

[0.50.2] - 2023-01-06

Fixed

[0.50.1] - 2022-12-29

Fixed

Changed

[0.50.0] - 2022-12-19

Changed

The symbolic execution engine has been rewritten. We have removed our dependency on sbv, and now symbolic execution decompiles bytecode into a custom IR, and smt queries are constructed based on the structure of the term in this IR.

This gives us much deeper control over the encoding, and makes custom static analysis and simplification passes much easier to implement.

The symbolic execution engine is now parallel by default, and will distribute granular SMT queries across a pool of solvers, allowing analysis to be scaled out horizontally across many CPUs.

more details can be found in the architecuture docs.

Removed

The following cli commands have been removed:

[0.49.0] - 2021-11-12

Added

Changed

Fixed

[0.48.1] - 2021-09-08

Added

Changed

Fixed

0.48.0 - 2021-08-03

Changed

0.47.0 - 2021-07-01

Added

Changed

Fixed

0.46.0 - 2021-04-29

Added

Fixed

0.45.0 - 2021-03-22

Added

Fixed

Changed

0.44.1 - 2020-02-02

Changed

0.44.0 - 2020-01-26

Added

Fixed

Changed

0.43.2 - 2020-12-10

Changed

0.43.1 - 2020-12-10

Changed

Fixed

0.43.0 - 2020-11-29

Added

Changed

0.42.0 - 2020-10-31

Changed

Added

0.41.0 - 2020-08-19

Changed

Added

0.40 - 2020-07-22

Changed

As a result, the types of several registers of the EVM have changed to admit symbolic values as well as concrete ones.

data Storage
  = Concrete (Map Word SymWord)
  | Symbolic (SArray (WordN 256) (WordN 256))
  deriving (Show)

Added

New cli commands:

See the README for details on usage.

The new module EVM.SymExec exposes several library functions dealing with symbolic execution. In particular,

Removed

The concrete versions of a lot of arithmetic operations, replaced with their more general symbolic counterpart.

0.39 - 2020-07-13

0.38 - 2020-04-23

0.37 - 2020-03-24

0.36 - 2020-01-07

0.35 - 2019-11-02

0.34 - 2019-08-28

0.33 - 2019-08-06

0.32 - 2019-06-14

0.31 - 2019-05-29

0.30 - 2019-05-09

0.29 - 2019-04-03

0.28 - 2019-03-22

0.27 - 2019-02-06

0.26 - 2019-02-05

0.25 - 2019-02-04

0.24 - 2019-01-23

0.23 - 2018-12-12

0.22 - 2018-11-13

0.21 - 2018-10-29

0.20 - 2018-10-27

0.19 - 2018-10-09

0.18 - 2018-10-09

0.17 - 2018-10-05

0.16 - 2018-09-19

[0.15] - 2018-05-09

[0.14.1] - 2018-04-17

[0.14] - 2018-03-08

[0.13] - 2018-02-28

[0.12.3] - 2017-12-19

[0.12.2] - 2017-12-17

[0.12.1] - 2017-11-28

0.12 - 2017-11-14

0.11.5 - 2017-11-14

0.11.4 - 2017-11-12

0.11.3 - 2017-11-08

0.11.2 - 2017-11-04

0.11.1 - 2017-11-02

0.11 - 2017-10-31

0.10.9 - 2017-10-23

0.10.7 - 2017-10-19

0.10.6 - 2017-10-19

0.10.5 - 2017-10-17

0.10 - 2017-10-10

0.9.5 - 2017-10-06

0.9 - 2017-09-29

0.8.5 - 2017-09-22

0.8 - 2017-09-21

0.7 - 2017-09-07

0.6.5 - 2017-09-01

0.6.1 - 2017-08-03

0.6 - 2017-08-03

0.5 - 2017-08-02

0.4 - 2017-07-31

0.3.2 - 2017-06-17

0.3.0 - 2017-06-14

0.2.0 - 2017-06-13

0.1.0.1 - 2017-03-31

0.1.0.0 - 2017-03-29