Breaking changes:
- Increase the bounds of the decimal type (#2730)
- Generalize and simplify the semantics of the convert builtin (#2694)
- Restrict hex and bytes literals (#2736, #2872)
Non-breaking changes and improvements:
- Implement dynamic arrays (#2556, #2606, #2615)
- Support all ABIv2 integer and bytes types (#2705)
- Add storage layout override mechanism (#2593)
- Support
<address>.code
attribute (#2583) - Add
tx.gasprice
builtin (#2624) - Allow structs as constant variables (#2617)
- Implement
skip_contract_check
kwarg (#2551) - Support EIP-2678 ethPM manifest files (#2628)
- Add
metadata
output format (#2597) - Allow
msg.*
variables in internal functions (#2632) - Add
unsafe_
arithmetic builtins (#2629) - Add subroutines to Vyper IR (#2598)
- Add
select
opcode to Vyper IR (#2690) - Allow lists of any type as loop variables (#2616)
- Improve suggestions in error messages (#2806)
Notable fixes:
- Clamping of returndata from external calls in complex expressions (GHSA-4mrx-6fxm-8jpg, GHSA-j2x6-9323-fp7h)
- Bytestring equality for (
N<=32
) (GHSA-7vrm-3jc8-5wwm) - Typechecking of constant variables (#2580, #2603)
- Referencing immutables in constructor (#2627)
- Arrays of interfaces in for loops (#2699)
Lots of optimizations, refactoring and other fixes made it into this release! For the full list, please see the changelog.
Special thanks to returning contributors @tserg, @skellet0r and @fubuloubu!
New Contributors
- @hi-ogawa made their first contribution in #2577
- @abdullathedruid made their first contribution in #2593
- @Sud0u53r made their first contribution in #2604
- @davidhq made their first contribution in #2679
- @onlymaresia made their first contribution in #2712
- @hitsuzen-eth made their first contribution in #2729
Full Changelog: v0.3.1...v0.3.2