Solidity 0.8.3 is a bugfix release that fixes an important bug about how the optimizer handles the Keccak256 opcode.
For details on the bug, please see the bug blog post.
For a detailed explanation of the new features and changes, please see the release blog post.
Important Bugfixes:
- Optimizer: Fix bug on incorrect caching of Keccak-256 hashes.
Compiler Features:
- Command Line Interface: Drop experimental support for
--machine evm15
. - Optimizer: Try to move
and
with constant insideor
to improve storage writes of small types. - Optimizer: Replace multiplications and divisions with powers of two by shifts.
Bugfixes:
- AST Import: For constructors, a public visibility is ignored during importing.
- Error Reporter: Fix handling of carriage return.
- SMTChecker: Fix internal error in BMC on resolving virtual functions inside branches.
- SMTChecker: Fix internal error on
array.pop
nested inside 1-tuple. - SMTChecker: Fix internal error on
FixedBytes
constant initialized with string literal. - SMTChecker: Fix internal error on array slices.
- SMTChecker: Fix internal error on calling public getter on a state variable of type array (possibly nested) of structs.
- SMTChecker: Fix internal error on pushing to
string
casted tobytes
. - SMTChecker: Fix bug in virtual functions called by constructors.
AST Changes:
- ModifierInvocation: Add
kind
field which can bemodifierInvocation
orbaseConstructorSpecifier
.
We especially thank all the contributors that made this release possible:
Alex Beregszaszi, Alexander Arlt, Bhargava Shastry, Daniel Kirchner, Djordje Mijovic, ghidello, Harikrishnan Mulackal, Kamil Śliwak, Leonardo Alt, Martin Blicha, Mathias Baumann.
If you want to perform a source build, please only use solidity_0.8.3.tar.gz and not the zip provided by github directly.