What's Changed
- fix[venom]: keep invoke arg copies from multiply assigned vars by @harkal in #5237
- fix[codegen]: widen ternary arms to the result type layout by @harkal in #5236
- feat[venom]: amortize unbounded
DynArrayappend by @harkal in #5232 - chore[ci]: bump the
github-actionsgroup by @dependabot[bot] in #5235 - fix[venom]: keep venom memory allocation order deterministic by @harkal in #5248
- refactor[codegen]: evm opcode map construction by @charles-cooper in #4651
- fix[venom]: fail closed on mixed-root pointers in base ptr analysis by @harkal in #5250
- fix[venom]: type state variable reads with the declared type by @harkal in #5239
- feat[venom]: invalidate only aliased loads at fixed-size memory copies by @harkal in #5249
- feat[venom]: allow abi-dynamic elements in inf dynarrays by @harkal in #5240
- chore[ci]: add scope for types and type-checker by @Sporarum in #5258
- fix[lang]: reject parameterized types used as values by @beardthelion in #5257
- refactor[types]: remove unused
_NodeMetadataJournalby @Sporarum in #5221 - fix[lang]: reject wildcard tuple returns passed as arguments by @harkal in #5242
- refactor[parser]: remove
ParserExceptionby @Sporarum in #5230 - fix[lang]!: stateless modules should not be initialized by @Sporarum in #5223
- fix[lang]: fix lint failure by @Sporarum in #5261
- fix[parser]: fix source-map end positions by @Sporarum in #5209
- fix[venom]: abi encode buffer checks by @harkal in #5268
- fix[venom]: make
BranchOptimizationPassnot dependant onSCCPby @HodanPlodky in #5252 - feat[lang]: forbid positional args for custom errors by @Sporarum in #5193
- fix[ux]: improve checksum error messages by @Sporarum in #5218
- feat[lang]: allow
DynArrays of length 0 by @Sporarum in #5234 - feat[venom]: support
max_outsize=INFin raw_call by @harkal in #5271 - fix[venom]: propagate base pointer facts to all uses by @harkal in #5274
- feat[venom]: literal bytestring codecopy by @harkal in #5267
- fix[venom]: widen tuples by memory layout, not type equality by @harkal in #5256
- fix[venom]: fix clean_stack_from_cfg_in for incorrect dead items in stack by @HodanPlodky in #5253
- chore[venom]: remove dead code, clarify invariants, cleanups by @harkal in #5276
- perf[venom]: grow unbounded
DynArraypayloads in place on append by @harkal in #5277 - fix[venom]: retpc_param handle in inliner fix by @HodanPlodky in #5254
- fix[venom]: copy phi operands that are live past the join by @harkal in #5284
- fix[venom]: match legacy for appends to removed rows by @harkal in #5281
- fix[venom]: reject risky append/pop overlap like legacy by @harkal in #5280
- fix[codegen]: complex tuple wrap abi decode by @HodanPlodky in #5286
- fix[venom]: fix concat buffer overrun with bytesM args by @harkal in #5295
- chore[docs]: document
block.prevhashat block 0 by @kenny-ish in #5291 - chore[docs]: fix stale file links in semantics README by @imitater-dou in #5293
- feat[build]: add dockerfile for the OSS Scanner by @trocher in #5302
- fix[venom]: round int to decimal clamp bound toward zero by @harkal in #5298
- chore[docs]: drop dead links by @imitater-dou in #5283
- fix[lang]: forbid assignment to values by @Sporarum in #5181
- refactor[lang]: simplify typing logic around inf by @Sporarum in #5233
- chore[test]: cover empty ternary arms by @JulienKervarrec in #5279
- chore[build]: make mypy error on unused ignores by @Sporarum in #5306
- fix[codegen]: fix
convert()codegen in venom pipeline by @HodanPlodky in #4979 - fix[venom]: register self in global analyses cache fallback by @banteg in #5084
- feat[venom]: unbounded sequence members in memory structs by @harkal in #5282
- fix[venom]: widen for-loop elements by memory layout by @harkal in #5311
- fix[venom]: fix for the sstore remove in dse by @HodanPlodky in #5297
- fix[parser]: wrap unhandled parser exceptions in
CompilerPanicby @Sporarum in #5191 - fix[tool]: raise user errors for malformed input files by @banteg in #5080
- chore[test]: fuzz fix for python3.13 by @HodanPlodky in #5310
- chore[tool]: update hevm 0.54.2 to 0.58.0 by @HodanPlodky in #5318
- refactor[venom]: centralize assignment stores by @harkal in #5316
- refactor[lang]: streamline type inference by @Sporarum in #5204
- fix[venom]: gate
block.blobbasefeeon cancun by @harkal in #5314 - fix[lang]: fold ternary expressions in constants by @JulienKervarrec in #5303
- chore[test]: removed stale xfails by @HodanPlodky in #5319
- fix[lang]: use correct DataLocation for internal function args by @frederikgramkortegaard in #4835
- fix[lang]: improve collision error messages by @Sporarum in #5198
- fix[lang]: forbid creation of unusable interfaces by @Sporarum in #5172
- feat[test]: add bytesM tests for extract32 by @cyberthirst in #4784
- fix[venom]: reject loops over list literals of INF types by @harkal in #5324
- feat[venom]: added mem alias use in the available expression analysis by @HodanPlodky in #5323
- fix[venom]: order assert against invoke in DFT by @sequent-dev-bot in #5336
- feat[venom]: inf dynarray inf elements by @harkal in #5315
- fix[venom]: copy spill free list per successor by @sequent-dev-bot in #5337
- fix[venom]: copy bounded bytestring dret members into full-size buffers by @sequent-dev-bot in #5334
- fix[venom]: copy narrower ternary arms into a result-sized buffer by @sequent-dev-bot in #5331
- fix[venom]: store a bytestring by its length by @sequent-dev-bot in #5332
- fix[venom]: copy only the payload of a bytestring decoded from memory by @sequent-dev-bot in #5333
- fix[venom]: don't read past a bytestring's buffer in convert by @sequent-dev-bot in #5338
- fix[venom]: snapshot immutable raw_create bytecode by @sequent-dev-bot in #5339
- fix[venom]: leave room for a full string after uint2str's result by @sequent-dev-bot in #5344
New Contributors
- @beardthelion made their first contribution in #5257
- @kenny-ish made their first contribution in #5291
- @imitater-dou made their first contribution in #5293
- @JulienKervarrec made their first contribution in #5279
- @sequent-dev-bot made their first contribution in #5336
Full Changelog: v0.5.0b1...v0.5.0b2