Version 0.6.9
This is the first release of Solidity where the solc-js / soljson binary includes the Z3 SMT solver built-in. This means you can use pragma experimental SMTChecker;
even without a local install of z3. Note that this causes an increase in the binary size.
On the language side, the calldata
data location for variables and parameters is now allowed everywhere, even in internal functions.
To enhance developer experience, the option --base-path
allows you to specify a root path of your contract directory structure to help with imports.
Language Features:
- Permit calldata location for all variables.
- NatSpec: Support NatSpec comments on state variables.
- Yul: EVM instruction
pc()
is marked deprecated and will be removed in the next breaking release.
Compiler Features:
- Build system: Update the soljson.js build to emscripten 1.39.15 and boost 1.73.0 and include Z3 for integrated SMTChecker support without the callback mechanism.
- Build system: Switch the emscripten build from the fastcomp backend to the upstream backend.
- Code Generator: Do not introduce new internal source references for small compiler routines.
- Commandline Interface: Adds new option
--base-path PATH
to use the given path as the root of the source tree (defaults to the root of the filesystem). - SMTChecker: Support array
length
. - SMTChecker: Support array
push
andpop
. - SMTChecker: General support to BitVectors and the bitwise
and
operator.
Bugfixes:
- Code Generator: Trigger proper unimplemented errors on certain array copy operations.
- Commandline Interface: Fix internal error when using
--assemble
or--yul
options with--machine ewasm
but without specifying--yul-dialect
. - NatSpec: DocString block is terminated when encountering an empty line.
- Optimizer: Fixed a bug in BlockDeDuplicator.
- Scanner: Fix bug when two empty NatSpec comments lead to scanning past EOL.
- SMTChecker: Fix internal error on try/catch clauses with parameters.
- SMTChecker: Fix internal error when applying arithmetic operators to fixed point variables.
- SMTChecker: Fix internal error when assigning to index access inside branches.
- SMTChecker: Fix internal error when short circuiting Boolean expressions with function calls in state variable initialization.
- Type Checker: Disallow assignments to storage variables of type
mapping
. - Type Checker: Disallow inline arrays of non-nameable types.
- Type Checker: Disallow usage of override with non-public state variables.
- Type Checker: Fix internal compiler error when accessing members of array slices.
- Type Checker: Fix internal compiler error when forward referencing non-literal constants from inline assembly.
- Type Checker: Fix internal compiler error when trying to decode too large static arrays.
- Type Checker: Fix wrong compiler error when referencing an overridden function without calling it.
We especially thank all the contributors that made this release possible:
a3d4, Alex Beregszaszi, Alexander Arlt, Bhargava Shastry, Christian Parpart, Daniel Kirchner, Djordje Mijovic, Erik Kundt, Flash Sheridan, Harikrishnan Mulackal, Jason Cobb, Juan Franco, Kamil Śliwak, Leonardo Alt, Mathias Baumann, ssi91, William Entriken
If you want to perform a source build, please only use solidity_0.6.9.tar.gz and not the zip provided by github directly.