This release of Solidity adds more flexibility to inheriting NatSpec and improves the handling of the stack.
Language Features:
- NatSpec: Implement tag
@inheritdoc
to copy documentation from a specific base contract. - Wasm backend: Add
i32.ctz
,i64.ctz
,i32.popcnt
, andi64.popcnt
.
Compiler Features:
- Code Generator: Avoid double cleanup when copying to memory.
- Code Generator: Evaluate
keccak256
of string literals at compile-time. - Optimizer: Add rule to remove shifts inside the byte opcode.
- Peephole Optimizer: Add rule to remove swap after dup.
- Peephole Optimizer: Remove unnecessary masking of tags.
- Yul EVM Code Transform: Free stack slots directly after visiting the right-hand-side of variable declarations instead of at the end of the statement only.
Bugfixes:
- SMTChecker: Fix error in events with indices of type static array.
- SMTChecker: Fix internal error in sequential storage array pushes (
push().push()
). - SMTChecker: Fix internal error when using bitwise operators on fixed bytes type.
- SMTChecker: Fix internal error when using compound bitwise operator assignments on array indices inside branches.
- Type Checker: Fix internal compiler error related to oversized types.
- Type Checker: Fix overload resolution in combination with
{value: ...}
.
Build System
- Update internal dependency of jsoncpp to 1.9.3.
We especially thank all the contributors that made this release possible:
a3d4, Alex Beregszaszi, Alexander Arlt, Bhargava Shastry, Daniel Kirchner, Djordje Mijovic, Kamil Śliwak, Leonardo Alt, Mathias Baumann, Sachin Grover, Tiny熊,
If you want to perform a source build, please only use solidity_0.6.12.tar.gz and not the zip provided by github directly.