Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1803 commits
Select commit Hold shift + click to select a range
439ae46
Build the source tarball in CI
cameel Oct 16, 2025
142aa62
Merge pull request #16256 from argotorg/build-source-tarball-in-ci
cameel Oct 16, 2025
d74f97b
Bump emscripten docker image
r0qs Oct 16, 2025
34754a5
Merge pull request #16258 from argotorg/bump-emscripten
r0qs Oct 20, 2025
8615ed7
Migrate from dockerhub to ghcr.io
r0qs Oct 15, 2025
93871f5
Change docker registry on CI
r0qs Oct 16, 2025
10c8749
Update the Docker registry in the Solidity documentation
r0qs Oct 20, 2025
2086874
EVM instruction interpreter: record linker symbols
clonker Oct 22, 2025
6156813
Merge pull request #16267 from argotorg/record_linker_symbols
clonker Oct 22, 2025
343373b
Make disjoint set datastructure templatized over value type
clonker Oct 20, 2025
1ea88b8
SSACFG: Use tagged union for ValueId
clonker Oct 20, 2025
d5d29bd
SSACFG: exporting to json is stateless
clonker Oct 20, 2025
e403242
Merge pull request #16265 from argotorg/optimize_ssacfg_building
clonker Oct 22, 2025
0344851
Merge pull request #16257 from argotorg/migrate-to-ghcr
r0qs Oct 22, 2025
74ea280
Update smtchecker.rst: fix int128 range is from -2^127 to 2^127-1, wa…
ParKing666 Oct 27, 2025
b5de13a
CI: add arm image to buildpack deps, make runs-on explicit
clonker Oct 24, 2025
b0b8857
CI: add arm image
clonker Oct 24, 2025
8cb16a1
Merge pull request #16268 from argotorg/add_arm_image
clonker Oct 27, 2025
43ecb69
ci: build linux arm static binaries
clonker Oct 24, 2025
be37565
Enable Linux arm64 binaries for testing and releases.
clonker Oct 27, 2025
5e722e7
Merge pull request #16271 from argotorg/add_arm_binaries
clonker Oct 28, 2025
45fdbcc
Fix: max int8 has 7 bits set to 1, not 8 bits
ParKing666 Oct 26, 2025
ee72983
Merge pull request #16269 from ParKing666/patch-2
clonker Oct 31, 2025
a5eb24d
Merge pull request #16270 from ParKing666/patch-3
clonker Oct 31, 2025
2129c0d
docs: fix links to solc-bin github page and remix offline installation
clonker Nov 1, 2025
9d2a907
Update isolate_tests.py
Doryu001 Nov 2, 2025
1dcc864
Merge pull request #16276 from Doryu001/patch-2
clonker Nov 2, 2025
dff13e3
SSACFG backend: add stack abstraction
clonker Oct 31, 2025
19ecacf
Merge pull request #16275 from argotorg/fix_docs_links
matheusaaguiar Nov 3, 2025
a048ccf
Merge pull request #16273 from argotorg/ssacfg_stack
clonker Nov 4, 2025
b65295c
Update parse_eth_gas_report.py
Doryu001 Nov 4, 2025
08c4e0c
Merge pull request #16278 from Doryu001/patch-4
clonker Nov 5, 2025
bb30135
Bump ext-uniswap node to large
nikola-matic Dec 1, 2025
f7b4626
Merge pull request #16317 from argotorg/bump-ext-uniswap-node-to-large
nikola-matic Dec 1, 2025
cd1f865
Set osaka as default EVM version
matheusaaguiar Nov 21, 2025
25ec75c
Set blockGasLimit to 2^24 for external tests
nikola-matic Dec 2, 2025
5fc0f34
Disable RSA suite in OZ-contracts
nikola-matic Dec 2, 2025
f5f5ded
Merge pull request #16296 from argotorg/set-osaka-default
matheusaaguiar Dec 2, 2025
b1acbf7
Discontinue support for Ubuntu PPAs
cameel Oct 10, 2025
9cda966
Docs: Remove outdated paragraph about installing a solver being requi…
cameel Dec 2, 2025
e4e515c
Docs: Deprecation note for SMTChecker pragma
cameel Dec 2, 2025
5ef96c9
Merge pull request #16319 from argotorg/discontinue-ubuntu-ppas
cameel Dec 2, 2025
f4173b2
Emit deprecation warnings for abi coder v1, contract comparisons, mem…
matheusaaguiar Aug 18, 2025
dbeb876
Update docs
matheusaaguiar Sep 2, 2025
b60f110
zeppelin ext test workaround
matheusaaguiar Aug 22, 2025
ac77d12
Merge pull request #16174 from argotorg/deprecation_warnings
cameel Dec 2, 2025
809c719
Exclude docs of dependencies from the source tarball
cameel Oct 16, 2025
bdc1116
Merge pull request #16261 from argotorg/exclude-docs-from-source-tarball
cameel Dec 3, 2025
1108385
ReleaseChecklist: Update the requirements for docker releases
cameel Dec 3, 2025
032d0bf
ReleaseChecklist: Remove checkboxes from requirements
cameel Dec 3, 2025
f99c724
Merge pull request #16320 from argotorg/release-checklist-update-dock…
cameel Dec 3, 2025
28ca8e6
Update and add tests
matheusaaguiar Mar 15, 2025
6300a44
Allow constants in custom storage layout expression
matheusaaguiar Mar 15, 2025
e989ac1
Merge pull request #15944 from argotorg/allowConstantsCustomStorageLa…
cameel Dec 3, 2025
67abe75
sort changelog v.0.8.31
matheusaaguiar Dec 3, 2025
fd3a226
Merge pull request #16323 from argotorg/sort-changelog
nikola-matic Dec 3, 2025
886bf48
Set version to 0.8.32
matheusaaguiar Dec 2, 2025
41c3bd8
Merge pull request #16324 from argotorg/set-version-0.8.32
nikola-matic Dec 3, 2025
b7ce492
Move changelog entries to correct section
matheusaaguiar Dec 3, 2025
3cd817c
Merge pull request #16327 from argotorg/fix-changelog
matheusaaguiar Dec 3, 2025
ec00d77
Update release checklist with docker login info
r0qs Dec 3, 2025
62b2ae0
Merge pull request #16326 from argotorg/update-release-checklist
nikola-matic Dec 4, 2025
7b39f83
Copy libevmone to Linux ARM machine
matheusaaguiar Dec 4, 2025
11150f6
Merge pull request #16328 from argotorg/copy-evmone-linux-arm
matheusaaguiar Dec 4, 2025
6ac7d73
Disable partial clone and fetch all objects on alpine
r0qs Dec 4, 2025
37653a0
SMTChecker: Use Eldarica in more tests
blishko Dec 5, 2025
ca26dec
Merge pull request #16330 from argotorg/smt-use-eldarica-more
nikola-matic Dec 5, 2025
2f5d103
Merge pull request #16331 from argotorg/git-alpine-file-protocol
r0qs Dec 5, 2025
bdf3c50
Update fmtlib to 12.1.0
matheusaaguiar Dec 5, 2025
e0773b9
run soltest and cli tests on arm
matheusaaguiar Dec 3, 2025
9763e9f
Use new Linux ARM image
matheusaaguiar Dec 4, 2025
82c8ca1
Merge pull request #16322 from argotorg/run-tests-on-linux-arm
cameel Dec 8, 2025
0f6d9db
Merge pull request #16332 from argotorg/update-fmtlib-12.1.0
matheusaaguiar Dec 9, 2025
8d56363
Update nlohmann-json to v3.12.0
matheusaaguiar Dec 6, 2025
786b740
Merge pull request #16333 from argotorg/update-nlohmann-json-v3.12.0
cameel Dec 9, 2025
37ce297
contributing.rst: Add a link to the public call agenda
cameel Dec 10, 2025
c8ccc6c
Merge pull request #16342 from argotorg/docs-team-call-agenda
cameel Dec 10, 2025
51e9135
Fix constantness of event and error selectors. Reported by https://gi…
rodiazet Dec 3, 2025
4ec10c9
Add the changelog entry.
rodiazet Dec 8, 2025
aca05d4
Merge pull request #16343 from argotorg/fix-error-event-selectors-con…
cameel Dec 11, 2025
befaeda
Always update stale gas expectations, even if below threshold
cameel Dec 15, 2025
16ab579
Update stale gas expectations that dropped below the default 100k thr…
cameel Dec 15, 2025
3cda75a
Merge pull request #16348 from argotorg/soltest-always-enforce-explic…
r0qs Dec 16, 2025
da092b5
Move constantinople and petersburg runs to nightly
marcocastignoli Dec 16, 2025
5d24b0f
Merge pull request #16350 from argotorg/move-constantinople-petersbur…
r0qs Dec 17, 2025
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
1199654
English documentation updates up to v0.8.34-31-g61baed53a (2026-03-09)
soldocsbot Mar 9, 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
126 changes: 59 additions & 67 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,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 +34,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 +95,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 +130,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;
}
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
4 changes: 3 additions & 1 deletion docs/abi-spec.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ as described in this specification. The encoding is not self describing and thus
We assume that the interface functions of a contract are strongly typed, known at compilation time and static.
We assume that all contracts will have the interface definitions of any contracts they call available at compile-time.

This specification does not address contracts whose interface is dynamic or otherwise known only at run-time.
This specification does not address contracts whose interface is dynamic or otherwise known only at run-time. Also, the ABI specification for libraries is :ref:`slightly different <library-selectors>`.

.. _abi_function_selector:
.. index:: ! selector; of a function
Expand Down Expand Up @@ -47,6 +47,8 @@ without the four bytes specifying the function.
Types
=====

Note that the library ABIs can take types different than below e.g. for non-storage structs. See :ref:`library selectors <library-selectors>` for details.

The following elementary types exist:

- ``uint<M>``: unsigned integer type of ``M`` bits, ``0 < M <= 256``, ``M % 8 == 0``. e.g. ``uint32``, ``uint8``, ``uint256``.
Expand Down
Loading