Skip to content

Releases: vyperlang/vyper

v0.3.10rc3

08 Sep 14:29
3b310d5
Compare
Choose a tag to compare
v0.3.10rc3 Pre-release
Pre-release
chore(ci): fix binary names in release asset upload (#3597)

rename binary during asset upload to properly escape the filename for
the github API call.

(Github API states:
> GitHub renames asset filenames that have special characters,
non-alphanumeric characters, and leading or trailing periods. The "List
release assets" endpoint lists the renamed filenames. For more
information and help, contact GitHub Support.
)

v0.3.10rc2

06 Sep 21:57
0cb37e3
Compare
Choose a tag to compare
v0.3.10rc2 Pre-release
Pre-release

This release candidate fixes a binary packaging issue from https://github.com/vyperlang/vyper/releases/tag/v0.3.10rc1.
The fix was applied in #3594.

What's Changed

Full Changelog: v0.3.10rc1...v0.3.10rc2

v0.3.10rc1

06 Sep 20:48
bb6e69a
Compare
Choose a tag to compare
v0.3.10rc1 Pre-release
Pre-release

Release candidate for https://github.com/vyperlang/vyper/releases/tag/v0.3.10, the below changes are a subset of those documented in the v0.3.10 release notes.

v0.3.10 is a performance focused release. It adds a codesize optimization mode (#3493), adds new vyper-specific #pragma directives (#3493), uses Cancun’s MCOPY opcode for some compiler generated code (#3483), and generates selector tables which now feature O(1) performance (#3496).

Breaking changes

  • add runtime code layout to initcode (#3584)
  • drop evm versions through istanbul (#3470)
  • remove vyper signature from runtime (#3471)

Non-breaking changes and improvements

Notable fixes:

  • fix ecrecover() behavior when signature is invalid (GHSA-f5x6-7qgp-jhf3, #3586)
  • fix: order of evaluation for some builtins (#3583, #3587)
  • fix: pycryptodome for arm builds (#3485)
  • let params of internal functions be mutable (#3473)
  • typechecking of folded builtins in (#3490)
  • update tload/tstore opcodes per latest 1153 EIP spec (#3484)
  • fix: raw_call type when max_outsize=0 is set (#3572)
  • fix: implements check for indexed event arguments (#3570)

Other docs updates, chores and fixes:

  • relax restrictions on internal function signatures (#3573)
  • note on security advisory in release notes for versions 0.2.15, 0.2.16, and 0.3.0 (#3553)
  • fix: yanked version in release notes (#3545)
  • update release notes on yanked versions (#3547)
  • improve error message for conflicting methods IDs (#3491)
  • document epsilon builtin (#3552)
  • relax version pragma parsing (#3511)
  • fix: issue with finding installed packages in editable mode (#3510)
  • add note on security advisory for ecrecover in docs (#3539)
  • add asm option to cli help (#3585)
  • add message to error map for repeat range check (#3542)
  • fix: public constant arrays (#3536)

New Contributors

Full Changelog: v0.3.9...v0.3.10rc1

v0.3.9 ("Common Adder")

29 May 15:36
66b9670
Compare
Choose a tag to compare

What's Changed

Date released: 2023-05-29

This is a patch release fix for v0.3.8. @bout3fiddy discovered a codesize regression for blueprint contracts in v0.3.8 which is fixed in this release. @bout3fiddy also discovered a runtime performance (gas) regression for default functions in v0.3.8 which is fixed in this release.

Fixes:

  • initcode codesize blowup (#3450)
  • add back global calldatasize check for contracts with default fn (#3463)

Full Changelog: v0.3.8...v0.3.9

v0.3.8

23 May 15:00
036f153
Compare
Choose a tag to compare

What's Changed

Non-breaking changes and improvements:

  • transient storage keyword (#3373)
  • ternary operators (#3398)
  • raw_revert() builtin (#3136)
  • shift operators (#3019)
  • make send() gas stipend configurable (#3158)
  • use new push0 opcode (#3361)
  • python 3.11 support (#3129)
  • drop support for python 3.8 and 3.9 (#3325)
  • build for aarch64 (#2687)

Major refactoring PRs:

  • refactor front-end type system (#2974)
  • merge front-end and codegen type systems (#3182)
  • simplify GlobalContext (#3209)
  • remove FunctionSignature (#3390)

Notable fixes:

Other docs updates, chores and fixes:

  • call graph stability (#3370)
  • fix vyper-serve output (#3338)
  • add custom: natspec tags (#3403)
  • add missing pc maps to vyper_json output (#3333)
  • fix constructor context for internal functions (#3388)
  • add deprecation warning for selfdestruct usage (#3372)
  • add bytecode metadata option to vyper-json (#3117)
  • fix compiler panic when a break is outside of a loop (#3177)
  • fix complex arguments to builtin functions (#3167)
  • add support for all types in ABI imports (#3154)
  • disable uadd operator (#3174)
  • block bitwise ops on decimals (#3219)
  • raise UNREACHABLE (#3194)
  • allow enum as mapping key (#3256)
  • block boolean not operator on numeric types (#3231)
  • enforce that loop's iterators are valid names (#3242)
  • fix typechecker hotspot (#3318)
  • rewrite typechecker journal to handle nested commits (#3375)
  • fix missing pc map for empty functions (#3202)
  • guard against iterating over empty list in for loop (#3197)
  • skip enum members during constant folding (#3235)
  • bitwise not constant folding (#3222)
  • allow accessing members of constant address (#3261)
  • guard against decorators in interface (#3266)
  • fix bounds for decimals in some builtins (#3283)
  • length of literal empty bytestrings (#3276)
  • block empty() for HashMaps (#3303)
  • fix type inference for empty lists (#3377)
  • disallow logging from pure, view functions (#3424)
  • improve optimizer rules for comparison operators (#3412)
  • deploy to ghcr on push (#3435)
  • add note on return value bounds in interfaces (#3205)
  • index id param in URI event of ERC1155ownable (#3203)
  • add missing asset function to ERC4626 built-in interface (#3295)
  • clarify skip_contract_check=True can result in undefined behavior (#3386)
  • add custom NatSpec tag to docs (#3404)
  • fix uint256_addmod doc (#3300)
  • document optional kwargs for external calls (#3122)
  • remove slice() length documentation caveats (#3152)
  • fix docs of blockhash to reflect revert behaviour (#3168)
  • improvements to compiler error messages by (#3121, #3134, #3312, #3304, #3240, #3264, #3343, #3307, #3313 and #3215)

These are really just the highlights, as many other bugfixes, docs updates and refactoring (over 150 commits!) made it into this release! Special thanks to contributions from @tserg, @trocher, @z80dev, @emc415 and @benber86

New Contributors

Full Changelog: v0.3.7...v0.3.8

v0.3.7

27 Sep 01:21
6020b8b
Compare
Choose a tag to compare

What's Changed

Date released: 2022-09-26

Breaking changes:

  • chore: drop python 3.7 support (#3071)
  • fix: relax check for statically sized calldata (#3090)

Non-breaking changes and improvements:

  • fix: assert description in Crowdfund.finalize() (#3058)
  • fix: change mutability of example ERC721 interface (#3076)
  • chore: improve error message for non-checksummed address literal (#3065)
  • feat: isqrt built-in (#3074) (#3069)
  • feat: add block.prevrandao as alias for block.difficulty (#3085)
  • feat: epsilon builtin (#3057)
  • feat: extend ecrecover signature to accept additional parameter types (#3084)
  • feat: allow constant and immutable variables to be declared public (#3024)
  • feat: optionally disable metadata in bytecode (#3107)

Bugfixes:

  • fix: empty nested dynamic arrays (#3061)
  • fix: foldable builtin default args in imports (#3079) (#3077)

Additional changes and improvements:

  • doc: update broken links in SECURITY.md (#3095)
  • chore: update discord link in docs (#3031)
  • fix: broken links in various READMEs (#3072)
  • chore: fix compile warnings in examples (#3033)
  • feat: append lineno to the filename in error messages (#3092)
  • chore: migrate lark grammar (#3082)
  • chore: loosen and upgrade semantic version (#3106)

New Contributors

Special thanks to returning contributors @tserg, @pandadefi, and @delaaxe.

v0.3.6

06 Aug 22:19
4a2124d
Compare
Choose a tag to compare

What's Changed

Date released: 2022-08-07

Bugfixes:

  • Fix in expressions for list literals when list members are variables (#3035)

New Contributors

Full Changelog: v0.3.5...v0.3.6

v0.3.5

06 Aug 00:10
7bcfed1
Compare
Choose a tag to compare

What's Changed

Date released: 2022-08-05

Non-breaking changes and improvements:

  • Add blueprint deployer output format (#3001)
  • Allow arbitrary data to be passed to create_from_blueprint (#2996)
  • Add CBOR length to bytecode for decoders (#3010)
  • Fix compiler panic when accessing enum storage vars via self (#2998)
  • Fix: allow empty() in constant definitions and in default argument position (#3008)
  • Fix: disallow self address in pure functions (#3027)

New Contributors

Full Changelog: v0.3.4...v0.3.5

v0.3.4

27 Jul 15:47
f31f0ec
Compare
Choose a tag to compare

What's Changed

Non-breaking changes and improvements:

  • Add enum types (#2874, #2915, #2925, #2977)
  • Add _abi_decode builtin (#2882)
  • Add create_from_blueprint and create_copy_of builtins (#2895)
  • Add default_return_value kwarg for calls (#2839)
  • Add min_value and max_value builtins for numeric types (#2935)
  • Add uint2str builtin (#2879)
  • Add vyper signature to bytecode (#2860)

Other fixes and improvements:

  • Call internal functions from constructor (#2496)
  • Arithmetic for new int types (#2843)
  • Allow msg.data in raw_call without slice (#2902)
  • Per-method calldatasize checks (#2911)
  • Type inference and annotation of arguments for builtin functions (#2817)
  • Allow varargs for print (#2833)
  • Add error_map output format for tooling consumption (#2939)
  • Multiple evaluation of contract address in call (GHSA-4v9q-cgpw-cf38)
  • Improve ast output (#2824)
  • Allow @nonreentrant on view functions (#2921)
  • Add shift() support for signed integers (#2964)
  • Enable dynarrays of strings (#2922)
  • Fix off-by-one bounds check in certain safepow cases (#2983)
  • Optimizer improvements (#2647, #2868, #2914, #2843, #2944)
  • Reverse order in which exceptions are reported (#2838)
  • Fix compile-time blowup for large contracts (#2981)
  • Rename vyper-ir binary to fang (#2936)

Many other small bugfixes, optimizations and refactoring also made it into this release! Special thanks to @tserg and @pandadefi for contributing several important bugfixes, refactoring and features to this release!

New Contributors

Full Changelog: v0.3.3...v0.3.4

v0.3.3

22 Apr 09:51
48e326f
Compare
Choose a tag to compare

What's Changed

This is a bugfix release. It patches an off-by-one error in the storage allocation mechanism for dynamic arrays reported by @haltman-at in #2820

Other fixes and improvements:

  • Add a print built-in which allows printing debugging messages in hardhat. (#2818)
  • Fix various error messages (#2798, #2805)

New Contributors

Full Changelog: v0.3.2...v0.3.3