v0.4.2rc1
Pre-release
Pre-release
·
52 commits
to master
since this release
What's Changed
- fix[codegen]: relax the filter for augassign oob check by @charles-cooper in #4497
- release[docs]: add release notes for v0.4.1 ("Tokara Habu") by @charles-cooper in #4310
- fix[docs]: update v0.4.1 release date by @charles-cooper in #4502
- perf[venom]: improve performance of
MakeSSA
by @charles-cooper in #4491 - feat[test]: add tests for venom dload lowering pass by @HodanPlodky in #4471
- feat[venom]: add varname freshener by @charles-cooper in #4484
- refactor[test]: add more tests with hevm venom harness by @HodanPlodky in #4493
- fix[ux]: don't warn for logs with 0 positional args by @charles-cooper in #4501
- fix[docs]: update
skip_contract_check
docs by @trocher in #4511 - fix[parser]: block value assignment in for targets by @charles-cooper in #4492
- feat[test]: add negative hevm tests by @charles-cooper in #4504
- feat[venom]: add basic semantic check machinery to venom by @HodanPlodky in #4483
- feat[test]: add more example contracts by @charles-cooper in #4500
- refactor[lang]: refactor decorator parsing by @charles-cooper in #4490
- fix[venom]: fix sccp resolution of truthy
jnz
by @charles-cooper in #4505 - feat[test]: add hevm to
get_contract
harness by @charles-cooper in #4499 - refactor[venom]: use
InstUpdater
in more passes by @charles-cooper in #4508 - fix[docs]: fix venom examples by @2xic in #4475
- feat[venom]: allow labels to be assigned to variables by @harkal in #4514
- feat[venom]: add
calloca
instruction by @charles-cooper in #4376 - chore[test]: add test for struct member names by @tserg in #3527
- fix[codegen]: interleaved effects eval for some builtins by @charles-cooper in #4156
- fix[venom]: fix var defined check for unreachable blocks by @HodanPlodky in #4518
- fix[lang]: extend
as_wei_value
to all numeric types by @trocher in #3498 - feat[venom]: make
revert
a bb terminator by @charles-cooper in #4529 - fix[ci]: suppress hypothesis health check by @charles-cooper in #4533
- feat[venom]: parse hex literals in text format by @harkal in #4532
- refactor[venom]: simplify
SimplifyCFG
pass by @charles-cooper in #4528 - feat[lang]: add
raw_create()
builtin by @charles-cooper in #4204 - fix[ux]: fold
keccak
andsha256
of constant hexbytes by @tserg in #4536 - feat[venom]: improve memmerge pass by @HodanPlodky in #4422
- fix[lang]!: forbid calling
__default__
by @sandbubbles in #4371 - fix[test]: fix warnings in thirdparty tests by @charles-cooper in #4547
- refactor[venom]: add dom walk property by @harkal in #4546
- feat[lang]: bubble up create revertdata by @charles-cooper in #4540
- feat[lang]!: remove deprecated bitwise builtins by @cyberthirst in #4552
- refactor[parser]: refactor pragma parsing by @charles-cooper in #4530
- fix[ux]: typechecking for loop annotation of list variable by @tserg in #4550
- feat[lang]: remove
@external
decorator from builtin interfaces by @charles-cooper in #4562 - feat[lang]: remove one-warning limit from builtins by @charles-cooper in #4542
- feat[venom]: improvements for iszero handling and memmerge by @HodanPlodky in #4469
- feat[lang]: enable bitwise ops for
bytesM
types by @charles-cooper in #4538 - chore[docs]: remove dead link from internal documentation by @iamslown in #4543
- refactor[venom]: update more passes to use
InstUpdater
by @charles-cooper in #4516 - refactor[parser]: put settings on Module AST node by @charles-cooper in #4569
- fix[lang]: block modules in structs by @cyberthirst in #4566
- fix[lang]: filter oob array access during folding by @charles-cooper in #4571
- fix[codegen]: fix overcopying of bytes in
make_setter
by @charles-cooper in #4419 - feat[lang]!: move sqrt to new stdlib
math
module by @cyberthirst in #4520 - fix[lang]!: ban calling nonreentrant functions from nonreentrant functions by @charles-cooper in #4574
- fix[lang]: disallow some builtins in
pure
functions by @tserg in #3157 - fix[lang]: only reserve builtins at the top level by @charles-cooper in #4578
- feat[venom]: tune function inliner by @charles-cooper in #4584
- feat[venom]: add assert optimizer by @charles-cooper in #4585
- fix[venom]: revert-to-assert should invalidate dfg by @charles-cooper in #4586
- chore[lang]: remove
sha3
andimportlib_metadata
imports by @charles-cooper in #4588 - chore[tool]: widen version bounds for
packaging
by @charles-cooper in #4590 - feat[venom]: add memory SSA analysis by @harkal in #4555
- chore[tool]: widen version bounds for
asttokens
by @Romain-Geissler-1A in #4592 - feat[venom]: add common subexpression elimination by @HodanPlodky in #4241
- fix[venom]: fix
.name
invalidation inMakeSSA
by @charles-cooper in #4545 - refactor[venom]: add annotation to append_instruction by @charles-cooper in #4583
- fix[venom]: fix handling of params in
venom_to_assembly
by @charles-cooper in #4587 - refactor[test]: remove
selfdestruct
from example contracts by @cyberthirst in #4537 - refactor[venom]: extract liveness and cfg data structures by @charles-cooper in #4595
- feat[venom]: improve
dload
/mstore
merging by @HodanPlodky in #4570 - feat[venom]: mark loads as non-volatile by @charles-cooper in #4388
- feat[docs]: document order of evalution of arguments of
log
by @cyberthirst in #4617 - feat[lang]: nonreentrancy by default by @charles-cooper in #4563
- fix[venom]: fix
DominatorTreeAnalysis.dominates()
by @charles-cooper in #4615 - fix[docs]: fix code block rst formatting by @charles-cooper in #4618
- refactor[stdlib]: refactor
math.sqrt
implementation by @charles-cooper in #4575 - fix[tool]: fix layout export with nonreentrancy pragma on by @cyberthirst in #4621
- fix[lang]: disallow staticcall in pure context by @cyberthirst in #4619
- fix[lang]: disallow duplicate getter annotations by @cyberthirst in #4623
- fix[lang]: disable nonreentrant behavior of immutable and constant getters by @cyberthirst in #4622
New Contributors
- @2xic made their first contribution in #4475
- @iamslown made their first contribution in #4543
- @Romain-Geissler-1A made their first contribution in #4592
Full Changelog: v0.4.1rc3...v0.4.2rc1