Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
856 commits
Select commit Hold shift + click to select a range
7af01a4
Merge pull request #16736 from DanielVF/regex-speedup
msooseth May 20, 2026
68ed278
SSA CFG: Stack layout generator knows if spilling is allowed
clonker May 20, 2026
d5e983b
SSA CFG: Stack layout generator populates spillset
clonker May 20, 2026
d8d4998
SSA CFG: Stack layout generator returns spillset
clonker May 20, 2026
86e929f
SSA CFG: Stack layout generator tests emit spilled variables
clonker May 20, 2026
2ca6163
Merge pull request #16750 from argotorg/ssa-cfg-slg-populates-spill-set
clonker May 20, 2026
afa9744
Migrate ethdebug CLI tests to isolest
nikola-matic Apr 21, 2026
8471cf2
Merge pull request #16675 from argotorg/ethdebug-isoltest-migration
nikola-matic May 21, 2026
78aa6de
ethdebug: Emit schema-compliant compilation resources
djolertrk May 8, 2026
cc430fb
test: Validate ETHDebug output against pinned schemas
djolertrk May 8, 2026
efaef8d
ci: Check ETHDebug compilation overhead
djolertrk May 20, 2026
a5686ef
ethdebug: Address resource review feedback
djolertrk May 25, 2026
b90b7c0
ethdebug: Avoid MSVC ICE in schema material builders
djolertrk May 26, 2026
c28af75
Merge pull request #16727 from walnuthq/feature/ethdebug
nikola-matic May 28, 2026
9340445
Avoid shell mkdir in splitSources
0xjc65eth May 26, 2026
e7fa128
Merge pull request #16774 from 0xjc65eth/fix-split-sources-mkdir
nikola-matic May 28, 2026
10ed593
Remove EOF: solc
rodiazet May 28, 2026
ae9806b
Merge pull request #16760 from argotorg/remove-eof-solc
rodiazet May 28, 2026
c06a4e2
Remove EOF: libsolidity
rodiazet May 28, 2026
fb19f71
Merge pull request #16769 from argotorg/remove-eof-libsolidity
nikola-matic May 29, 2026
f4e179e
Remove EOF: libyul
rodiazet May 22, 2026
cd88744
Merge pull request #16770 from argotorg/remove-eof-libyul
blishko Jun 4, 2026
420cac3
fix(docs): contradictory description of `send` in Subcurrency Example
thijmau May 18, 2026
839e2c3
Merge pull request #16735 from thijmau/docs/fix-subcurrency-evaluatio…
cameel Jun 8, 2026
1ae5f58
SSA-CFG: Store function call arguments in the same order as Yul
blishko May 22, 2026
3b6c2e6
Merge pull request #16765 from argotorg/ssa-change-arg-order
blishko Jun 8, 2026
ef7f9be
SSA-CFG: Disable outliner transformation pass
blishko Jun 8, 2026
9a4574b
Merge pull request #16783 from argotorg/ssa-cfg-disable-outliner
blishko Jun 8, 2026
b5f5e11
Test: Enable SSA-CFG by default for all semantic tests
blishko Mar 31, 2026
45a2608
Remove pnmp pin in edr external test
nikola-matic Jun 9, 2026
da578f0
Test: Remove explicit options that now specify the default values
blishko Jun 9, 2026
e84f82c
Merge pull request #16786 from argotorg/ssa-cfg-semantic-tests
blishko Jun 9, 2026
0402a7c
Bump rust-node image
nikola-matic Jun 9, 2026
1b095c7
Merge pull request #16787 from argotorg/remove-pnpm-pin-in-edr
nikola-matic Jun 9, 2026
ec5e769
SSA CFG: Add spill set
clonker May 21, 2026
0350029
SSA CFG: Add global memory addressing for spilling
clonker May 21, 2026
9baf8a2
SSA CFG: Add spill emitter
clonker May 21, 2026
16bb226
SSA CFG: hook spilling into code transform
clonker May 21, 2026
4b827a9
SSA CFG: stack layout generator validates back edges for potential sp…
clonker May 22, 2026
e2c4ab7
SSA CFG: add spill test
clonker May 22, 2026
88785d1
SSA CFG Stack shuffler: Fix oscillation case
clonker Jun 9, 2026
42769f9
SSA CFG Stack shuffler: fix args slot considers spill set when decidi…
clonker Jun 9, 2026
c48728e
SSA CFG: Stack layout generator populates spill set on multi-entry bl…
clonker Jun 9, 2026
1c4e9a5
Merge pull request #16767 from argotorg/ssa-cfg-kiss-memspill
clonker Jun 9, 2026
54f5591
SSA CFG Testing: Add spill test for a function with many return varia…
clonker Jun 10, 2026
8e42482
SSA CFG: Spill set resolves producer instruction for projections
clonker Jun 10, 2026
2377ba9
Merge pull request #16789 from argotorg/ssa-cfg-spill-set-resolve-pro…
clonker Jun 10, 2026
0b7a003
Frontend: Store ASTNode::id as int64_t instead of size_t
clonker Jun 10, 2026
410515c
Merge pull request #16793 from argotorg/ast-node-id-as-int64-t
clonker Jun 10, 2026
1d3a17b
Remove EOF from libevmasm
rodiazet May 22, 2026
7a0c49e
Add `canBeFunctional` test case.
rodiazet Jun 10, 2026
ac7dbb8
Merge pull request #16772 from argotorg/remove-eof-libevmasm
nikola-matic Jun 11, 2026
dc9296d
Remove EOF: Testing infrastructure.
rodiazet May 25, 2026
7c6dc92
Merge pull request #16773 from argotorg/remove-eof-testing-infra
blishko Jun 11, 2026
d7cc2f3
Remove EOF: bytecodeFormat setting from tests
rodiazet May 9, 2026
9e29840
SSA-CFG: Propagate information about deduplication of literals
blishko Jun 11, 2026
a63480d
Merge pull request #16795 from argotorg/ssa-cfg-fix-const-instructions
blishko Jun 11, 2026
06edb3e
Replace vector<CodeSection> with items in Assembly
rodiazet May 8, 2026
f65160f
Remove EOF: Replace vector<CodeSectionLocation> with CodeSectionLocat…
rodiazet May 29, 2026
2dfc9a4
Merge pull request #16757 from argotorg/eof/replace-vector-code-section
blishko Jun 12, 2026
7c7e5da
Add forgotten changelog entry
blishko Jun 15, 2026
068740a
Merge pull request #16798 from argotorg/smt-add-missing-changelog-entry
matheusaaguiar Jun 15, 2026
816d9b2
Merge pull request #16758 from argotorg/eof/bytecodeformat-tests
nikola-matic Jun 17, 2026
0c3aed7
YulUtilFunctions: assert combined byte slice extent in updateByteSlic…
msooseth May 20, 2026
646a3e0
Removing unused members (#16813)
msooseth Jun 22, 2026
8bb8eca
Merge pull request #16753 from argotorg/yulutilfunctions-update-byte-…
msooseth Jun 22, 2026
5dc70e3
SSA-CFG: Add helper method for stack shuffler
blishko Jun 23, 2026
1f1f298
SSA-CFG: Add helper method to Stack
blishko Jun 23, 2026
8ea3827
SSA-CFG: Modify shuffler to prevent shuffling cycle
blishko Jun 23, 2026
7f8546d
Merge pull request #16817 from argotorg/ssa-cfg-shuffler-looping
blishko Jun 23, 2026
99fe6c5
SSACFG Stack layout generation: Drop per-operation junk declaration
clonker Jun 24, 2026
a50a8e1
Merge pull request #16827 from argotorg/ssacfg-drop-per-op-junk
clonker Jun 24, 2026
51a8091
Remove unused includes
blishko Jun 24, 2026
dec2019
Merge pull request #16828 from argotorg/remove-unused-includes
blishko Jun 24, 2026
f007b69
SSA CFG spill: fix bug in spill set miscounting the number of consume…
clonker Jun 24, 2026
6deed02
Merge pull request #16829 from argotorg/ssa-cfg-fix-spill-miscount-bug
clonker Jun 24, 2026
0a11c0f
Test: Add cmdline test for large value of optimizer runs
blishko Jun 24, 2026
f31916a
Interface: Fix type of optimiser setting
blishko Jun 24, 2026
51be5c3
CLI: Fix type of optimizer runs parameter
blishko Jun 24, 2026
6e4bac9
Changelog: Add entries for changes related to optimizer runs
blishko Jun 24, 2026
b3ae1f4
Enforce single type for optimizer runs
blishko Jun 24, 2026
da8a826
Merge pull request #16826 from argotorg/fix-optimizer-setting-seriali…
blishko Jun 25, 2026
60a04bc
Remove unused `using` (#16831)
msooseth Jun 25, 2026
79df460
SSACFG Code Transform: in-loop spill discovery in the stack shuffler
clonker Jun 24, 2026
7cf9de0
SSACFG Code Transform: Run stack layout generator in a fixed point ov…
clonker Jun 24, 2026
dc3cb2d
Use shuffleWithSpillDiscovery in the stack shuffler test
clonker Jun 25, 2026
b44ed89
Merge pull request #16830 from argotorg/ssa-cfg-spill-fixed-point
clonker Jun 25, 2026
d8fbf36
Simplify AI usage declaration in the PR template
clonker Jun 25, 2026
c46c580
SSA CFG Shuffler: validate all stack too deep culprits
clonker Jun 12, 2026
8cdbf81
SSA CFG Shuffler: Extract swapIntoTail helper to deduplicate tail swaps
clonker Jun 24, 2026
da318b6
SSA CFG Shuffler: Simplify offsetInTargetArgsRegion using tailSize
clonker Jun 24, 2026
7c81396
Merge pull request #16839 from argotorg/ssa-cfg-spill-stability
clonker Jun 29, 2026
40737af
Optimize Yul string repository storage
DanielVF May 21, 2026
1bbea21
Merge pull request #16763 from DanielVF/optimize-yul-strings
clonker Jun 29, 2026
6b19465
SSACFG: Fix stack layout generator test output
clonker Jul 1, 2026
37ffbdd
Merge pull request #16843 from argotorg/ssa-cfg-fix-stack-layout-gene…
clonker Jul 1, 2026
e6402eb
cast to unsigned char before std::isprint in jsonParseStrict (#16785)
metsw24-max Jul 1, 2026
1b486dc
SSACFG: findOptimalTarget aborts early when stack is already target
clonker Jul 1, 2026
b2c6856
SSACFG: don't explicitly reserve space on backing data in free list
clonker Jul 1, 2026
b706925
SSACFG: estimate number of insts when building the graphs
clonker Jul 1, 2026
cf1e5c5
Merge pull request #16844 from argotorg/ssa-cfg-improve-performance
clonker Jul 1, 2026
2e67b4e
SSA-CFG: Fix picking culprit
blishko Jul 2, 2026
c6e6f84
SSA-CFG: Rename culprit to spillingCandidate
blishko Jul 2, 2026
e9d50f7
Merge pull request #16846 from argotorg/ssa-cfg-fix-culprit
blishko Jul 2, 2026
44d26ed
SSA CFG: Don't mark loop heads as junk admitting
clonker Jul 2, 2026
feed215
SSA-CFG: Simplify handling of stack-too-deep situation in shuffler
blishko Jul 2, 2026
2bff6cb
Merge pull request #16847 from argotorg/ssa-cfg-dont-mark-loop-heads-…
clonker Jul 2, 2026
c061089
Merge pull request #16848 from argotorg/ssa-cfg-simplify-shuffling-std
blishko Jul 2, 2026
b1dd08b
Bump evmone version to 0.22 in dockerfiles
nikola-matic Jul 6, 2026
9ba24cd
Fix CCACHE directory location
nikola-matic Jul 6, 2026
2579521
Link pthread in clang ossfuzz
nikola-matic Jul 7, 2026
e827217
Bump evmone to 0.22
nikola-matic Jul 7, 2026
7d4db03
Merge pull request #16852 from argotorg/bump-evmone-0.22-images
nikola-matic Jul 7, 2026
83ddafd
Merge pull request #16853 from argotorg/bump-evmone-0.22
nikola-matic Jul 7, 2026
8c1b4c9
Introduce EVM version Amsterdam
nikola-matic Jul 7, 2026
8a58ed4
Remove EOF mentions from CI/testing scripts
nikola-matic Jul 7, 2026
5b5b567
Merge pull request #16855 from argotorg/introduce-amsterdam-evm-version
nikola-matic Jul 7, 2026
de026a9
SSA CFG: add memory spilling addition changelog
clonker Jul 7, 2026
435b1cb
Merge pull request #16857 from argotorg/ssa-cfg-memory-spilling-chang…
clonker Jul 7, 2026
c7d00fd
Remove stale bot action
r0qs Jul 7, 2026
6b62fd2
Merge pull request #16858 from argotorg/disable-stale-bot
r0qs Jul 7, 2026
bdc735a
Merge pull request #16856 from argotorg/remove-eof-from-ci-testing-sc…
nikola-matic Jul 8, 2026
f93dcdc
SSA CFG: Operation live-out is inst-id based
clonker Jul 7, 2026
5f325d3
Merge pull request #16854 from argotorg/ssa-cfg-instid-liveness
clonker Jul 8, 2026
f410fc5
Minor EOF mention cleanup
nikola-matic Jul 8, 2026
3b1d1c8
Merge pull request #16859 from argotorg/further-eof-cleanup
nikola-matic Jul 8, 2026
4a41963
Move TarjanSCC from libyul to libsolutil
clonker Jun 22, 2026
a93b494
Add Yul AST call graph recursion tests
clonker Jun 22, 2026
89f03ea
Add tests reproducing spurious memory spilling
clonker Jun 20, 2026
912ed4d
Fix call graph cycle detection for intersecting recursive cycles
clonker Jun 20, 2026
a0b4f73
Add disambiguator prerequisite to call graph generator
clonker Jun 29, 2026
517d778
Call graph test: output the whole call graph
clonker Jun 29, 2026
6d5f751
Add `resolveFunctionName` overload dealing with instances of `Functio…
clonker Jul 6, 2026
e24c50e
Yul: Call graph generator asserts that builtins are never recursive
clonker Jul 6, 2026
5408bf4
Yul: Call graph generator raises proper exception if input is not dis…
clonker Jul 6, 2026
9421d07
Merge pull request #16860 from argotorg/fix_spurious_memory_spilling
clonker Jul 8, 2026
12f0e96
Fix blogpost link for UnsoundSpillInMutualRecursion bug
clonker Jul 8, 2026
be975bf
Merge pull request #16862 from argotorg/fix-blogpost-link-for-Unsound…
clonker Jul 8, 2026
bc3722c
Tests: Add tests demonstrating incorrect behaviour
blishko Jun 29, 2026
e251e4d
Analysis: Fix unintentional reversing of linearized based contracts
blishko Jun 29, 2026
c78dfdd
Add tests
matheusaaguiar May 5, 2026
fd303f0
Fix ICE when constant variable is assigned erc7201 builtin with wrong…
matheusaaguiar May 4, 2026
5a0e034
Error message for invalid constant argument type
matheusaaguiar May 5, 2026
66dd646
Merge pull request #16672 from argotorg/fix_erc7201_invalid_param_num…
matheusaaguiar Jul 8, 2026
24cbb53
Merge pull request #16861 from argotorg/fix-post-type-contract-level-…
blishko Jul 8, 2026
e797477
Add and update tests
matheusaaguiar May 7, 2026
6c92d0b
Fix segfault in storage layout specifier warning check
matheusaaguiar May 7, 2026
6fa8151
Merge pull request #16682 from argotorg/fix_custom_storage_layout_war…
cameel Jul 9, 2026
114a177
Sort changelog and add release date for 0.8.36
nikola-matic Jul 9, 2026
8a07979
Merge pull request #16864 from argotorg/sort-changelog-for-0-8-36
nikola-matic Jul 9, 2026
de43476
deps: add google/fuzztest
clonker Jun 29, 2026
e0d7535
Define fuzztest toolchain for the property based tests
clonker Jun 29, 2026
89b90f7
CI: run FuzzTest property-based tests
clonker Jun 30, 2026
2b32722
Add TarjanSCC property test
clonker Jul 9, 2026
2532dfb
Merge pull request #16842 from argotorg/add-fuzztest-dep
clonker Jul 9, 2026
607675a
Utils: Remove mixed-case format for hex numbers
blishko Jul 9, 2026
e5981de
Bump version to 0.8.37 and add changelog skeleton
nikola-matic Jul 9, 2026
99f67fb
Merge pull request #16865 from argotorg/remove-mixed-case-for-hex
blishko Jul 9, 2026
960c6e9
Merge pull request #16866 from argotorg/bump-version-to-0-8-37-and-ad…
nikola-matic Jul 9, 2026
72cdc01
reject out-of-range tag ids in assembly json import
metsw24-max Jul 5, 2026
596f680
ViaIR optimizer: Disable stack limit evader when running ssa cfg and …
clonker Jun 25, 2026
2d735f4
ViaIR optimizer: Disable stack compressor for SSA CFG
clonker Jun 25, 2026
a3bb02a
Merge pull request #16832 from argotorg/ssa-cfg-disable-stack-limit-e…
nikola-matic Jul 14, 2026
adea316
fix(docs): keep RTD version-warning notification clear of the site he…
kuzdogan Jul 14, 2026
902f848
Merge pull request #16870 from argotorg/fix-docs-version-warning-behi…
nikola-matic Jul 14, 2026
1aa5aa0
test: rename asm json import tag tests to import_asm_json_* form
metsw24-max Jul 15, 2026
556e838
Merge pull request #16851 from metsw24-max/asm-json-tag-range
nikola-matic Jul 15, 2026
14eb33d
SSACFG builder: don't optimize over constant-condition if/switch/for
clonker Jul 2, 2026
17b56ee
SSACFG: Add constant condition folder for if/switch/for
clonker Jul 2, 2026
3e2607c
SSACFG: Add jump threader to merge linear sequences of blocks
clonker Jul 2, 2026
b60c7c9
SSACFG: Add UseCounts pass
clonker Jul 15, 2026
f93169d
Merge pull request #16850 from argotorg/ssa-cfg-extract-folding-from-…
clonker Jul 16, 2026
c0ad66e
CLI: Add test case for non-hex library address
blishko Jul 16, 2026
9e4b16a
CLI: Better validation of library addresses
blishko Jul 16, 2026
11179a2
Merge pull request #16873 from argotorg/cli-fix-library-address-checks
matheusaaguiar Jul 17, 2026
a3a3ff3
Codegen: Fix ICE on parenthesized custom error construction in requir…
blishko Jul 20, 2026
ccb020c
Add prerelease filter to external tests tag refs
nikola-matic Jul 21, 2026
7a60846
Merge pull request #16879 from argotorg/add-prerelease-filter-to-exte…
nikola-matic Jul 21, 2026
03fe7dd
fix(docs): improve Google search snippets for documentation pages (#1…
Zish19 Jul 22, 2026
6918e7c
Deprecation warning for SMTChecker's BMC engine
matheusaaguiar Jul 20, 2026
5742011
Add test for bmc deprecation warning
matheusaaguiar Jul 20, 2026
d3ac579
Merge pull request #16877 from argotorg/smtchecker_bmc_deprecation_wa…
matheusaaguiar Jul 23, 2026
96bdc54
Merge pull request #16876 from argotorg/fix-crash-on-parenthesized-cu…
blishko Jul 24, 2026
770f44d
SSA CFG: Define shuffle trace
clonker Jul 26, 2026
31e2a87
SSA CFG: use shuffle trace in stack shuffler test
clonker Jul 26, 2026
0a514b6
SSA CFG: compute shuffle cost metrics from recorded traces
clonker Jul 26, 2026
42a6b43
SSA CFG: code transform emits assembly from trace
clonker Jul 26, 2026
34834ab
SSA CFG: replace stack manipulation callbacks with trace recording i…
clonker Jul 26, 2026
add225c
SSA CFG: record shuffle traces in the stack layout
clonker Jul 26, 2026
4bf6ebd
SSA CFG: play back recorded layout traces in CodeTransform instead of…
clonker Jul 26, 2026
341b3e3
SSA CFG: play back recorded def-site store traces for spilled values
clonker Jul 26, 2026
341747e
SSA CFG: derive intermediate stack layouts from traces instead of sto…
clonker Jul 26, 2026
18c1c7f
SSA CFG: deduplicate `reachableStackDepth` and `canBeFreelyGenerated`
clonker Jul 27, 2026
d24aa33
SSA CFG: Shuffler yields trace in return value
clonker Jul 27, 2026
510b2a1
Merge pull request #16883 from argotorg/ssa-cfg-record-trace-instead-…
clonker Jul 28, 2026
dc72830
Fix open zeppelin test failures
nikola-matic Aug 3, 2026
9ba4b0d
Merge pull request #16890 from argotorg/fix-open-zeppelin-test-failures
nikola-matic Aug 3, 2026
7d6571e
BlockDeduplicator: Complete BlockIterator to satisfy range iterator c…
clonker May 6, 2026
9b7f0c9
AssemblyItem: Add hash function
clonker May 6, 2026
6d67f37
BlockDeduplicator: Use ranges::any_of for self-tag presence check
clonker May 6, 2026
ec3f10e
BlockDeduplicator: Compare via unordered set instead of ordered-set l…
clonker May 6, 2026
6930616
fuzztest: Add evmasm BlockDeduplicator property tests
clonker Jul 28, 2026
15bb9a2
cmake: add langutil to evmasm link libraries list
clonker Aug 3, 2026
5b19a5b
fuzztest: Add evmasm BlockDeduplicator reference oracle test
clonker Aug 3, 2026
ef5c04b
Add and update tests
matheusaaguiar Apr 10, 2026
6965f0f
Make storage layout specifier accept signed positive expressions
matheusaaguiar Apr 10, 2026
7308677
Merge pull request #16684 from argotorg/block-deduplicator-perf
clonker Aug 4, 2026
5ac7e09
CI: Use official prebuilt z3 binary on macOS instead of building from…
rodiazet Jul 29, 2026
bf32788
Merge pull request #16891 from argotorg/z3-prebuilt
blishko Aug 4, 2026
ee536fb
Require boost 1.83 on Windows
sbillig Jul 2, 2026
22ef7db
Perf: Use boost unordered_flat_map/set, unordered_multimap
sbillig Jul 1, 2026
714ad45
Commandline Interface: Remove LSP support
clonker May 5, 2026
f91e957
Merge pull request #16589 from argotorg/storage_layout_expression_acc…
blishko Aug 5, 2026
37fa57d
Merge pull request #16849 from sbillig/flat-map
blishko Aug 5, 2026
a7f39ef
Merge pull request #16893 from argotorg/remove-lsp
blishko Aug 5, 2026
54dc764
Remove experimental Solidity
clonker Aug 5, 2026
ea495ce
Remove experimental Solidity: docs and changelog
clonker Aug 5, 2026
c7532dc
Merge pull request #16894 from argotorg/remove-experimental-solidity
clonker Aug 6, 2026
a48b743
Implementation of `SLOTNUM` support in the solidity syntax, inline as…
rodiazet Jul 29, 2026
2840dab
SMTChecker: Gracefully report unsupported block/msg/tx members instea…
rodiazet Jul 29, 2026
9b2f86b
Merge pull request #16881 from argotorg/slotnum
rodiazet Aug 6, 2026
30c997f
yul optimizer: expose SCCs derived from yul call graph
clonker Aug 11, 2026
1c3d548
Merge pull request #16904 from argotorg/expose-sccs-derived-from-yul-…
clonker Aug 11, 2026
5ffc27f
SMTChecker: Support `block.slotnum`
rodiazet Jul 29, 2026
a730d3c
Merge pull request #16884 from argotorg/slotnum-formal
rodiazet Aug 11, 2026
fde7677
Handle lack of 'next_page_token' in the API json response.
rodiazet Aug 12, 2026
ff3c712
Merge pull request #16910 from argotorg/fix-benchmark-pagination-keye…
blishko Aug 12, 2026
69b3e9c
Fix incorrect retrieval of storage packed internal function pointers
matheusaaguiar Apr 30, 2026
3186d9c
Add tests for uninitialized internal function pointer comparisons
matheusaaguiar Aug 7, 2026
204a9af
Fix benchmark helpers script and condition when the bench diff is gen…
rodiazet Aug 12, 2026
14914e0
Merge pull request #16912 from argotorg/fix-missing-next-page-token
rodiazet Aug 14, 2026
f415e25
External tests: Remove experimental ABIEncoderV2 pragma
blishko Aug 14, 2026
c1183a8
Merge pull request #16918 from argotorg/external-tests-remove-experim…
blishko Aug 18, 2026
5d18a5d
Remove experimental `ABIEncoderV2` pragma
blishko Aug 13, 2026
31ed37a
Docs: Remove mention of ABIEncoderV2 experimental pragma
blishko Aug 15, 2026
60dfdc9
Merge pull request #16776 from argotorg/fixUnsetInternalFunctionPoint…
matheusaaguiar Aug 18, 2026
53dc476
Merge pull request #16915 from argotorg/remove-experimental-abi-pragma
blishko Aug 18, 2026
1bfed35
Fix ICE when accessing FixedPointType variables in inline assembly
matheusaaguiar Aug 11, 2026
cb9a1dc
Add tests for FixedPointVariables being accessed in inline assembly
matheusaaguiar Aug 11, 2026
f5395d3
Merge pull request #16907 from argotorg/fix-ICE-inline-assembly-fixed…
blishko Aug 18, 2026
0d9ba57
Add test with warning that cuts an utf8 character in half
clonker Aug 13, 2026
fae800e
Fix source snippet truncation splitting multi-byte UTF-8 characters
clonker Aug 13, 2026
464656f
Merge pull request #16914 from argotorg/fix-invalid-utf8-source-refer…
clonker Aug 19, 2026
064b70c
docs: Document ethdebug internal debug info
djolertrk Aug 19, 2026
497166e
Merge pull request #16780 from walnuthq/feature/internal-spec
cameel Aug 19, 2026
14bf939
Fix Docs: Typo from Frozeable to Freezable (#16928)
qzirak Aug 20, 2026
694ce57
SSA CFG: Add stack shuffling tests with non-empty spill set that osci…
clonker Aug 19, 2026
dd9238d
SSA CFG Shuffler: Fix overeager pop in shrink stack causing oscillation
clonker Aug 19, 2026
f985208
Merge pull request #16929 from argotorg/fix-ssa-cfg-shuffler-cycle-po…
clonker Aug 20, 2026
a4291b6
English documentation updates up to v0.8.36-99-gf98520834 (2026-08-24)
soldocsbot Aug 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
version: 2

build:
os: ubuntu-22.04
os: ubuntu-24.04
tools:
python: "3.11"
python: "3.13"

sphinx:
builder: html
Expand Down
5 changes: 3 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
cmake_minimum_required(VERSION 3.13.0)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON)

set(ETH_CMAKE_DIR "${CMAKE_CURRENT_LIST_DIR}/cmake" CACHE PATH "The path to the cmake directory")
list(APPEND CMAKE_MODULE_PATH ${ETH_CMAKE_DIR})

Expand All @@ -21,7 +23,7 @@ include(EthPolicy)
eth_policy()

# project name and version should be set after cmake_policy CMP0048
set(PROJECT_VERSION "0.8.31")
set(PROJECT_VERSION "0.8.37")
# OSX target needed in order to support std::visit
set(CMAKE_OSX_DEPLOYMENT_TARGET "10.14")
project(solidity VERSION ${PROJECT_VERSION} LANGUAGES C CXX)
Expand Down Expand Up @@ -129,7 +131,6 @@ add_subdirectory(libevmasm)
add_subdirectory(libyul)
add_subdirectory(libsolidity)
add_subdirectory(libsolc)
add_subdirectory(libstdlib)

if (NOT ONLY_BUILD_SOLIDITY_LIBRARIES)
add_subdirectory(tools)
Expand Down
8 changes: 8 additions & 0 deletions docs/050-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,19 @@
Solidity v0.5.0の破壊的変更点
*****************************

<<<<<<< HEAD
.. This section highlights the main breaking changes introduced in Solidity version 0.5.0, along with the reasoning behind the changes and how to update affected code.
.. For the full list check `the release changelog <https://github.com/ethereum/solidity/releases/tag/v0.5.0>`_.

このセクションでは、Solidityバージョン0.5.0で導入された主な変更点と、変更の理由、影響を受けるコードの更新方法について説明します。
完全なリストは `リリースのチェンジログ <https://github.com/ethereum/solidity/releases/tag/v0.5.0>`_ を参照してください。
=======
This section highlights the main breaking changes introduced in Solidity
version 0.5.0, along with the reasoning behind the changes and how to update
affected code.
For the full list check
`the release changelog <https://github.com/argotorg/solidity/releases/tag/v0.5.0>`_.
>>>>>>> english/develop

.. note::
.. Contracts compiled with Solidity v0.5.0 can still interface with contracts
Expand Down
17 changes: 17 additions & 0 deletions docs/060-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,16 @@
Solidity v0.6.0の破壊的変更点
*****************************

<<<<<<< HEAD
.. This section highlights the main breaking changes introduced in Solidity version 0.6.0, along with the reasoning behind the changes and how to update affected code.
.. For the full list check `the release changelog <https://github.com/ethereum/solidity/releases/tag/v0.6.0>`_.
=======
This section highlights the main breaking changes introduced in Solidity
version 0.6.0, along with the reasoning behind the changes and how to update
affected code.
For the full list check
`the release changelog <https://github.com/argotorg/solidity/releases/tag/v0.6.0>`_.
>>>>>>> english/develop

このセクションでは、Solidityバージョン0.6.0で導入された主な変更点と、変更の理由、影響を受けるコードの更新方法について説明します。
完全なリストは `リリースチェンジログ <https://github.com/ethereum/solidity/releases/tag/v0.6.0>`_ を参照してください。
Expand Down Expand Up @@ -156,8 +164,17 @@ Solidity v0.6.0の破壊的変更点
* YulとInline Assemblyには、現在の関数を終了させる ``leave`` という新しい文があります。
* ``address`` から ``address payable`` への変換は ``payable(x)`` を介して可能になりました。

<<<<<<< HEAD
インターフェースの変更点
========================
=======
The compiler now appends the `IPFS <https://ipfs.io/>`_ hash of the metadata file to the end of the bytecode by default
(for details, see documentation on :doc:`contract metadata <metadata>`). Before 0.6.0, the compiler appended the
`Swarm <https://www.ethswarm.org/>`_ hash by default, and in order to still support this behavior,
the new command-line option ``--metadata-hash`` was introduced. It allows you to select the hash to be produced and
appended, by passing either ``ipfs`` or ``swarm`` as value to the ``--metadata-hash`` command-line option.
Passing the value ``none`` completely removes the hash.
>>>>>>> english/develop

.. This section lists changes that are unrelated to the language itself, but that have an effect on the interfaces of the compiler.
.. These may change the way how you use the compiler on the command-line, how you use its programmable interface, or how you analyze the output produced by it.
Expand Down
8 changes: 8 additions & 0 deletions docs/070-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,19 @@
Solidity v0.7.0の破壊的変更点
*****************************

<<<<<<< HEAD
.. This section highlights the main breaking changes introduced in Solidity version 0.7.0, along with the reasoning behind the changes and how to update affected code.
.. For the full list check `the release changelog <https://github.com/ethereum/solidity/releases/tag/v0.7.0>`_.

このセクションでは、Solidityバージョン0.7.0で導入された主な変更点と、変更の理由、影響を受けるコードの更新方法について説明します。
完全なリストは `リリースチェンジログ <https://github.com/ethereum/solidity/releases/tag/v0.7.0>`_ を参照してください。
=======
This section highlights the main breaking changes introduced in Solidity
version 0.7.0, along with the reasoning behind the changes and how to update
affected code.
For the full list check
`the release changelog <https://github.com/argotorg/solidity/releases/tag/v0.7.0>`_.
>>>>>>> english/develop


.. Silent Changes of the Semantics
Expand Down
7 changes: 7 additions & 0 deletions docs/080-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,15 @@
Solidity v0.8.0の破壊的変更点
*****************************

<<<<<<< HEAD
このセクションでは、Solidityのバージョン0.8.0で導入された主な変更点を紹介します。
完全なリストは `リリースチェンジログ <https://github.com/ethereum/solidity/releases/tag/v0.8.0>`_ を参照してください。
=======
This section highlights the main breaking changes introduced in Solidity
version 0.8.0.
For the full list check
`the release changelog <https://github.com/argotorg/solidity/releases/tag/v0.8.0>`_.
>>>>>>> english/develop

.. Silent Changes of the Semantics

Expand Down
2 changes: 1 addition & 1 deletion docs/_static/css/custom-dark.css
Original file line number Diff line number Diff line change
Expand Up @@ -590,6 +590,6 @@
stroke: white;
}

:root[style*=dark] .a4 .sig-name {
:root[style*=dark] .sig-name {
background-color: transparent !important;
}
14 changes: 14 additions & 0 deletions docs/_static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -469,6 +469,20 @@ footer .rst-footer-buttons {
border-bottom: 1px solid var(--color-c);
}

/* Read the Docs Addons version-warning notification.
The addon hardcodes top:2rem / z-index:1750 inside its shadow DOM, so the
fixed site header (--navHeight tall, z-index:99999) both overlaps and covers
it. Style the host element to sit below the header and above its z-index;
the transform makes the host the containing block for the addon's fixed
toast, shifting its internal top:2rem offset down past the header. */
readthedocs-notification {
position: fixed;
top: var(--navHeight);
right: 0;
z-index: 100000;
transform: translateZ(0);
}

/* Rest: Flex-row, with two children: side bar, and content */
.unified-wrapper .wy-grid-for-nav {
position: relative !important;
Expand Down
12 changes: 6 additions & 6 deletions docs/_static/js/constants.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ const CONTRIBUTE_PATH = `/en/latest/contributing.html`;
const ABOUT_PATH = `${SOLIDITY_HOME_URL}/about`;
const FORUM_URL = "https://forum.soliditylang.org/";
const NAV_LINKS = [
{ name: "Blog", href: BLOG_URL },
{ name: "Documentation", href: DOCS_URL },
{ name: "Use cases", href: USE_CASES_PATH },
{ name: "Contribute", href: CONTRIBUTE_PATH },
{ name: "About", href: ABOUT_PATH },
{ name: "Forum", href: FORUM_URL },
{ name: window.NAV_LINKS.blog, href: BLOG_URL },
{ name: window.NAV_LINKS.documentation, href: DOCS_URL },
{ name: window.NAV_LINKS.use_cases, href: USE_CASES_PATH },
{ name: window.NAV_LINKS.contribute, href: CONTRIBUTE_PATH },
{ name: window.NAV_LINKS.about, href: ABOUT_PATH },
{ name: window.NAV_LINKS.forum, href: FORUM_URL },
];

const MOBILE_MENU_TOGGLE_CLASS = "shift";
Expand Down
21 changes: 21 additions & 0 deletions docs/_templates/layout.html
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
{% extends "!layout.html" %}

{% block extrahead %}
{{ super() }}
{% if github_version not in allowed_indexed_versions %}
<meta name="robots" content="noindex, follow">
{% endif %}
{% endblock %}

{% block scripts %}
<script>
window.NAV_LINKS = {
blog: "{{ _('Blog') }}",
documentation: "{{ _('Documentation') }}",
use_cases: "{{ _('Use cases') }}",
contribute: "{{ _('Contribute') }}",
about: "{{ _('About') }}",
forum: "{{ _('Forum') }}"
};
</script>
{{ super() }}
{% endblock %}

{% block menu %}
{{ super() }}
<ul>
Expand Down
7 changes: 7 additions & 0 deletions docs/assembly.rst
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ Solidityのインラインアセンブリに使用される言語は :ref:`Yul <
pragma solidity >=0.4.16 <0.9.0;

library GetCode {
// This will report a warning - `at` will be promoted to reserved keyword
function at(address addr) public view returns (bytes memory code) {
assembly {
// コードのサイズを取得します。これはアセンブリが必要です。
Expand Down Expand Up @@ -469,12 +470,18 @@ Solidityの複数のバージョンで互換性のあるライブラリを開発
...
}

<<<<<<< HEAD
.. Note that we will disallow the annotation via comment in a future breaking release; so, if you are not concerned with backward-compatibility with older compiler versions, prefer using the dialect string.

なお、コメントによるアノテーションは、将来のブレーキングリリースで禁止する予定です。
したがって、古いコンパイラのバージョンとの後方互換性にこだわらない場合は、方言文字列を使用することをお勧めします。

.. TODO:
=======
.. warning::
The ``memory-safe-assembly`` special comment is deprecated and scheduled for removal.
In new code targeting recent compilers, use the assembly block annotation.
>>>>>>> english/develop

Advanced Safe Use of Memory
---------------------------
Expand Down
47 changes: 47 additions & 0 deletions docs/bugs.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,51 @@
[
{
"uid": "SOL-2026-3",
"name": "InheritanceOrderReversalOnStorageEndWarning",
"summary": "Emitting a warning about storage base location being too close to the storage end unintentionally reversed the ``linearizedBaseContracts`` annotation, possibly leading to miscompilation due to reversing the order in which inheritance is resolved.",
"description": "When the compiler detects that a custom layout specifier puts contract's static storage area too close to the end of the address space, it emits a warning. To make the warning more useful, the compiler tries to point at the last storage variable in that area. For this reason it walks the linearized inheritance hierarchy in reverse (from the least to the most derived). The list is calculated once and stored in an AST annotation called ``linearizedBaseContracts``. The direct cause of the bug was the fact that the code that reverses the list was doing it in place rather than on a copy, modifying the annotation. This effectively reversed the order of base contracts seen by any component that runs after layout checks: later phases of analysis, AST export, code generator, SMTChecker, etc. The observable effect was a reversed order of state variable initialization, constructor invocation, virtual function/modifier resolution, leading either to miscompilations or internal compiler errors, depending on the specific usage. Since the source of the bug was in the analysis stage, it was independent of the codegen pipeline or optimizer settings. The main condition necessary to trigger the bug was the presence of the warning in the output. The other is presence of language constructs whose evaluation depends on the inheritance order. While potential effects are very serious, this requirement excludes the vast majority of contracts as intentionally placing the storage variables in the last 2**64 slots is highly discouraged, which was actually the main reason for adding this warning.",
"link": "https://blog.soliditylang.org/2026/07/09/inheritance-order-reversal-on-storage-end-warning-bug/",
"introduced": "0.8.29",
"fixed": "0.8.36",
"severity": "medium"
},
{
"uid": "SOL-2026-2",
"name": "UnsoundSpillInMutualRecursion",
"summary": "Local variables of a function involved in mutual recursion may spuriously be moved to fixed memory offsets and overwritten across recursive calls.",
"description": "To work around the 16-slot stack access limit of the EVM, the IR-based code generator can move local variables of stack-too-deep functions to fixed memory offsets. This relocation is unsound for recursive functions: a fixed offset would be shared by all activations of the function, so a recursive call would overwrite the caller's value. The stack limit evader therefore must not relocate variables of functions that are part of a recursive call chain. To this end, the call graph was searched for cycles using a path-based depth-first search that, once a function had been fully explored and popped from the search path, short-circuited on it on any later visit. As a result, a function shared between several intersecting cycles could be reached first through a path that did not yet close a cycle through it, get marked as finished, and then be skipped when a later path would have revealed that it does lie on a cycle. Such a function was misclassified as non-recursive. When a misclassified function was complex enough for the stack limit evader to relocate some of its variables, those variables were moved to fixed memory offsets and silently corrupted on recursion, producing wrong results rather than a compile-time error. Triggering the bug requires the IR pipeline, a set of mutually recursive functions whose call graph contains intersecting cycles, at least one of the functions in an undetected part of a cycle being complex enough to require relocation to memory, and an unfortunate processing order of the functions (which depends on the hashes of their Yul names). It is independent of whether the optimizer is enabled.",
"link": "https://blog.soliditylang.org/2026/07/09/unsound-spill-in-mutual-recursion-bug/",
"introduced": "0.7.2",
"fixed": "0.8.36",
"severity": "medium",
"conditions": {
"viaIR": true
}
},
{
"uid": "SOL-2026-1",
"name": "TransientStorageClearingHelperCollision",
"summary": "Clearing both storage and transient storage variables in the same contract may result in only one of these locations being cleared.",
"description": "The IR-based code generator provides a set of Yul helper functions for basic operations, such as clearing, copying, encoding or type conversions. Not all functions are used by every contract. The codegen appends them to the generated sources individually, only when an operation that would invoke one of them is encountered. Utility functions are often specialized for different types and locations. Since Yul does not support generic functions, specialization is done by generating multiple versions of the same function, with the information distinguishing the variants embedded in their names. However, if not all the necessary bits of distinguishing information are properly accounted for, two helpers may end up with the same name, causing a collision. In this situation the codegen includes only one of them, with calls to both variants invoking it. This happened with the ``set_to_zero`` helper used when an area of transient or persistent storage needs to be cleared. The helper name was missing the location information, which resulted in a collision between the persistent and transient storage variants for the same type. This meant that contracts clearing both locations would actually clear only one, leaving the other untouched. Which location ended up being cleared depended on the order in which the code generator processed the input. The necessary condition to trigger the bug was the use of ``delete`` operator on a transient storage variable. This was due to value types being the only types supported in transient storage and ``delete`` being the only operation invoking the helper allowed on such types. The other necessary condition was clearing of persistent storage and in this case the range of affected operations was wider: operator ``delete``, array ``pop()`` or assignment that resulted in a longer array being overwritten with a shorter one. The cleared variable itself also did not necessarily have to be of the same type. It was enough that a matching value type was nested in it. It also did not always have to be the exact same value type - clearing operations on reference types are usually performed at slot granularity, treating every slot as ``uint256`` rather than clearing every value packed into it individually. To trigger the bug both operations had to be present within the same piece of bytecode. Independent contracts, not related through inheritance, would not affect each other this way. The presence of one operation only in creation code and the other only in deployed code would not trigger the bug either.",
"link": "https://blog.soliditylang.org/2026/02/18/transient-storage-clearing-helper-collision-bug/",
"introduced": "0.8.28",
"fixed": "0.8.34",
"severity": "high",
"conditions": {
"viaIR": true,
"evmVersion": ">=cancun"
}
},
{
"uid": "SOL-2025-1",
"name": "LostStorageArrayWriteOnSlotOverflow",
"summary": "Operations that involve clearing or copying from arrays that straddle the end of storage could result in silent data retention.",
"description": "Solidity makes it possible to define variables that extend past the last (2**256-th) slot of storage, which results in wrap-around back to slot zero. Since EVM uses 256-bit integer arithmetic, most operations on such variables just work. The only situation which requires special attention is iteration against absolute slot addresses: the invariant that the last slot belonging to a variable has the highest address does not hold. When implemented incorrectly, a loop over an array will immediately terminate if the container spans the end of storage - due to the initial position already being greater than the end position. This affected storage array clearing loops generated by both evmasm and IR pipelines. Additionally, (only in the evmasm pipeline) copying operations whose source was an array straddling the end of storage were also affected. At the language level, the buggy code would be generated for array assignment, array initialization, delete operator, <array>.pop() and <array>.push(). Note that a clearing loop is inserted by the compiler not only for invocations of the delete operator, but also to zero storage when overwriting a longer array with a shorter one, popping an element or even pushing an empty element to a dynamic array. Since clearing is a separate loop, it is possible for the bug to only affect it and not the copy operation it follows (which is always the case in the IR pipeline). The bug is extremely unlikely to be triggered accidentally due to the probabilistic impossibility of a short dynamic array being allocated right at the storage boundary. On the other hand, scenarios in which a user may place a static array there intentionally do not seem realistic and are limited to unusual layouts, in which a contract does not place any storage variables at slot zero (otherwise they would overlap the array).",
"link": "https://blog.soliditylang.org/2025/12/18/lost-storage-array-write-on-slot-overflow-bug/",
"introduced": "0.1.0",
"fixed": "0.8.32",
"severity": "low"
},
{
"uid": "SOL-2023-3",
"name": "VerbatimInvalidDeduplication",
Expand Down
Loading