Skip to content

Releases: vyperlang/vyper

v0.5.0a3

14 Jun 17:47
994bfde

Choose a tag to compare

v0.5.0a3 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.5.0a2...v0.5.0a3

v0.5.0a2

29 May 19:39
0cc5c4a

Choose a tag to compare

v0.5.0a2 Pre-release
Pre-release

What's Changed

  • chore[ci]: update actions/checkout and actions/setup-python by @pcaversaccio in #4954
  • feat[venom]: gas bench by @harkal in #4945
  • chore[tool]: remove redundant logic from makefile by @Sporarum in #4962
  • fix[codegen]: catch state modifying functions in loop setup by @tserg in #3884
  • chore[tool]: update black to v0.26 by @Sporarum in #4953
  • chore[ux]: ignore format commit by @Sporarum in #4964
  • fix[build]!: remove dev dependencies from published package by @Sporarum in #4932
  • fix[docs]: document layout in JSON compiler interface by @manuelwedler in #4913
  • fix[lang]: forbid docstring-only function body by @Sporarum in #4972
  • fix[venom]: fix venom invoke copy-forwarding gas regressions by @harkal in #4944
  • feat[tool]: add --disable-static-exceptions flag by @cyberthirst in #4862
  • chore[docs]: document abstract methods by @Sporarum in #4946
  • refactor[test]: demote StaticAssertionException in oob tests by @HodanPlodky in #4973
  • fix[ci]: fix docker build by @Sporarum in #4977
  • fix[venom]: avoid address attr lowering for struct fields by @banteg in #4983
  • refactor[test]: move some arithmetic examples out of -m fuzzing by @Sporarum in #4995
  • fix[lang]: allow decimals in built-ins unconditionally by @Sporarum in #4978
  • fix[codegen]: remove silent fallback for bool kwargs in venom pipeline by @banteg in #4984
  • fix[lang]: fix overly conservative state access simulation for __at__() by @Sporarum in #4970
  • chore[docs]: improve details in skills by @Sporarum in #5004
  • fix[venom]: align print selector storage by @banteg in #4994
  • fix[venom]: fix raw_call kwarg evaluation order by @banteg in #4985
  • fix[venom]: fix extract32 overflow and bytesN clamping by @banteg in #4986
  • feat[lang]!: add unbounded types by @Sporarum in #4967
  • fix[venom]: fix raw_call kwarg evaluation order by @banteg in #4988
  • fix[ux]: fix panic in pow folding by @SAY-5 in #4996
  • fix[ux]: dedup default-argument expanded ABI entries in from_json_abi by @yasumorishima in #4908
  • fix[tool]: serialize symbolic lengths in metadata by @xrchz in #5010
  • fix[venom]: invalidate returndata copy facts by @banteg in #4992
  • fix[venom]: add missing scalar conversion validation by @banteg in #4987
  • feat[docs]: add deep verification section by @lufa23 in #5011
  • refactor[venom]: simplify bytestring ABI encoder zero-padding by @charles-cooper in #4918
  • fix[venom]: skip absent vars in stack cleanup by @lawrence3699 in #4941
  • fix[venom]: keep storage writes before selfdestruct by @banteg in #4991
  • perf[venom]: mem passes by @HodanPlodky in #4968
  • fix[docs]: update interface return-bound note by @lufa23 in #5016

New Contributors

Full Changelog: v0.5.0a1...v0.5.0a2

v0.5.0a1

07 May 09:09
7d73c46

Choose a tag to compare

v0.5.0a1 Pre-release
Pre-release

What's Changed

Read more

v0.4.3 ("Buttermilk Racer")

18 Jun 20:09
bff19ea

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

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

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

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

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

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

Choose a tag to compare

v0.4.1rc2 Pre-release
Pre-release

What's Changed

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