Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1888 commits
Select commit Hold shift + click to select a range
eaaba5f
Apply fix
rodiazet Dec 8, 2025
910350b
Add tests
rodiazet Dec 8, 2025
53a9efb
Update parser error message and tests results.
rodiazet Dec 10, 2025
dad604c
Update changelog
rodiazet Dec 10, 2025
357cf7f
Merge pull request #16344 from argotorg/import-event
cameel Dec 17, 2025
2d6ecc5
legacy: Fix handling of storage array boundaries (deletion, cleanup, …
r0qs Dec 17, 2025
eb41494
via-ir: Fix handling of storage array boundaries (deletion and cleanup)
r0qs Dec 17, 2025
4f0e20c
Add test for arrays at storage boundaries and extend coverage of lega…
r0qs Dec 17, 2025
1ebf539
Update Changelog.md and add bug entry for LostStorageArrayWriteOnSlot…
r0qs Dec 17, 2025
a1bf08c
Merge pull request #15984 from argotorg/storageOverflowDeleteBug
r0qs Dec 17, 2025
b34a054
Fix `string|bytes.concat` assignment to a constant variable.
rodiazet Dec 17, 2025
f4b7f98
Add syntax tests.
rodiazet Dec 17, 2025
a4bd1b7
Add semantic test
rodiazet Dec 17, 2025
ba32d8b
Update tests. Change error message.
rodiazet Dec 17, 2025
91a49db
Update tests. Modify to avoid the no effect warning.
rodiazet Dec 17, 2025
2c0acc5
Update changelog
rodiazet Dec 17, 2025
eb6a459
Add sanity check in the end of `TypeChecker::visit(MemberAccess const…
rodiazet Dec 17, 2025
b28145c
Update docs about solc-bin.ethereum.org deprecation in favor of binar…
r0qs Dec 11, 2025
b736152
Merge pull request #16341 from argotorg/fix-string-bytes-concat-assig…
cameel Dec 17, 2025
7f5d590
Merge pull request #16346 from argotorg/solc-bin-eth-deprecation
cameel Dec 17, 2025
1c61064
Fix changelog for 0.8.32
nikola-matic Dec 18, 2025
ebbd65e
Merge pull request #16359 from argotorg/sort-changelog-for-0-8-32
nikola-matic Dec 18, 2025
1ebf887
set version to 0.8.33
matheusaaguiar Dec 17, 2025
2faa271
Merge pull request #16357 from argotorg/set-version-0.8.33
nikola-matic Dec 18, 2025
c6aecab
Remove the sanity check.
rodiazet Dec 18, 2025
27af4dc
Add tests.
rodiazet Dec 18, 2025
07bf6e1
Update changelog.
rodiazet Dec 18, 2025
13ea553
Merge pull request #16361 from argotorg/constant-bug-fix
nikola-matic Dec 18, 2025
c8ebb11
Sort changelog and date for 0.8.33
nikola-matic Dec 18, 2025
64118f2
Merge pull request #16363 from argotorg/sort-changelog-for-0-8-33
cameel Dec 18, 2025
a50affb
Set version to 0.8.34
matheusaaguiar Dec 18, 2025
da07f65
Merge pull request #16362 from argotorg/set-version-0.8.34
matheusaaguiar Dec 18, 2025
779f590
Add Constantinople EVM version requirement to long byte array cleanup…
r0qs Dec 18, 2025
089b04b
Merge pull request #16358 from argotorg/fix_t_ubu_soltest_deprecated_…
cameel Dec 19, 2025
7e371dd
Enables pipefail globally so parsing errors fail CI instead of being …
r0qs Dec 21, 2025
e882f53
Fix external tests for hardhat-gas-reporter v2 compatibility
r0qs Dec 21, 2025
1cd9bc2
Bump hardhat-gas-reporter to v2 in gp2 external test
r0qs Dec 22, 2025
dad5e83
Merge pull request #16371 from argotorg/fix-gas-report
r0qs Dec 22, 2025
d271150
ci: Replace `t_ubu_soltest_all` with `t_ubu_soltest`
manuelwedler Dec 17, 2025
78dd4d1
ci: Remove `t_ubu_soltest_all` job
manuelwedler Dec 22, 2025
41b20a7
ci: Remove `--no-smt` flag from `t_ubu_soltest` job
manuelwedler Dec 22, 2025
ed1f49b
Merge pull request #16353 from manuelwedler/replace-t_ubu_soltest_all
clonker Jan 5, 2026
2b7dedf
Add ccache to buildpack-deps images
marcocastignoli Jan 6, 2026
009ea62
CI: Batched antlr check
clonker Jan 6, 2026
7856462
Merge pull request #16389 from argotorg/ci_batch_antlr_check
clonker Jan 6, 2026
98af07f
Add Slippy to the list of Solidity tools
fvictorio Sep 5, 2025
fb90003
Add 'slippy' to codespell's whitelist
fvictorio Dec 19, 2025
1d6e22d
Speed up CI builds with ccache (seeded from develop)
marcocastignoli Jan 7, 2026
9cc88f9
Merge pull request #16193 from fvictorio/patch-3
clonker Jan 7, 2026
d68a7cd
Set CCACHE_DIR and create directory if CCACHE_ENABLED
marcocastignoli Jan 7, 2026
2243156
enforce CCACHE_KEY and fix Windows ccache CMake globals
marcocastignoli Jan 8, 2026
e1e2ebe
Programmatically find the path of cl.exe
marcocastignoli Jan 8, 2026
c2bf441
Remove the version filter in the command to find cl.exe
marcocastignoli Jan 8, 2026
9b8d22a
Fix vswhere command
marcocastignoli Jan 8, 2026
4bb9225
Fix CCACHE_COMPILER extraction
marcocastignoli Jan 8, 2026
b6d0d78
Update JSON.cpp
0xcharry Jan 11, 2026
95caef2
Refactor config.yml to re-use ccache restore and save commands
marcocastignoli Jan 12, 2026
eab9d3c
Merge pull request #16395 from 0xcharry/patch-2
clonker Jan 12, 2026
bd615db
Add revision to the cache key to avoid skipping cache generation for …
marcocastignoli Jan 12, 2026
be1df07
CLI Parser: Use defaulted comparison operators for options
clonker Jan 13, 2026
1588261
Merge pull request #16398 from argotorg/default_comparison_ops_for_cl…
nikola-matic Jan 14, 2026
6d538dd
ReleaseChecklist: Split off Comms and Documentation sections from Pos…
cameel Dec 20, 2025
5e28f2a
ReleaseChecklist: New step to verify links in release notes
cameel Dec 20, 2025
4629368
ReleaseChecklist: Emphasize that blog/website drafts should be create…
cameel Dec 20, 2025
cd8efc7
Merge pull request #16366 from argotorg/post-0.8.33-release-checklist…
cameel Jan 14, 2026
7bd6b27
Replace transfer with call in smt tests
matheusaaguiar Dec 11, 2025
8cd5a37
Merge pull request #16291 from argotorg/update-deprecated-smt-tests
cameel Jan 14, 2026
041b918
Reword docs about linux packages and add info about Nix
cameel Oct 10, 2025
2673c4b
Merge pull request #16402 from argotorg/mention-nix-in-installing-sol…
cameel Jan 16, 2026
c1975a2
Remove the prerequisite steps from the default optimizer sequence
cameel May 11, 2024
fafa321
Merge pull request #15092 from argotorg/remove-redundant-prerequisite…
cameel Jan 19, 2026
2583ecc
EVM instruction interpreter: Add support for loadimmutable and setimm…
clonker Jan 6, 2026
940aa92
EVMInstruction Interpreter: Improve linkersymbol to not just yield co…
clonker Jan 19, 2026
d28d552
Merge pull request #16387 from argotorg/evm_instruction_interpreter_k…
clonker Jan 19, 2026
e80f7db
Fix style check to detect misaligned pointer declarations
r0qs Jan 26, 2026
b8d14a5
Fix pointer declaration alignment style
r0qs Jan 26, 2026
2eea2ae
Fix unnecessary escaping in comment exclusion regex
r0qs Jan 26, 2026
12004a1
Refactor ccache build commands into a single `run_with_ccache_unless_…
marcocastignoli Jan 28, 2026
81070d3
perf: opt SimplePeepholeOptimizerMethod (#16426)
cuiweixie Jan 29, 2026
04833a5
Update ccache commands to use 'develop' branch instead of 'ci-ccache'
marcocastignoli Feb 2, 2026
8b76e39
Merge pull request #16423 from argotorg/fix-style-check-exclusion-pat…
r0qs Feb 2, 2026
ab0c464
Merge pull request #16384 from argotorg/buildpack-deps-with-ccache
r0qs Feb 2, 2026
292c056
Merge pull request #16385 from argotorg/ci-ccache
r0qs Feb 2, 2026
21e284e
evmasm: Remove unused return value from `clearStorageLoop()`
r0qs Dec 20, 2025
cd14729
Remove CCACHE_KEY from cache keys in CircleCI config
marcocastignoli Feb 2, 2026
b8e0364
Remove `ensure_ccache_key_unless_tag` and its usages
marcocastignoli Feb 2, 2026
eb3dc0c
Fix comment for resetting ccache
marcocastignoli Feb 2, 2026
7537424
Merge pull request #16434 from argotorg/remove-ccache_key-env
clonker Feb 2, 2026
abeaab4
Clarify remapping rules in path-resolution documentation
JPier34 Jan 29, 2026
e98ec36
Merge pull request #16427 from JPier34/develop
clonker Feb 2, 2026
cf1a3b0
EVMAssemblyTest: Warn about custom expectedExecutionsPerDeployment ha…
cameel Apr 25, 2025
9707fe5
Merge pull request #16023 from argotorg/disallow-non-default-runs-in-…
cameel Feb 3, 2026
f0486ba
CI: Move constantinople and petersburg EVM runs back from nightly to …
cameel Feb 2, 2026
fc63943
CI: Replace homestead with prague and petersburg in the nightly run
cameel Feb 2, 2026
1bd510c
Merge pull request #16367 from argotorg/remove-clearStorageLoop-retur…
r0qs Feb 4, 2026
fe5cbc1
Merge pull request #16435 from argotorg/move-old-evm-tests-back-from-…
cameel Feb 4, 2026
5e6d9f1
Add arithmetic concept and arithmetic string parsing utilities
clonker Feb 2, 2026
31ef278
Pull Stack Depth and Offset definitions out of the Stack itself
clonker Feb 2, 2026
e1cb843
Fix dup implementation in ssa Stack abstraction
clonker Feb 2, 2026
0d10f89
Simplify stack and slot to string functions for ssa Stack
clonker Feb 2, 2026
02af154
Add the ssa stack shuffler
clonker Feb 2, 2026
b2cb2af
Add stack shuffler test
clonker Feb 2, 2026
70d774f
Add stack shuffler tests
clonker Feb 2, 2026
3dd0637
Merge pull request #16433 from argotorg/ssa_shuffler
clonker Feb 4, 2026
8f64308
Update resources.rst
TilakMaddy Mar 29, 2025
1a499f1
fix
TilakMaddy Jun 23, 2025
3ca46b0
Merge pull request #15973 from TilakMaddy/TilakMaddy-patch-1
cameel Feb 6, 2026
7e2fb2d
Fix `check_style.sh`. Replace `\s` to `[[:space:]]`
rodiazet Feb 4, 2026
6be6e15
Merge pull request #16441 from argotorg/fix-check-style-script
rodiazet Feb 6, 2026
64f26d9
update information about using Remix offline
davidekete Feb 7, 2026
7994118
Merge pull request #16451 from davidekete/remix-offline
cameel Feb 7, 2026
39bf083
move SSACFGTopologicalSort -> traversal/ForwardTopologicalSort
clonker Feb 9, 2026
d783ff9
move SSA CFG json exporter into io subdirectory and namespace
clonker Feb 9, 2026
05457c1
Add SSA CFG Dot exporter base
clonker Feb 9, 2026
e3c73c2
Use Dot Exporter Base in `toDot` of SSACFG
clonker Feb 9, 2026
9dc6b2e
Merge pull request #16455 from argotorg/create_ssa_cfg_dot_exporter_base
clonker Feb 10, 2026
025600f
Add phi inverse function for ssa-based cfgs
clonker Feb 4, 2026
b3a7948
ssa-cfg stack abstraction can also declare junk based on offsets
clonker Feb 4, 2026
746871a
Define what constitutes a stack layout for SSA-CFGs
clonker Feb 4, 2026
d2de781
Add SSA-CFG stack layout generator
clonker Feb 4, 2026
22b1b12
Add SSA-CFG StackUtils
clonker Feb 4, 2026
889679b
Add SSA-CFG StackLayoutGenerator test
clonker Feb 5, 2026
b0d0ac1
Add SSA CFG stack layout generation tests
clonker Feb 9, 2026
7abe30f
Merge pull request #16464 from argotorg/ssa_stack_layout_gen
clonker Feb 17, 2026
4b0ced4
fix broken doc links
clonker Feb 17, 2026
490d78f
Merge pull request #16474 from argotorg/fix_broken_docs_links
clonker Feb 17, 2026
ffd11b3
Test cases
nikola-matic Feb 12, 2026
580a729
Changelog
nikola-matic Feb 12, 2026
12ede4f
Fix transient/storage collision when deleting
nikola-matic Feb 12, 2026
57e7893
Bug list entry
nikola-matic Feb 13, 2026
4b88262
Merge pull request #16477 from argotorg/advisory-fix-1
nikola-matic Feb 18, 2026
e958997
Changelog for 0.8.34
nikola-matic Feb 18, 2026
80d5c53
Merge pull request #16478 from argotorg/sort-changelog-for-0-8-34
clonker Feb 18, 2026
6a8f003
Set version to 0.8.35
nikola-matic Feb 18, 2026
98f84a7
update docker image of scripts/build_emscripten.sh
clonker Feb 17, 2026
1f772cd
Merge pull request #16479 from argotorg/set-version-to-0-8-35
nikola-matic Feb 18, 2026
4ecc97e
Merge pull request #16475 from argotorg/update_build_emscripten_docke…
r0qs Feb 18, 2026
30f2018
optimiser: avoid double lookup in translateIdentifier (#16468)
Olexandr88 Feb 19, 2026
e050973
Remove jump tables from SSA CFG
clonker Feb 24, 2026
33aac98
Merge pull request #16485 from argotorg/remove_jump_tables_from_ssa_cfg
clonker Feb 24, 2026
f042459
Fix wrong indices in nested-array-element-storage-to-storage test
r0qs Feb 24, 2026
7dc286d
Merge pull request #16488 from argotorg/fix-nested-array-element-stor…
r0qs Mar 2, 2026
36b7ff5
Use unordered maps for FunctionReferenceResolver
clonker Feb 24, 2026
f3cc67d
Optimize control flow side effects collector
clonker Feb 24, 2026
0409c5c
Merge pull request #16486 from argotorg/optimize_cfg_side_effects_col…
clonker Mar 3, 2026
f481d1c
Introduce experimental flag/option
nikola-matic Oct 6, 2025
adc2c30
Cover experimental pragmas and tests
nikola-matic Oct 20, 2025
168b4a3
Introduce experimental option in standard JSON
nikola-matic Nov 20, 2025
65a1e53
Documentation for experimental mode
nikola-matic Jan 14, 2026
d9fc8be
Changelog
nikola-matic Jan 14, 2026
23002f0
Add experimental mode to metadata
nikola-matic Jan 21, 2026
cad1676
Address review comments
nikola-matic Feb 6, 2026
c61a2ae
Help output changes
nikola-matic Mar 3, 2026
c0225a0
Merge pull request #16229 from argotorg/introduce-experimental-flag
nikola-matic Mar 5, 2026
5bd7117
Add SSA CFG code transform
clonker Feb 11, 2026
0f5f9ed
Add ssa stack target validator
clonker Feb 23, 2026
fc1f032
SSA stack shuffler: convenience method when no liveness is required
clonker Feb 23, 2026
2e55786
SSA Stack callbacks use StackDepth
clonker Feb 24, 2026
ad675cb
Thread SSA CFG Codegen through compiler stack
clonker Mar 3, 2026
4687eec
Add compileViaSSAYul option to semantic test suite
clonker Mar 3, 2026
99a57b2
Enable compileViaSSAYul for deposit and snark contract
clonker Mar 3, 2026
08051cf
Add ssa yul ir parsing capabilities to gas_diff_stats.py
clonker Mar 3, 2026
436ccd5
Make SSA CFG Codegen an experimental feature
clonker Mar 5, 2026
61baed5
Merge pull request #16498 from argotorg/ssa_cfg_codegen
clonker Mar 5, 2026
d153bfe
Stack shuffler: use mark-on-enqueue for bring up target slot stack tr…
clonker Mar 4, 2026
6313134
Merge pull request #16499 from argotorg/mark-on-enqueue-for-bring-up-…
clonker Mar 9, 2026
de054d1
docs: fix reentrancy vulnerability in micropayment close() example (#…
masshash Mar 10, 2026
64e221f
ssa cfg codegen: make function return label slot handling explicit
clonker Mar 4, 2026
47875c8
Merge pull request #16501 from argotorg/ssa_cfg_codegen_with_explicit…
clonker Mar 10, 2026
fab9d5c
Fix invalid reference use
msooseth Mar 10, 2026
109dae5
Merge pull request #16511 from argotorg/fix-invalid-ref-use
msooseth Mar 10, 2026
f47fa8d
Add and update tests
matheusaaguiar Mar 18, 2025
64893d8
Introduce new builtin function erc7201
matheusaaguiar Mar 18, 2025
fcd94ee
Update docs
matheusaaguiar Mar 3, 2026
8c18069
Add experimental --via-ssa-cfg to CLI
clonker Mar 5, 2026
5d9ba67
Add experimental settings.viaSSACFG to Standard JSON Interface
clonker Mar 5, 2026
92673f6
Add viaSSACFG to compilation metadata
clonker Mar 9, 2026
11beecc
Update wording of --via-ir help message.
clonker Mar 10, 2026
9f4d0b8
Merge pull request #16503 from argotorg/via_ssa_cfg_cli
clonker Mar 11, 2026
a99b6d8
Merge pull request #15968 from argotorg/builtinERC7201
matheusaaguiar Mar 11, 2026
781aeb1
SSA: Tighten condition in shuffler
blishko Mar 11, 2026
8ad8550
Merge pull request #16512 from argotorg/ssa-cfg-shuffler-updates
blishko Mar 11, 2026
c18c5a4
docs: move nav links to Jinja template for i18n (#16471)
hwhsu1231 Mar 12, 2026
f72c159
Pin @uniswap/v3-sdk
rodiazet Mar 13, 2026
fa16df6
Fix yield-liquidator
rodiazet Mar 13, 2026
7b85eba
Merge pull request #16523 from argotorg/pin-uniswap-dep
nikola-matic Mar 13, 2026
d50fcad
Test invalid import asm json input mode combinations with other cli o…
clonker Mar 12, 2026
bb64ae4
cli parser: expose set of experimental cli options
clonker Mar 12, 2026
7e38b81
Merge pull request #16518 from argotorg/test_import_asm_mode_command_…
clonker Mar 13, 2026
d5f9e38
repair changelog: move performance optimization from 0.8.34 to 0.8.35…
clonker Mar 16, 2026
57d3d68
Merge pull request #16525 from argotorg/move_optimizer_perf_changelog…
clonker Mar 16, 2026
6e209e6
.gitignore: add .claude
d-xo Mar 16, 2026
224649b
Merge pull request #16527 from argotorg/ignore-claude
cameel Mar 16, 2026
0c2a84f
cmake: generate compile_commands.json
d-xo Mar 16, 2026
995580c
Merge pull request #16526 from argotorg/clangd-support
d-xo Mar 17, 2026
1a65349
remove `solidity::yul::Language::Assembly`
clonker Mar 10, 2026
ff18b98
deactivate --assemble CLI option
clonker Mar 12, 2026
ab0c571
Remove `yul::Language`
clonker Mar 13, 2026
1f5822f
Hide `--yul` and `--assemble` from `solc --help`
clonker Mar 13, 2026
2aad0a7
Merge pull request #16521 from argotorg/remove_cli_assemble
clonker Mar 18, 2026
4e281a7
Escape object/data names in Yul serializer (#16517)
msooseth Mar 18, 2026
b5e2e78
SSA: Refactor shuffling helper `dupDeepSlotIfRequired`
blishko Mar 12, 2026
8a66e9f
SSA: Prefer swapping instead of shrinking followed by dupping
blishko Mar 12, 2026
bbbb423
Merge pull request #16515 from argotorg/ssa-cfg-shuffler-updates
clonker Mar 19, 2026
90eb849
Refactor hardcoded reachable stack depth
frangio Feb 12, 2026
81013e6
Merge pull request #16467 from frangio/refactor-stack-limit
clonker Mar 19, 2026
6990192
Fix Foundry installation for external contributors
r0qs Feb 17, 2026
64bba94
Merge pull request #16473 from argotorg/fix-gh-api-limit-foundry-circ…
r0qs Mar 19, 2026
0b72013
fix shoulde be dup instuction not swap instruction
cuiweixie Mar 20, 2026
c397b16
Merge pull request #16534 from cuiweixie/bugfix/gas-meter-dup
cameel Mar 20, 2026
6e3ad1a
SSA: Add shuffler test
blishko Mar 22, 2026
675df1e
Merge pull request #16536 from argotorg/ssa-shuffler-test
clonker Mar 23, 2026
16381d3
SSA: Fix reachability check in stack shuffler
blishko Mar 23, 2026
995499a
Give operations in SSA CFGs stable IDs
clonker Mar 19, 2026
6479b63
Extract SSA CFG ID types into SSACFGTypes.h
clonker Mar 19, 2026
082a192
Extract debug data from SSA CFG nodes into a separate side structure
clonker Mar 19, 2026
74c2100
Merge pull request #16533 from argotorg/ssacfg_separate_dbg_structure
clonker Mar 23, 2026
9d864e1
Merge pull request #16538 from argotorg/ssa-fix-inefficiency-in-stack…
blishko Mar 23, 2026
fbae9e2
SSA: Rename method to determine if slot is a valid swap target
blishko Mar 23, 2026
2f7307b
SSA: Introduce and use new stack helper
blishko Mar 23, 2026
b8cb7c3
Merge pull request #16541 from argotorg/ssa-stack-refactor
blishko Mar 23, 2026
aaa8c50
Build SSA CFG in phi-upsilon form
clonker Mar 23, 2026
a42ec83
Merge pull request #16542 from argotorg/phi-upsilon
clonker Mar 24, 2026
a99633a
Introduce experimental EVM version
nikola-matic Mar 9, 2026
15b26e6
Add a soltest run for experimental EVM versions
nikola-matic Mar 10, 2026
c2d2bc6
Changelog
nikola-matic Mar 18, 2026
59ebbe7
Move test/libyul/SSAControlFlowGraphTest to test/libyul/ssa/ControlFl…
clonker Mar 24, 2026
514eb37
Merge pull request #16545 from argotorg/move-ssa-cfg-tests-into-ssa-s…
clonker Mar 24, 2026
67d60c0
SSA: Add shuffler test
blishko Mar 25, 2026
ea83177
Merge pull request #16505 from argotorg/introduce-experimental-evm-ve…
nikola-matic Mar 25, 2026
401b69c
Merge pull request #16546 from argotorg/ssa-shuffler-test
blishko Mar 25, 2026
c68928c
Optimize SSA CFG Builder's trivial phi removal
clonker Mar 24, 2026
3f38cc8
Extract trivial phi elimination from ssa cfg builder
clonker Mar 24, 2026
566bbe0
Merge pull request #16544 from argotorg/phi-upsilon-opt
clonker Mar 25, 2026
adfeac8
Move TrivialPhiEliminator into ssa::transform namespace
clonker Mar 25, 2026
764ee9c
Extract unreachable block cleaning into its own transform pass
clonker Mar 25, 2026
21b8382
Optimize unreachable block cleaner
clonker Mar 25, 2026
24593bb
Unreachable block cleaner resets the block instead of only emptying u…
clonker Mar 25, 2026
5e0a446
Use concept for `SSACFG::forEachExit`
clonker Mar 25, 2026
d831103
Merge pull request #16550 from argotorg/ssa-separate-trivial-phi-and-…
clonker Mar 25, 2026
9f67495
SSA: Add shuffler test
blishko Mar 26, 2026
055fa14
Merge pull request #16554 from argotorg/ssa-yet-another-shuffler-test
blishko Mar 26, 2026
41a57e7
SSA: Simplify shuffler helper
blishko Mar 26, 2026
7f07efc
Merge pull request #16556 from argotorg/ssa-small-refactor
blishko Mar 27, 2026
2be29a9
relax conditions for a valid ssa stackShuffler test definition
clonker Mar 27, 2026
2bbe127
simplify ssa stackShuffler test definitions
clonker Mar 27, 2026
047b337
Merge pull request #16557 from argotorg/improve-shuffler-test-interface
clonker Mar 27, 2026
8ff9565
Tests: Run SSA-CFG on external contracts in semantic tests
blishko Mar 27, 2026
e4a5b77
Merge pull request #16558 from argotorg/enable-ssa-cfg-on-all-externa…
blishko Mar 27, 2026
9b9be2f
English documentation updates up to v0.8.35-pre.1-69-ge4a5b77df (2026…
soldocsbot Mar 30, 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
18 changes: 18 additions & 0 deletions .readthedocs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
version: 2

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

sphinx:
builder: html
configuration: docs/conf.py

formats:
- pdf
- epub

python:
install:
- requirements: docs/requirements.txt
128 changes: 61 additions & 67 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.25")
set(PROJECT_VERSION "0.8.35")
# 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 All @@ -34,19 +36,39 @@ endif()

option(SOLC_LINK_STATIC "Link solc executable statically on supported platforms" OFF)
option(SOLC_STATIC_STDLIBS "Link solc against static versions of libgcc and libstdc++ on supported platforms" OFF)
option(STRICT_Z3_VERSION "Use the latest version of Z3" ON)
option(STRICT_Z3_VERSION "Require the exact version of Z3 solver expected by our test suite." ON)
option(PEDANTIC "Enable extra warnings and pedantic build flags. Treat all warnings as errors." ON)
option(PROFILE_OPTIMIZER_STEPS "Output performance metrics for the optimiser steps." OFF)
option(
IGNORE_VENDORED_DEPENDENCIES
"Ignore libraries provided as submodules of the repository and allow CMake to look for \
them in the typical locations, including system-wide dirs."
OFF
)
option(
ONLY_BUILD_SOLIDITY_LIBRARIES
"Only build library targets that can be statically linked against. Do not build executables or tests."
OFF
)
mark_as_advanced(PROFILE_OPTIMIZER_STEPS)
mark_as_advanced(IGNORE_VENDORED_DEPENDENCIES)
mark_as_advanced(ONLY_BUILD_SOLIDITY_LIBRARIES)

# Setup cccache.
include(EthCcache)

# Let's find our dependencies
include(EthDependencies)
include(fmtlib)
include(jsoncpp)
include(range-v3)
include_directories(SYSTEM ${JSONCPP_INCLUDE_DIR})
if (NOT IGNORE_VENDORED_DEPENDENCIES)
include(fmtlib)
include(nlohmann-json)
include(range-v3)
else ()
message(WARNING "-- Ignoring vendored dependencies. Will use installed versions if found. Versions may differ from the ones the compiler was tested with. Make sure to run the test suite and thoroughly test the resulting binaries before using them in production.")
find_package(fmt REQUIRED)
find_package(nlohmann_json REQUIRED)
find_package(range-v3 REQUIRED)
endif()

find_package(Threads)

Expand Down Expand Up @@ -75,62 +97,31 @@ configure_file("${PROJECT_SOURCE_DIR}/cmake/templates/license.h.in" include/lice

include(EthOptions)
configure_project(TESTS)
set(LATEST_Z3_VERSION "4.12.1")
set(MINIMUM_Z3_VERSION "4.8.16")
find_package(Z3)
if (${Z3_FOUND})
if (${STRICT_Z3_VERSION})
if (NOT ("${Z3_VERSION_STRING}" VERSION_EQUAL ${LATEST_Z3_VERSION}))
message(
FATAL_ERROR
"SMTChecker tests require Z3 ${LATEST_Z3_VERSION} for all tests to pass.\n\
Build with -DSTRICT_Z3_VERSION=OFF if you want to use a different version. \
You can also use -DUSE_Z3=OFF to build without Z3. In both cases use --no-smt when running tests."
)
endif()
else()
if ("${Z3_VERSION_STRING}" VERSION_LESS ${MINIMUM_Z3_VERSION})
message(
FATAL_ERROR
"Solidity requires Z3 ${MINIMUM_Z3_VERSION} or newer. You can also use -DUSE_Z3=OFF to build without Z3."
)
endif()
endif()
endif()

if(${USE_Z3_DLOPEN})
add_definitions(-DHAVE_Z3)
add_definitions(-DHAVE_Z3_DLOPEN)
find_package(Python3 COMPONENTS Interpreter)
if(${Z3_FOUND})
get_target_property(Z3_HEADER_HINTS z3::libz3 INTERFACE_INCLUDE_DIRECTORIES)
endif()
find_path(Z3_HEADER_PATH z3.h HINTS ${Z3_HEADER_HINTS})
if(Z3_HEADER_PATH)
set(Z3_FOUND TRUE)
else()
message(SEND_ERROR "Dynamic loading of Z3 requires Z3 headers to be present at build time.")
endif()
if(NOT ${Python3_FOUND})
message(SEND_ERROR "Dynamic loading of Z3 requires Python 3 to be present at build time.")
endif()
if(${SOLC_LINK_STATIC})
message(SEND_ERROR "solc cannot be linked statically when dynamically loading Z3.")
endif()
elseif (${Z3_FOUND})
add_definitions(-DHAVE_Z3)
message("Z3 SMT solver found. This enables optional SMT checking with Z3.")
endif()

find_package(CVC4 QUIET)
if (${CVC4_FOUND})
add_definitions(-DHAVE_CVC4)
message("CVC4 SMT solver found. This enables optional SMT checking with CVC4.")
endif()

if (NOT (${Z3_FOUND} OR ${CVC4_FOUND}))
message("No SMT solver found (or it has been forcefully disabled). Optional SMT checking will not be available.\
\nPlease install Z3 or CVC4 or remove the option disabling them (USE_Z3, USE_CVC4).")
if(EMSCRIPTEN)
set(TESTED_Z3_VERSION "4.13.3")
set(MINIMUM_Z3_VERSION "4.8.16")
find_package(Z3)
if (${Z3_FOUND})
add_definitions(-DEMSCRIPTEN_BUILD)
if (${STRICT_Z3_VERSION})
if (NOT ("${Z3_VERSION_STRING}" VERSION_EQUAL ${TESTED_Z3_VERSION}))
message(
FATAL_ERROR
"SMTChecker tests require Z3 ${TESTED_Z3_VERSION} for all tests to pass.\n"
)
endif()
else()
if ("${Z3_VERSION_STRING}" VERSION_LESS ${MINIMUM_Z3_VERSION})
message(
FATAL_ERROR
"Solidity requires Z3 ${MINIMUM_Z3_VERSION} or newer."
)
endif()
endif()
else()
message(FATAL_ERROR "Solidity requires Z3 for emscripten build.")
endif()
endif()

add_subdirectory(libsolutil)
Expand All @@ -141,12 +132,15 @@ add_subdirectory(libyul)
add_subdirectory(libsolidity)
add_subdirectory(libsolc)
add_subdirectory(libstdlib)
add_subdirectory(tools)

if (NOT EMSCRIPTEN)
add_subdirectory(solc)
endif()
if (NOT ONLY_BUILD_SOLIDITY_LIBRARIES)
add_subdirectory(tools)

if (TESTS AND NOT EMSCRIPTEN)
add_subdirectory(test)
if (NOT EMSCRIPTEN)
add_subdirectory(solc)
endif()

if (TESTS AND NOT EMSCRIPTEN)
add_subdirectory(test)
endif()
endif()
2 changes: 1 addition & 1 deletion docs/050-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ 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>`_.
`the release changelog <https://github.com/argotorg/solidity/releases/tag/v0.5.0>`_.

.. note::
Contracts compiled with Solidity v0.5.0 can still interface with contracts
Expand Down
4 changes: 2 additions & 2 deletions docs/060-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ 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>`_.
`the release changelog <https://github.com/argotorg/solidity/releases/tag/v0.6.0>`_.


Changes the Compiler Might not Warn About
Expand Down Expand Up @@ -119,7 +119,7 @@ Metadata Hash Options

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://ethersphere.github.io/swarm-home/>`_ hash by default, and in order to still support this behavior,
`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.
Expand Down
2 changes: 1 addition & 1 deletion docs/070-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ 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>`_.
`the release changelog <https://github.com/argotorg/solidity/releases/tag/v0.7.0>`_.


Silent Changes of the Semantics
Expand Down
12 changes: 12 additions & 0 deletions docs/080-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,16 @@
Cambios introducidos en Solidity v0.8.0
***************************************

<<<<<<< HEAD
Esta sección versa sobre los principales cambios introducidos en la versión 0.8.0 de Solidity.
Para ver la lista completa
`registro de cambios de lanzamiento <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

Cambios silenciosos en la semántica
===================================
Expand Down Expand Up @@ -160,8 +167,13 @@ Cambios en el interface
* La salida de ``--combined-json`` ha cambiado: Los campos JSON ``abi``, ``devdoc``, ``userdoc`` y
``storage-layout`` ahora son subobjetos. Antes de la versión 0.8.0 se usaban serializados como strings.

<<<<<<< HEAD
* El "legacy AST" ha sido eliminado (``--ast-json`` en el interfaz de linea de comandos ``legacyAST`` para el
standard JSON). Use "compact AST" (``--ast-compact--json`` para ``AST``) en su lugar.
=======
* The "legacy AST" has been removed (``--ast-json`` on the commandline interface and ``legacyAST`` for standard JSON).
Use the "compact AST" (``--ast-compact-json`` resp. ``AST``) as replacement.
>>>>>>> english/develop

* El antigüo informador (``--old-reporter``) ha sido eliminado.

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;
}
6 changes: 3 additions & 3 deletions docs/_static/css/custom.css
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ h1 {
}

section:first-of-type h1:first-of-type {
font-family: 'Overpass mono', monospace;
font-family: 'Overpass Mono', monospace;
font-size: 48px;
margin-top: 3rem;
margin-bottom: 5rem;
Expand Down Expand Up @@ -229,7 +229,7 @@ small * {
.wy-side-nav-search {
background-color: transparent !important;
color: var(--color-a) !important;
box-shadow: 0 4 4 0 var(--color-a);
box-shadow: 0 4px 4px 0 var(--color-a);
border-bottom: 1px solid var(--color-d) !important;
}

Expand Down Expand Up @@ -823,4 +823,4 @@ a.skip-to-content:focus {
#content {
scroll-margin-top: 6rem;
scroll-behavior: smooth;
}
}
5 changes: 5 additions & 0 deletions docs/_static/css/toggle.css
Original file line number Diff line number Diff line change
Expand Up @@ -85,4 +85,9 @@ html.transition *:after {

.wy-menu-vertical a:hover {
background-color: #0002;
}

body {
font-weight: 300;
letter-spacing: 0.5px;
}
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
37 changes: 26 additions & 11 deletions docs/_static/js/initialize.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,24 @@ function rearrangeDom() {
document.body.prepend(wrapperDiv);

const rstVersions = document.querySelector(".rst-versions");
rstVersions.remove();
const wyNavSide = document.querySelector("nav.wy-nav-side");
wyNavSide.appendChild(rstVersions);
// NOTE: Since RTD migration to addons, `.rst-versions` is no longer present in the DOM.
// The following code is kept for compatibility with older versions.
// See: https://github.com/readthedocs/readthedocs.org/issues/11474
if (rstVersions && wyNavSide) {
rstVersions.remove();
wyNavSide.appendChild(rstVersions);
}
const backdrop = document.createElement("div");
backdrop.classList.add("backdrop");
wrapperDiv.appendChild(backdrop);

const content = document.querySelector(".wy-nav-content");
content.id = "content";
const oldWrap = document.querySelector("section.wy-nav-content-wrap");
oldWrap.remove();
document.querySelector(".wy-grid-for-nav").appendChild(content);
if (content) {
content.id = "content";
document.querySelector("section.wy-nav-content-wrap")?.remove();
document.querySelector(".wy-grid-for-nav")?.appendChild(content);
}
}

function buildHeader() {
Expand Down Expand Up @@ -144,8 +150,15 @@ const updateActiveNavLink = () => {
document.addEventListener("locationchange", updateActiveNavLink);

function updateGitHubEditPath() {
// Replaces the version number in the GitHub edit path with "develop"
// Replaces the version number in the GitHub edit path with "develop" if it exists.
// This is to ensure that the edit path always points to the `develop` branch instead of the specific version branch.
// Note that it will fail silently if the anchor element is not found, i.e. the page is not editable or
// if the sphinx_rtd_theme is updated to a version that changes the anchor element.
// See: https://github.com/readthedocs/sphinx_rtd_theme/blob/a1c2147b17cbf0e57b7d7a6450ad4d9a5ff362cf/sphinx_rtd_theme/breadcrumbs.html#L35
// TODO: We should consider a more robust way to handle this in the future.
const gitHubEditAnchor = document.querySelector(".wy-breadcrumbs-aside > a");
if (!gitHubEditAnchor) return;

const url = new URL(gitHubEditAnchor.href);
const split = url.pathname.split("/");
const versionIndex = split.indexOf("blob") + 1;
Expand Down Expand Up @@ -195,10 +208,12 @@ function initialize() {
.querySelector(":root")
.setAttribute("style", `--color-scheme: ${mode}`);

// NOTE: Since RTD migration to addons, the elements below are no longer present in the DOM.
// The following code is kept for compatibility with older versions.
// Remove old input and RTD logo anchor element
document.querySelector("input[name=mode]").remove();
document.querySelector("label[for=switch]").remove();
document.querySelector(".wy-side-nav-search > a").remove();
document.querySelector("input[name=mode]")?.remove();
document.querySelector("label[for=switch]")?.remove();
document.querySelector(".wy-side-nav-search > a")?.remove();

// Add footer note
addFooterNote();
Expand Down Expand Up @@ -239,7 +254,7 @@ document.addEventListener("click", handleClick);

const handleKeyDown = (e) => {
if (e.metaKey && e.key === "k") {
document.querySelector("#rtd-search-form input").focus();
document.querySelector("#rtd-search-form input")?.focus();
} else if (e.key === "Escape") {
toggleMenu({ force: false });
}
Expand Down
Loading