Skip to content

Releases: vyperlang/vyper

v0.4.3 ("Buttermilk Racer")

18 Jun 20:09
bff19ea
Compare
Choose a tag to compare

What's Changed

v0.4.3 introduces the @raw_return decorator which allows contracts to return bytes directly without ABI-encoding, which enables new proxy contract use cases. The default EVM version has been updated to prague, and several improvements have been made to the Venom optimizer pipeline.

Full release notes hosted at https://docs.vyperlang.org/en/latest/release-notes.html#v0-4-3-buttermilk-racer (source on github).

New Contributors

Full Changelog: v0.4.2...v0.4.3

v0.4.3rc1

17 Jun 12:30
a35bfd5
Compare
Choose a tag to compare
v0.4.3rc1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.4.2...v0.4.3rc1

v0.4.2 ("Lernaean Hydra")

31 May 18:00
c216787
Compare
Choose a tag to compare

What's Changed

v0.4.2 includes a new raw_create() builtin which allows users to build more generic factories in Vyper. It also moves the sqrt() builtin to a pure Vyper module, involving a refactor which will allow more stdlib functionality to be written in Vyper in the future.

Additionally, Venom has undergone more improvements, including a CSE elimination pass, dead-store elimination pass, as well as moving more items in the calling convention to the stack in the venom pipeline. Benchmark contracts are now typically 5% smaller.

Two low severity GHSAs have been patched in this release.

Full release notes hosted at https://docs.vyperlang.org/en/latest/release-notes.html#v0-4-2-lernaean-hydra (source on github).

New Contributors

Full Changelog: v0.4.1...v0.4.2

v0.4.2rc1

02 May 14:02
11522b8
Compare
Choose a tag to compare
v0.4.2rc1 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.4.1rc3...v0.4.2rc1

v0.4.1 ("Tokara Habu")

01 Mar 18:01
8a93dd2
Compare
Choose a tag to compare

What's Changed

v0.4.1 is primarily a polishing release, focusing on bug fixes, UX
improvements, and security-related fixes (with four low-to-moderate
severity GHSA reports published). However, a substantial amount of
effort has also been invested in improving the Venom pipeline, resulting
in better performance and code generation from the Venom pipeline. Venom
can be enabled by passing the --venom or --experimental-codegen flag
to the Vyper compiler (they are aliases of each other). Venom code can
now also be compiled directly, using the venom binary (included in
this release).

Breaking changes

  • feat[lang]!: make @external modifier optional in .vyi files (#4178)
  • feat[codegen]!: check returndatasize even when skip_contract_check is set (#4148)
  • fix[stdlib]!: fix IERC4626 signatures (#4425)
  • fix[lang]!: disallow absolute relative imports (#4268)

Other new features and improvements

  • feat[lang]: add module.__at__() to cast to interface (#4090)
  • feat[lang]: use keyword arguments for event instantiation (#4257)
  • feat[lang]: add native hex string literals (#4271)
  • feat[lang]: introduce mana as an alias for gas (#3713)
  • feat[lang]: support top level "abi" key in json interfaces (#4279)
  • feat[lang]: support flags from imported interfaces (#4253)
  • feat[ux]: allow "compiling" .vyi files (#4290)
  • feat[ux]: improve hint for events kwarg upgrade (#4275)

Tooling / CLI

  • feat[tool]: add -Werror and -Wnone options (#4447)
  • feat[tool]: support storage layouts via json and .vyz inputs (#4370)
  • feat[tool]: add integrity hash to initcode (#4234)
  • fix[ci]: fix commithash calculation for pypi release (#4309)
  • fix[tool]: include structs in -f interface output (#4294)
  • feat[tool]: separate import resolution pass (#4229)
  • feat[tool]: add all imported modules to -f annotated_ast output (#4209)
  • fix[tool]: add missing internal functions to metadata (#4328)
  • fix[tool]: update VarAccess pickle implementation (#4270)
  • fix[tool]: fix output formats for .vyz files (#4338)
  • fix[tool]: add missing user errors to error map (#4286)
  • fix[ci]: fix README encoding in setup.py (#4348)
  • refactor[tool]: refactor compile_from_zip() (#4366)

Bugfixes

  • fix[lang]: add raw_log() constancy check (#4201)
  • fix[lang]: use folded node for typechecking (#4365)
  • fix[ux]: fix error message for "staticall" typo (#4438)
  • fix[lang]: fix certain varinfo comparisons (#4164)
  • fix[codegen]: fix abi_encode buffer size in external calls (#4202)
  • fix[lang]: fix == and != bytesM folding (#4254)
  • fix[lang]: fix .vyi function body check (#4177)
  • fix[venom]: invalid jump error (#4214)
  • fix[lang]: fix precedence in floordiv hint (#4203)
  • fix[lang]: define rounding mode for sqrt (#4486)
  • fix[codegen]: disable augassign with overlap (#4487)
  • fix[codegen]: relax the filter for augassign oob check (#4497)
  • fix[lang]: fix panic in call cycle detection (#4200)
  • fix[tool]: update InterfaceT.__str__ implementation (#4205)
  • fix[tool]: fix classification of AST nodes (#4210)
  • fix[tool]: keep experimentalCodegen blank in standard json input (#4216)
  • fix[ux]: fix relpath compiler panic on windows (#4228)
  • fix[ux]: fix empty hints in error messages (#4351)
  • fix[ux]: fix validation for abi_encode() method_id kwarg (#4369)
  • fix[ux]: fix false positive for overflow in type checker (#4385)
  • fix[ux]: add missing filename to syntax exceptions (#4343)
  • fix[ux]: improve error message on failed imports (#4409)
  • fix[parser]: fix bad tokenization of hex strings (#4406)
  • fix[lang]: fix encoding of string literals (#3091)
  • fix[codegen]: fix assertions for certain precompiles (#4451)
  • fix[lang]: allow print() schema larger than 32 bytes (#4456)
  • fix[codegen]: fix iteration over constant literals (#4462)
  • fix[codegen]: fix gas usage of iterators (#4485)
  • fix[codegen]: cache result of iter eval (#4488)
  • fix[lang]: fix recursive interface imports (#4303)
  • fix[tool]: roll back OS used to build binaries (#4494)

Patched security advisories (GHSAs)

Venom improvements

  • feat[venom]: add venom parser (#4381)
  • feat[venom]: new DFTPass algorithm (#4255)
  • feat[venom]: only stack_reorder before join points (#4247)
  • feat[venom]: add function inliner (#4478)
  • feat[venom]: add binop optimizations (#4281)
  • feat[venom]: offset instruction (#4180)
  • feat[venom]: make dft-pass commutative aware (#4358)
  • perf[venom]: add OrderedSet.last() (#4236)
  • feat[venom]: improve liveness computation time (#4086)
  • fix[venom]: fix invalid phis after SCCP (#4181)
  • fix[venom]: clean up sccp pass (#4261)
  • refactor[venom]: remove dup_requirements analysis (#4262)
  • fix[venom]: remove duplicate volatile instructions (#4263)
  • fix[venom]: fix _stack_reorder() routine (#4220)
  • feat[venom]: store expansion pass (#4068)
  • feat[venom]: add effects to instructions (#4264)
  • feat[venom]: add small heuristic for cleaning input stack (#4251)
  • refactor[venom]: refactor module structure (#4295)
  • refactor[venom]: refactor sccp pass to use dfg (#4329)
  • refactor[venom]: update translator for deploy instruction (#4318)
  • feat[venom]: make cfg scheduler "stack aware" (#4356)
  • feat[venom]: improve liveness computation (#4330)
  • refactor[venom]: optimize lattice evaluation (#4368)
  • perf[venom]: improve OrderedSet operations (#4246)
  • fix[venom]: promote additional memory locations to variables (#4039)
  • feat[venom]: add codesize optimization pass (#4333)
  • fix[venom]: fix unused variables pass (#4259)
  • refactor[venom]: move commutative instruction set (#4307)
  • fix[venom]: add make_ssa pass after algebraic optimizations (#4292)
  • feat[venom]: reduce legacy opts when venom is enabled (#4336)
  • fix[venom]: fix duplicate allocas (#4321)
  • fix[venom]: add missing extcodesize+hash effects (#4373)
  • refactor[ux]: add venom a...
Read more

v0.4.1rc3

25 Feb 13:32
1339177
Compare
Choose a tag to compare
v0.4.1rc3 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.1rc2...v0.4.1rc3

v0.4.1rc2

21 Feb 12:56
305813c
Compare
Choose a tag to compare
v0.4.1rc2 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.1rc1...v0.4.1rc2

v0.4.1rc1

20 Jan 19:32
4d693b7
Compare
Choose a tag to compare
v0.4.1rc1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.1b4...v0.4.1rc1

v0.4.1b4

04 Jan 01:23
4507d2a
Compare
Choose a tag to compare
v0.4.1b4 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.1b3...v0.4.1b4

v0.4.1b3

15 Dec 00:55
537313b
Compare
Choose a tag to compare
v0.4.1b3 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.4.1b2...v0.4.1b3