Skip to content

Releases: vyperlang/vyper

v0.4.0 ("Nagini")

20 Jun 16:59
e9db8d9
Compare
Choose a tag to compare

v0.4.0 represents a major overhaul to the Vyper language. Notably, it overhauls the import system and adds support for code reuse. It also adds a new, experimental backend to Vyper which lays the foundation for improved analysis, optimization and integration with third party tools.

Breaking Changes

  • feat[tool]!: make cancun the default evm version (#4029)
  • feat[lang]: remove named reentrancy locks (#3769)
  • feat[lang]!: change the signature of block.prevrandao (#3879)
  • feat[lang]!: change ABI type of decimal to int168 (#3696)
  • feat[lang]: rename _abi_encode and _abi_decode (#4097)
  • feat[lang]!: add feature flag for decimals (#3930)
  • feat[lang]!: make internal decorator optional (#4040)
  • feat[lang]: protect external calls with keyword (#2938)
  • introduce floordiv, ban regular div for integers (#2937)
  • feat[lang]: use keyword arguments for struct instantiation (#3777)
  • feat: require type annotations for loop variables (#3596)
  • feat: replace enum with flag keyword (#3697)
  • feat: remove builtin constants (#3350)
  • feat: drop istanbul and berlin support (#3843)
  • feat: allow range with two arguments and bound (#3679)
  • fix[codegen]: range bound check for signed integers (#3814)
  • feat: default code offset = 3 (#3454)
  • feat: rename vyper.interfaces to ethereum.ercs (#3741)
  • chore: add prefix to ERC interfaces (#3804)
  • chore[ux]: compute natspec as part of standard pipeline (#3946)
  • feat: deprecate vyper-serve (#3666)

Module system

  • refactor: internal handling of imports (#3655)
  • feat: implement "stateless" modules (#3663)
  • feat[lang]: export interfaces (#3919)
  • feat[lang]: singleton modules with ownership hierarchy (#3729)
  • feat[lang]: implement function exports (#3786)
  • feat[lang]: auto-export events in ABI (#3808)
  • fix: allow using interface defs from imported modules (#3725)
  • feat: add support for constants in imported modules (#3726)
  • fix[lang]: prevent modules as storage variables (#4088)
  • fix[ux]: improve initializer hint for unimported modules (#4145)
  • feat: add python sys.path to vyper path (#3763)
  • feat[ux]: improve error message for importing ERC20 (#3816)
  • fix[lang]: fix importing of flag types (#3871)
  • feat: search path resolution for cli (#3694)
  • fix[lang]: transitive exports (#3888)
  • fix[ux]: error messages relating to initializer issues (#3831)
  • fix[lang]: recursion in uses analysis for nonreentrant functions (#3971)
  • fix[ux]: fix uses error message (#3926)
  • fix[lang]: fix uses analysis for nonreentrant functions (#3927)
  • fix[lang]: fix a hint in global initializer check (#4089)
  • fix[lang]: builtin type comparisons (#3956)
  • fix[tool]: fix combined_json output for CLI (#3901)
  • fix[tool]: compile multiple files (#4053)
  • refactor: reimplement AST folding (#3669)
  • refactor: constant folding (#3719)
  • fix[lang]: typecheck hashmap indexes with folding (#4007)
  • fix[lang]: fix array index checks when the subscript is folded (#3924)
  • fix[lang]: pure access analysis (#3895)

Venom

  • feat: implement new IR for vyper (venom IR) (#3659)
  • feat[ir]: add make_ssa pass to venom pipeline (#3825)
  • feat[venom]: implement mem2var and sccp passes (#3941)
  • feat[venom]: add store elimination pass (#4021)
  • feat[venom]: add extract_literals pass (#4067)
  • feat[venom]: optimize branching (#4049)
  • feat[venom]: avoid last swap for commutative ops (#4048)
  • feat[venom]: "pickaxe" stack scheduler optimization (#3951)
  • feat[venom]: add algebraic optimization pass (#4054)
  • feat: Implement target constrained venom jump instruction (#3687)
  • feat: remove deploy instruction from venom (#3703)
  • fix[venom]: liveness analysis in some loops (#3732)
  • feat: add more venom instructions (#3733)
  • refactor[venom]: use venom pass instances (#3908)
  • refactor[venom]: refactor venom operand classes (#3915)
  • refactor[venom]: introduce IRContext and IRAnalysisCache (#3983)
  • feat: add utility functions to OrderedSet (#3833)
  • feat[venom]: optimize get_basic_block() (#4002)
  • fix[venom]: fix branch eliminator cases in sccp (#4003)
  • fix[codegen]: same symbol jumpdest merge (#3982)
  • fix[venom]: fix eval of exp in sccp (#4009)
  • refactor[venom]: remove unused method in make_ssa.py (#4012)
  • fix[venom]: fix return opcode handling in mem2var (#4011)
  • fix[venom]: fix cfg output format (#4010)
  • chore[venom]: fix output formatting of data segment in IRContext (#4016)
  • feat[venom]: optimize mem2var and store/variable elimination pass sequences (#4032)
  • fix[venom]: fix some sccp evaluations (#4028)
  • fix[venom]: add unique_symbols check to venom pipeline (#4149)
  • feat[venom]: remove redundant store elimination pass (#4036)
  • fix[venom]: remove some dead code in venom_to_assembly (#4042)
  • feat[venom]: improve unused variable removal pass (#4055)
  • fix[venom]: remove liveness requests (#4058)
  • fix[venom]: fix list of volatile instructions (#4065)
  • fix[venom]: remove dominator tree invalidation for store elimination pass (#4069)
  • fix[venom]: move loop invariant assertion to entry block (#4098)
  • fix[venom]: clear out_vars during calculation (#4129)
  • fix[venom]: alloca for default arguments (#4155)
  • Refactor ctx.add_instruction() and friends (#3685)
  • fix: type annotation of helper function (#3702)
  • feat[ir]: emit djump in dense selector table (#3849)
  • chore: move venom tests to tests/unit/compiler (#3684)

Other new features

  • feat[lang]: add blobhash() builtin (#3962)
  • feat[lang]: support block.blobbasefee ([#3945]...
Read more

v0.4.0rc6

30 May 22:53
3371956
Compare
Choose a tag to compare
v0.4.0rc6 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.0rc5...v0.4.0rc6

v0.4.0rc5

16 May 14:27
98370f5
Compare
Choose a tag to compare
v0.4.0rc5 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.0rc4...v0.4.0rc5

v0.4.0rc4

15 May 17:17
41a3e08
Compare
Choose a tag to compare
v0.4.0rc4 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.0rc3...v0.4.0rc4

v0.4.0rc3

08 May 16:10
f213655
Compare
Choose a tag to compare
v0.4.0rc3 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.4.0rc2...v0.4.0rc3

v0.4.0rc2

14 Apr 02:51
6f09e29
Compare
Choose a tag to compare
v0.4.0rc2 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.4.0rc1...v0.4.0rc2

v0.4.0rc1

10 Apr 17:15
44a593a
Compare
Choose a tag to compare
v0.4.0rc1 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.0b6...v0.4.0rc1

v0.4.0b6

06 Apr 17:20
7485cea
Compare
Choose a tag to compare
v0.4.0b6 Pre-release
Pre-release

What's Changed

New Contributors

Full Changelog: v0.4.0b5...v0.4.0b6

v0.4.0b5

12 Mar 15:41
a9ee641
Compare
Choose a tag to compare
v0.4.0b5 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.0b4...v0.4.0b5

v0.4.0b4

08 Mar 05:13
541b2e7
Compare
Choose a tag to compare
v0.4.0b4 Pre-release
Pre-release

What's Changed

Full Changelog: v0.4.0b3...v0.4.0b4