Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1609 commits
Select commit Hold shift + click to select a range
c84cac8
release checklist: mention buildx as requirement for docker_deploy_ma…
clonker Mar 12, 2025
bf51113
Merge pull request #15930 from ethereum/mention-buildx-dep-in-release…
clonker Mar 14, 2025
f0fbb28
Merge pull request #15931 from ethereum/bump-fmtlib
clonker Mar 14, 2025
40a4d5d
Minor spelling fix in external test runners base.py
vipocenka Mar 14, 2025
d547bf2
Release checklist: Updates style
clonker Mar 14, 2025
70d344a
Remove double backticks from CODING_STYLE.md
cameel Mar 14, 2025
c8893ec
Merge pull request #15939 from ethereum/release_checklist_remove_doub…
cameel Mar 14, 2025
145e281
Name dependent CSE bug: Compare ASM only
clonker Mar 12, 2025
a652292
Merge pull request #15942 from ethereum/name_dependent_cse_bug_only_asm
cameel Mar 15, 2025
74cd757
SSACFG Builder: Improve function call visitor
clonker Mar 17, 2025
9620f4f
Merge pull request #15950 from ethereum/ssacfg_builder_improve_functi…
clonker Mar 18, 2025
25463c5
SMTChecker: Fix analysis for selected contracts
blishko Feb 14, 2025
b53eba3
Merge pull request #15880 from ethereum/smt-fix-contract-selection
blishko Mar 19, 2025
f2c9eec
Yul Disambiguator: Don't check for builtins when translating identifiers
clonker Mar 17, 2025
ad281dd
Merge pull request #15951 from ethereum/disambiguator_dont_check_for_…
clonker Mar 20, 2025
8f38f23
Peephole optimiser: Replace apply methods recursion by folding expres…
clonker Mar 19, 2025
098b854
IRGeneratorForStatements does not check for builtin when mangling use…
clonker Mar 17, 2025
4a93b2a
Merge pull request #15952 from ethereum/remove_builtin_check_from_inl…
clonker Mar 21, 2025
28982f1
Merge pull request #15957 from ethereum/make-peephole-opt-more-opt-fr…
nikola-matic Mar 21, 2025
08c9f53
AssemblyItem gets an optional instruction and the null-state is prope…
clonker Mar 12, 2025
2536b14
Merge pull request #15934 from ethereum/default-initialize-instructio…
clonker Mar 21, 2025
dd03613
SMTChecker: Fix string literal to fixed bytes conversion with user-de…
blishko Mar 20, 2025
d07c219
Merge pull request #15963 from ethereum/smt-fix-string-to-bytes-conve…
blishko Mar 21, 2025
d97d711
Update metadata docs for "libraries" and "compilationSettings" fields
kuzdogan Feb 26, 2025
2e33f25
Update the metdata settings field to refer the rest of the settings t…
kuzdogan Feb 26, 2025
1f044c1
Remove "sorted" in std-json remappings docs
kuzdogan Mar 20, 2025
1ccea41
AsmAnalysis: Stronger use of fmt, refactor function call analysis
clonker Mar 14, 2025
b9cbf1e
AsmAnalysis: Improve wording of invalid argument for eofcreate/return…
clonker Mar 21, 2025
cc58ab1
Merge pull request #15895 from kuzdogan/update-metadata-docs
cameel Mar 21, 2025
e134620
Merge pull request #15941 from ethereum/asm_analysis_fmt
clonker Mar 21, 2025
d1cbd8d
interpreter uses yul AST instead of separate block and dialect
clonker Mar 17, 2025
8859625
yulrun on AST
clonker Mar 17, 2025
dafe006
ossfuzz uses yul AST instead of separate block and dialect
clonker Mar 17, 2025
6326b86
Merge pull request #15954 from ethereum/ossfuzz_use_ast_over_block
clonker Mar 22, 2025
77878e5
add repeats to external.sh
clonker Mar 14, 2025
14fcd5d
Merge pull request #15965 from ethereum/repeats_for_external_benchmarks
nikola-matic Mar 26, 2025
2ebafd3
fix: Remove unnecessary Expression temporary in CHCSmtLib2Interface
VolodymyrBg Mar 25, 2025
a04f946
Merge pull request #15967 from VolodymyrBg/vbg
cameel Mar 27, 2025
a448921
SMTChecker: Move helper function towards its only usage
blishko Mar 28, 2025
5ea8f25
Add support for enum values in NatSpec
nikola-matic Mar 19, 2025
c4b454a
Docs
nikola-matic Apr 2, 2025
c608428
SMTChecker: Refactor processing invariants from the solver
blishko Mar 28, 2025
7a4ddb2
Merge pull request #15972 from ethereum/smt-refactor
blishko Apr 3, 2025
949a52f
Merge pull request #15956 from ethereum/make-enums-available-in-natspec
nikola-matic Apr 4, 2025
dbd5521
remove install of obsolete jsoncpp
clonker Apr 4, 2025
f323bd4
cmake: use boost include dirs and version in status message
clonker Apr 4, 2025
e6d5699
set CMP0167 to OLD behavior for boost versions < 1.70
clonker Apr 4, 2025
4c23d04
Disable pedantic compilation for CMake 4.0.0 and AppleClang 15.0
clonker Apr 7, 2025
6da61ca
Merge pull request #15982 from ethereum/fix_macos_build
clonker Apr 8, 2025
2cd97dc
Use pre-release version of sphinx-a4doc for python 3.13
clonker Apr 8, 2025
0a6cce5
relax sphinx version range to [2.1, 9)
clonker Apr 8, 2025
971ac4c
require rtd theme < 3.0.0
clonker Apr 8, 2025
55506a9
Merge pull request #15987 from ethereum/fix_docs
clonker Apr 8, 2025
502ebaa
Add support for upcoming Boost 1.88.0
cho-m Mar 31, 2025
334b768
Remove Z3 from ppa scripts and add ubunutu plucky.
ekpyron Mar 12, 2025
38810a3
Adjust release checklist.
ekpyron Apr 8, 2025
fd2d543
Also drop libcvc4-dev and smtdependencies generally.
ekpyron Apr 8, 2025
4f23c18
Merge pull request #15976 from cho-m/support-boost-1.88.0
nikola-matic Apr 8, 2025
e13c612
Language Server: Fix hover crashes on invalid parameters
henryhchchc Apr 4, 2025
1cd7045
Remove disable pedantic mode switch for osx cmake 4.0.0 and clang 15.0.0
clonker Apr 14, 2025
09715e6
osx ci: Install Boost to /opt/boost instead of /usr/local
clonker Apr 14, 2025
e1bf062
Merge pull request #16005 from ethereum/soften_macos_pedantic_switch
clonker Apr 14, 2025
f1c3a2d
chore: remove redundant word in comment
closeobserve Apr 13, 2025
597e5a9
Merge pull request #16004 from closeobserve/closeobserve_feature
nikola-matic Apr 14, 2025
08310eb
Merge pull request #15980 from henryhchchc/develop
nikola-matic Apr 14, 2025
1706158
Update premium.sol
futreall Mar 25, 2025
a1be4f3
Update publisher.sol
futreall Mar 25, 2025
cc6a9cf
Merge pull request #15966 from futreall/develop
nikola-matic Apr 14, 2025
db53ca5
Merge pull request #15932 from ethereum/releasePPAScript
clonker Apr 15, 2025
513535a
Adding clarity on extcalls with precompiled contracts.
mattaereal Mar 8, 2024
8b85d14
Update custom.css
Bilogweb3 Feb 26, 2025
eda68d5
Update events.rst
PixelPil0t1 Mar 11, 2025
feed69b
Update calling_nonexisting_contract.sol
argentpapa Feb 27, 2025
ba3fd65
docs: Fix grammar in workflow trigger condition
voronor Feb 4, 2025
27f915c
Merge pull request #14931 from mattaereal/develop
matheusaaguiar Apr 16, 2025
ab77b34
Update ControlFlowGraphBuilder.h
eeemmmmmm Feb 26, 2025
7fee102
Merge pull request #15891 from Bilogweb3/develop
matheusaaguiar Apr 16, 2025
10b21b8
Replace temporary std::string with std::string_view in _yulname liter…
Feb 28, 2025
da51fe4
Merge pull request #15924 from PixelPil0t1/patch-1
matheusaaguiar Apr 16, 2025
0c28f4a
Merge pull request #15897 from argentpapa/develop
matheusaaguiar Apr 16, 2025
f5134df
Merge pull request #15827 from voronor/patch-2
matheusaaguiar Apr 16, 2025
771d805
Fix typo in test script comments
NeoByteXx Feb 22, 2025
687ad65
Merge pull request #15890 from eeemmmmmm/patch-2
matheusaaguiar Apr 16, 2025
7d1dfa3
Merge pull request #15904 from Ferran969/improve-yulname-literal
matheusaaguiar Apr 16, 2025
0881d62
Merge pull request #15885 from NeoByteXx/develop
matheusaaguiar Apr 16, 2025
d22a070
fix minor issues
sky-coderay Mar 14, 2025
8cf3305
Merge pull request #15940 from sky-coderay/develop
matheusaaguiar Apr 17, 2025
a7ac67c
fix duplicate EVMHost.cpp
zeroprooff Apr 17, 2025
02d2c9a
change into test dir for cmdline tests
clonker Apr 9, 2025
2fa170e
update test expectations with cwd being in test dir
clonker Apr 10, 2025
2ab62d7
Merge pull request #15996 from ethereum/cmdlineTests_go_to_test_dir
clonker Apr 22, 2025
880b61b
SMTChecker: Refactor handling of ConstantCondition verification target
blishko Feb 13, 2025
d9083dc
SMTChecker: Loop conditions should be analyzed as in loop context in BMC
blishko Mar 21, 2025
8caf354
Merge pull request #15862 from ethereum/smt-fix-loops-in-bmc
blishko Apr 23, 2025
b1a9031
SMTChecker: Clean up includes
blishko Mar 29, 2025
629bb28
SMTChecker: Remove unused functionality
blishko Mar 29, 2025
7526fbc
Merge pull request #16019 from ethereum/smt-more-refactoring
blishko Apr 23, 2025
ae3da8c
docs: fixed a mismatch in the name of the function referenced in the …
ryabykhms Oct 2, 2024
5baa791
Merge pull request #15473 from ryabykhms/docs-example-issue
matheusaaguiar Apr 23, 2025
fe74111
EVMAssemblyStack: Add extra accessors that do not require contract name
cameel Apr 16, 2025
dd01ddd
TestCaseReader: Expose fileName()
cameel Mar 14, 2025
d3238c0
Add a transparent comparator to c_instructions to allow string_view l…
cameel Apr 19, 2025
266c7d4
EVM assembly test case with JSON input
cameel Mar 14, 2025
fe39551
Support human-readable assembly in EVM assembly test case
cameel Apr 18, 2025
6d62ea0
Merge pull request #16012 from ethereum/evmasm-test-case
cameel Apr 23, 2025
975ee13
eof: Enable peephole optimizer for EOF.
rodiazet Apr 9, 2025
03fde2a
eof: Add peephole optimiser tests for EOF specific optimisations
rodiazet Apr 23, 2025
4c4860b
Merge pull request #15991 from ipsilon/enable-peephole-optimiser
cameel Apr 24, 2025
649c8ee
Update SMTPortfolio.cpp
gap-editor Apr 26, 2025
76e8016
Update SMTPortfolio.cpp
gap-editor Apr 28, 2025
b136829
Merge pull request #16025 from gap-editor/1
blishko Apr 28, 2025
cc78330
Update Types.cpp
lechpzn May 4, 2025
09fc1d4
PlainAssemblyParser: Store the stream globally in the class
cameel Apr 25, 2025
73af652
PlainAssemblyParser: Syntax for subassemblies
cameel Apr 25, 2025
202933b
PlainAssemblyParser: Support pushing assembly sizes and offsets
cameel Apr 25, 2025
d77affb
Merge pull request #16021 from ethereum/subassemblies-in-evm-assembly…
cameel May 6, 2025
78107e3
Assembly item asserts that it's not implicity constructed by instruct…
clonker Apr 27, 2025
d0bae61
Merge pull request #16026 from ethereum/assert_swapn_dupn_in_assembly…
clonker May 6, 2025
49c2e55
Set prague as EVM default version
matheusaaguiar Apr 28, 2025
ca699f9
bump hardhat version
matheusaaguiar May 6, 2025
24d534f
Increase resource for uniswap ext test
matheusaaguiar May 6, 2025
13d734f
Workaround for openzepellin ext test
matheusaaguiar May 6, 2025
b53d23a
Merge pull request #16030 from ethereum/makePragueDefaultEVMVersion
matheusaaguiar May 7, 2025
1e6842c
Fix broken docs links
nikola-matic May 7, 2025
3bd783d
Merge pull request #16033 from ethereum/fix-docs-links
nikola-matic May 7, 2025
1c8d401
Set changelog release date
nikola-matic May 7, 2025
73712a0
Merge pull request #16035 from ethereum/set-release-date-for-0-8-30
nikola-matic May 7, 2025
e313827
Set version to 0.8.31
nikola-matic May 7, 2025
9f2ca6c
Merge pull request #16037 from ethereum/set-version-to-0-8-31
nikola-matic May 7, 2025
895eb45
Add literal assignment to SSACFG
clonker May 9, 2025
d790750
Add option to keep literal assignments in SSACFG builder
clonker May 9, 2025
47f859b
Merge pull request #16041 from ethereum/ssacfg_treat_literals_as_vari…
clonker May 12, 2025
fe890f4
update docs: fix the position of flyout menu
fanhefeng Apr 28, 2025
9396227
Merge pull request #16029 from fanhefeng/patch-fixed_docs
clonker May 13, 2025
e0daa3c
assign zero value to not explicitly initialized variables during ssa …
clonker May 13, 2025
f5d5488
Merge pull request #16044 from ethereum/fix_ssacfg_literal_handling
clonker May 13, 2025
27c16d0
update fmtlib to 11.2.0
clonker May 14, 2025
19db669
Merge pull request #16048 from ethereum/update_fmtlib
clonker May 14, 2025
287b66a
Add instruction location info to eof assembly
clonker Apr 9, 2025
a5e20d2
Refactor legacy assemble to also use RAII instruction location constr…
clonker Apr 10, 2025
b8e81b9
Merge pull request #16052 from ethereum/eof_source_locations_unoptimi…
clonker May 15, 2025
6ae63c2
Mention that dots are still allowed in variables/function names in yu…
matheusaaguiar May 14, 2025
660b918
Merge pull request #16051 from ethereum/amendInlineAssemblyDocs
matheusaaguiar May 19, 2025
54979c1
Add nullptr checking for rename logging
henryhchchc May 20, 2025
d6a396e
Merge pull request #16059 from henryhchchc/develop
clonker May 21, 2025
446610b
Replace Reference StandardCompiler.cpp
dizer-ti May 22, 2025
aa4ec3e
Merge pull request #16032 from lechpzn/develop
matheusaaguiar May 29, 2025
e96a237
Yul: add label id dispenser
clonker Feb 7, 2025
a43f598
Merge pull request #15838 from ethereum/add_node_id_dispenser
clonker May 30, 2025
30caf71
Remove deprecated whitespace in literal operator declaration
r0qs Jun 1, 2025
7c816bf
Merge pull request #16062 from dizer-ti/develop
matheusaaguiar Jun 2, 2025
fe1a690
Rename emitted
vtjl10 May 13, 2025
c5fc3dd
Update TestFileParserTests.cpp
zeevick10 May 7, 2025
2b1a9e5
Update protoToAbiV2.cpp
zeevick10 May 7, 2025
5c3c957
Merge pull request #16073 from ethereum/remove-whitespace-literal-ope…
r0qs Jun 2, 2025
403b548
Fix shellcheck script
nikola-matic Jun 4, 2025
c294948
Merge pull request #16045 from vtjl10/develop
matheusaaguiar Jun 4, 2025
472449c
Merge pull request #16034 from zeevick10/develop
matheusaaguiar Jun 4, 2025
7bbdd9a
Merge pull request #16075 from ethereum/fix-shellcheck-script
nikola-matic Jun 4, 2025
bcddfb4
fix typo in file's name
otc-png Jun 4, 2025
725f8f7
replace 404 reference Natspec.cpp
davidjsonn Jun 5, 2025
2329440
Merge pull request #16076 from otc-png/develop
matheusaaguiar Jun 6, 2025
8125657
Merge pull request #16078 from davidjsonn/develop
matheusaaguiar Jun 6, 2025
1cd062a
Merge pull request #16010 from zeroprooff/develop
matheusaaguiar Jun 6, 2025
7b01123
fix typo in comment
kks-code Jun 6, 2025
d75bd39
Ethdebug requires assembly instance
clonker Apr 12, 2025
43b0f06
Ethdebug instructions output over multiple code sections
clonker Apr 8, 2025
4ea1d47
Add ethdebug schema
clonker Apr 11, 2025
3b924e6
Ethdebug uses schema for serialization
clonker Apr 9, 2025
89a0f91
Update test expectations with eof-enabled ethdebug
clonker Apr 9, 2025
482f64b
Test ethdebug output when requested in standard json under EOF
clonker Apr 11, 2025
059bd8e
Add tests for ethdebug output on abstract contracts and interfaces
clonker May 6, 2025
dd25b24
Changelog uses single blank line between headlines
clonker May 15, 2025
1401089
Export literal assignments as operation
r0qs Jun 5, 2025
929c65b
Merge pull request #16079 from kks-code/develop
r0qs Jun 11, 2025
f1af146
Merge pull request #16082 from ethereum/yul-cfg-assignment-op
r0qs Jun 11, 2025
a9df00c
Merge pull request #15994 from ethereum/eof_source_locations_unoptimized
clonker Jun 11, 2025
41eb541
Compare ethdebug output to program schema
clonker Apr 16, 2025
f83ad82
Merge pull request #16009 from ethereum/ethdebug_test_schema
clonker Jun 11, 2025
b04a46b
Fix broken HackMD link in release checklist (#16080)
MamunC0der Jun 11, 2025
637a8a1
Fix b_osx homebrew issue
nikola-matic Jun 16, 2025
ce09289
Merge pull request #16092 from ethereum/circle-ci-mac-brew-fix
nikola-matic Jun 18, 2025
48d1c9f
Rename dev_return_desc_multiple_unamed_mixed.sol to dev_return_desc_m…
kilavvy Jun 17, 2025
e6d1fea
Rename dev_return_desc_multiple_unamed_mixed_2.sol to dev_return_desc…
kilavvy Jun 17, 2025
9a4100a
Rename dev_return_desc_multiple_unamed.sol to dev_return_desc_multipl…
kilavvy Jun 17, 2025
52864f6
Merge pull request #16089 from kilavvy/develop
nikola-matic Jun 18, 2025
67288d6
Correct the regex calls
emmanuel-ferdman May 21, 2025
584cdcc
Merge pull request #16060 from emmanuel-ferdman/develop
nikola-matic Jun 18, 2025
fbd9d1a
ci: add "--break-system-packages" to pip install
clonker Jul 3, 2025
0917604
Merge pull request #16105 from ethereum/fix_pip_usage_in_ci
clonker Jul 3, 2025
aa1dae1
external tests: pin gnosis to v1.4.1
clonker Jul 10, 2025
82b4b5d
Merge pull request #16110 from ethereum/fix_ci
nikola-matic Jul 10, 2025
4efb2b3
Replace string comparison with empty() method in DocStringParser
eeemmmmmm Jul 2, 2025
a81065a
Replace string comparison with empty() method in Parser
eeemmmmmm Jul 2, 2025
d0f6e0b
Merge pull request #16103 from eeemmmmmm/develop
clonker Jul 10, 2025
66541b9
yulrun: Move dialect check of parse step after analyze
clonker Jul 11, 2025
406bdfb
Merge pull request #16112 from ethereum/yulrun_assert_dialect_after_a…
clonker Jul 11, 2025
53df4b7
Add EVMVersion::current() helper
clonker Apr 25, 2025
70592af
First define _all_ EVM functions, then declare them based on EVM vers…
clonker Mar 20, 2025
9007889
Separate out builtin function collection into its own class
clonker Apr 28, 2025
e465a31
Add allEOFVersions to EVMVersion
clonker Apr 28, 2025
e39aaeb
EVMVersion::allVersions is constexpr
clonker Apr 28, 2025
55e29b6
EVMDialect: add test that enforces builtin handle compatibility
clonker Mar 20, 2025
1d21bb4
Merge pull request #15961 from ethereum/safeguard_builtin_handles
clonker Jul 20, 2025
35282a8
CI: Update cimg/node to 20.19 for gp2 and pool together
clonker Jul 21, 2025
7d68e44
Merge pull request #16128 from ethereum/update_node_for_ext_tests
clonker Jul 21, 2025
fde1aaf
Yul: NoOutputAssembly assigns functions instead of appending
clonker Jul 21, 2025
240492d
Merge pull request #16127 from ethereum/fix_no_output_dialect_asan
clonker Jul 21, 2025
2593de8
Fix solidity public calls url
r0qs Jul 22, 2025
f7058d8
Merge pull request #16130 from ethereum/fix-solidity-meeting-url
r0qs Jul 22, 2025
bf6548b
Add tests with non-zero PUSH #[$] asm instructions
clonker Mar 18, 2025
57f39fa
Make subassembly IDs based on fixed-size 64 bit uint
clonker Mar 18, 2025
f6b95db
Add test with non-zero PUSH #[$] to solc-js tests
clonker Mar 19, 2025
459ad24
Merge pull request #15955 from ethereum/fix_asm_subpath_obj_id
clonker Jul 24, 2025
683ad06
Fix typo in fitsPrecisionBase2 function comment
MozirDmitriy Jul 28, 2025
6260712
Merge pull request #16137 from MozirDmitriy/mzd
cameel Jul 28, 2025
84dd707
ssa cfg builder: treat constant conditions in jumpi explicitly
clonker Jul 30, 2025
140fdbd
ssa cfg builder: treat constant switches explicitly
clonker Jul 30, 2025
aef512f
Merge pull request #16140 from ethereum/ssacfg_consteval_if_switch
clonker Jul 31, 2025
3d4a3c8
docs: fix unnecessary `uint160(bytes20(b))` casting
pcaversaccio Jul 24, 2025
ab68eaf
fix typos in comments
GarmashAlex May 13, 2025
9ef0a7d
Merge pull request #16132 from pcaversaccio/docs/fix-type-casting-to-…
cameel Aug 5, 2025
5dba5c5
Replace "External accounts" with "Externally-owned accounts" for accu…
codersjj Jan 25, 2025
05bad5e
Merge pull request #16046 from GarmashAlex/hpp2
matheusaaguiar Aug 5, 2025
55f55d3
Merge pull request #15774 from codersjj/patch-3
matheusaaguiar Aug 5, 2025
ce366e7
Fix external ENS test
nikola-matic Aug 5, 2025
2c5a4d5
Merge pull request #16148 from ethereum/fix-external-ens-node-bump
clonker Aug 5, 2025
37d4a72
chore(scripts): improve readability of regressions.py and splitSource…
Pronoss Mar 20, 2025
53b9c89
Merge pull request #15959 from Pronoss/fix/update
clonker Aug 7, 2025
d578b6b
Fix comparison operator of CHCVerificationTarget
radik878 Aug 5, 2025
c78de76
SSA-CFG: Tiny code simplifications
blishko Aug 11, 2025
dbabcd0
Merge pull request #16147 from radik878/opinashnev
blishko Aug 11, 2025
635fe8f
Merge pull request #16159 from ethereum/SSA-CFG-simpl
blishko Aug 11, 2025
47e0335
feat: added updraft glossary for solidity and smart contract terms
PatrickAlphaC Jun 9, 2025
d8293de
Merge pull request #16081 from PatrickAlphaC/feat/updraft-addition
clonker Aug 14, 2025
68364ab
refactor(formal): remove unused clear()/solver()
phrwlk Aug 14, 2025
c79f2cc
Merge pull request #16164 from phrwlk/fix/formal-encoding-context-cle…
blishko Aug 14, 2025
116735f
Yul expression simplifier: Don't substitute out of scope variables
clonker Aug 8, 2025
0e8d07d
Merge pull request #16161 from ethereum/fix_invalid_yul_from_expressi…
clonker Aug 18, 2025
7e48f20
Pin hardhat to last 2.x.x version
nikola-matic Aug 18, 2025
118c1d9
Merge pull request #16175 from ethereum/pin-hardhat-to-latest-pre-3-v…
nikola-matic Aug 19, 2025
539416a
Bump node image to lts for pool together and gp2
nikola-matic Aug 14, 2025
6dfcf35
Merge pull request #16169 from ethereum/upgrade-node-image-in-externa…
nikola-matic Aug 19, 2025
db18d42
Fix build with Boost 1.89.0
cho-m Aug 12, 2025
a7e1bac
Merge pull request #16163 from cho-m/boost-1.89.0
clonker Aug 19, 2025
a6a6081
update to boost 1.70.0 for non-windows builds
clonker Aug 15, 2025
6b7413c
fix: correct fromHex function documentation
Fibonacci747 Aug 25, 2025
29bba31
Merge pull request #16180 from Fibonacci747/fix/documentation-fromhex…
clonker Aug 25, 2025
6d322f1
Merge pull request #16176 from ethereum/update_boost_1_70
clonker Aug 26, 2025
7106c98
English documentation updates up to v0.8.30-124-g6d322f111 (2025-08-27)
soldocsbot Aug 27, 2025
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
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.24")
set(PROJECT_VERSION "0.8.31")
# 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()
5 changes: 5 additions & 0 deletions docs/080-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,13 @@ Solidity v0.8.0 重大变化
* ``--combined-json`` 的输出已经改变。JSON字段 ``abi``, ``devdoc``, ``userdoc`` 和
``storage-layout`` 现在是子对象。在0.8.0之前,它们曾被序列化为字符串。

<<<<<<< HEAD
* “传统AST“ 已被删除( ``--ast-json`` 在命令行界面, ``legacyAST`` 用于标准JSON)。
使用 “紧凑型AST”( ``--ast-compact-json`` 参数. ``AST``)作为替代。
=======
* 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

* 旧的错误报告器( ``--old-reporter`` )已经被删除。

Expand Down
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;
}
10 changes: 10 additions & 0 deletions docs/abi-spec.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,11 @@
我们假设合约的接口函数是强类型的,在编译时就知道,并且是静态的。
我们假设所有合约在编译时都有它们所调用的任何合约的接口定义。

<<<<<<< HEAD
本规范不涉及其接口是动态的或其他只有在运行时才知道的合约。
=======
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>`.
>>>>>>> english/develop

.. _abi_function_selector:
.. index:: ! selector; of a function
Expand Down Expand Up @@ -44,7 +48,13 @@
类型
=====

<<<<<<< HEAD
以下是基础类型:
=======
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:
>>>>>>> english/develop

- ``uint<M>``: ``M`` 位的无符号整数, ``0 < M <= 256``, ``M % 8 == 0``。例如: ``uint32``, ``uint8``, ``uint256``。

Expand Down
72 changes: 70 additions & 2 deletions docs/assembly.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,15 @@
.. index:: ! assembly, ! asm, ! evmasm


<<<<<<< HEAD
您可以用接近Ethereum虚拟机的语言,将Solidity语句与内联汇编交错使用。
这给了您更精细的控制,这在您通过编写库来增强语言时特别有用。
=======
You can interleave Solidity statements with inline assembly in a language close
to the one of the Ethereum Virtual Machine. This gives you more fine-grained control,
which is especially useful when you are enhancing the language by writing libraries or
optimizing gas usage.
>>>>>>> english/develop

在 Solidity 中用于内联汇编的语言被称为 :ref:`Yul <yul>`,它在自己的章节中被记录。
本节将只涉及内联汇编代码如何在 Solidity 代码内交互。
Expand Down Expand Up @@ -150,6 +157,15 @@
对于动态的calldata数组,您可以使用 ``x.offset`` 和 ``x.length`` 访问它们的calldata偏移量(字节)和长度(元素数)。
这两个表达式也可以被赋值,但是和静态情况一样,不会进行验证以确保产生的数据区域在 ``calldatasize()`` 的范围内。

<<<<<<< HEAD
=======
For local storage variables or state variables (including transient storage) a single Yul identifier
is not sufficient, since they do not necessarily occupy a single full storage slot.
Therefore, their "address" is composed of a slot and a byte-offset
inside that slot. To retrieve the slot pointed to by the variable ``x``, you
use ``x.slot``, and to retrieve the byte-offset you use ``x.offset``.
Using ``x`` itself will result in an error.
>>>>>>> english/develop

对于本地存储变量或状态变量,一个Yul标识符是不够的,因为它们不一定占据一个完整的存储槽。
因此,它们的 "地址" 是由一个槽和槽内的字节偏移量组成。要检索变量 ``x`` 所指向的槽,
Expand All @@ -166,14 +182,17 @@
:force:

// SPDX-License-Identifier: GPL-3.0
pragma solidity >=0.7.0 <0.9.0;
pragma solidity >=0.8.28 <0.9.0;

// This will report a warning
contract C {
bool transient a;
uint b;
function f(uint x) public view returns (uint r) {
function f(uint x) public returns (uint r) {
assembly {
// 我们忽略了存储槽的偏移量,我们知道在这种特殊情况下它是零。
r := mul(x, sload(b.slot))
tstore(a.slot, true)
}
}
}
Expand All @@ -187,11 +206,22 @@
``assembly { signextend(<num_bytes_of_x_minus_one>, x) }``


<<<<<<< HEAD
自Solidity 0.6.0以来,内联汇编变量的名称不能影射内联汇编块范围内可见的任何声明
(包括变量、合约和函数声明)。

自Solidity 0.7.0以来,在内联程序块内声明的变量和函数不能包含 ``.``,
但使用 ``.`` 可以有效地从内联程序块外访问Solidity变量。
=======
Since Solidity 0.6.0, the name of an inline assembly variable may not
shadow any declaration visible in the scope of the inline assembly block
(including variable, contract and function declarations).

Since Solidity 0.7.0, variables and functions declared inside the
inline assembly block may not contain ``.``, but using ``.`` is
valid to access Solidity variables from outside the inline assembly block.
However, it is still valid to use dots if you use Solidity in Yul-only mode.
>>>>>>> english/develop

需要避免的事情
---------------
Expand Down Expand Up @@ -221,11 +251,23 @@ Solidity的的惯例
内存管理
=================

<<<<<<< HEAD
Solidity以下列方式管理内存。在内存中 ``0x40`` 的位置有一个 "空闲内存指针"。
如果您想分配内存,从这个指针指向的地方开始使用内存,并更新它。
不能保证该内存以前没有被使用过,因此您不能假设其内容为零字节。
没有内置的机制来释放或释放分配的内存。下面是一段汇编代码,
您可以用它来分配内存,它遵循上述的过程:
=======
Solidity manages memory in the following way. There is a "free memory pointer"
at position ``0x40`` in memory. If you want to allocate memory, use the memory
starting from where this pointer points at and update it.
There is no guarantee that the memory has not been used before and thus
you cannot assume that its contents are zero bytes.
There is no built-in mechanism to release or free allocated memory.
Solidity does not guarantee and does not require that the values in memory
are placed at positions aligned to a multiple of any value.
Here is an assembly snippet you can use for allocating memory that follows the process outlined above:
>>>>>>> english/develop

.. code-block:: yul

Expand Down Expand Up @@ -341,5 +383,31 @@ Solidity中内存数组中的元素总是占据32字节的倍数
...
}

<<<<<<< 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.

Advanced Safe Use of Memory
---------------------------

Beyond the strict definition of memory-safety given above, there are cases in which you may want to use more than 64 bytes
of scratch space starting at memory offset ``0``. If you are careful, it can be admissible to use memory up to (and not
including) offset ``0x80`` and still safely declare the assembly block as ``memory-safe``.
This is admissible under either of the following conditions:

- By the end of the assembly block, the free memory pointer at offset ``0x40`` is restored to a sane value (i.e. it is either
restored to its original value or an increment of it due to a manual memory allocation), and the memory word at offset ``0x60``
is restored to a value of zero.

- The assembly block terminates, i.e. execution can never return to high-level Solidity code. This is the case, for example,
if your assembly block unconditionally ends in calling the ``revert`` opcode.

Furthermore, you need to be aware that the default-value of dynamic arrays in Solidity point to memory offset ``0x60``, so
for the duration of temporarily changing the value at memory offset ``0x60``, you can no longer rely on getting accurate
length values when reading dynamic arrays, until you restore the zero value at ``0x60``. To be more precise, we only guarantee
safety when overwriting the zero pointer, if the remainder of the assembly snippet does not interact with the memory of
high-level Solidity objects (including by reading from offsets previously stored in variables).
>>>>>>> english/develop
4 changes: 2 additions & 2 deletions docs/bugs.json
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@
{
"uid": "SOL-2021-1",
"name": "KeccakCaching",
"summary": "The bytecode optimizer incorrectly re-used previously evaluated Keccak-256 hashes. You are unlikely to be affected if you do not compute Keccak-256 hashes in inline assembly.",
"summary": "The bytecode optimizer incorrectly reused previously evaluated Keccak-256 hashes. You are unlikely to be affected if you do not compute Keccak-256 hashes in inline assembly.",
"description": "Solidity's bytecode optimizer has a step that can compute Keccak-256 hashes, if the contents of the memory are known during compilation time. This step also has a mechanism to determine that two Keccak-256 hashes are equal even if the values in memory are not known during compile time. This mechanism had a bug where Keccak-256 of the same memory content, but different sizes were considered equal. More specifically, ``keccak256(mpos1, length1)`` and ``keccak256(mpos2, length2)`` in some cases were considered equal if ``length1`` and ``length2``, when rounded up to nearest multiple of 32 were the same, and when the memory contents at ``mpos1`` and ``mpos2`` can be deduced to be equal. You maybe affected if you compute multiple Keccak-256 hashes of the same content, but with different lengths inside inline assembly. You are unaffected if your code uses ``keccak256`` with a length that is not a compile-time constant or if it is always a multiple of 32.",
"link": "https://blog.soliditylang.org/2021/03/23/keccak-optimizer-bug/",
"fixed": "0.8.3",
Expand Down Expand Up @@ -200,7 +200,7 @@
"uid": "SOL-2020-7",
"name": "MissingEscapingInFormatting",
"summary": "String literals containing double backslash characters passed directly to external or encoding function calls can lead to a different string being used when ABIEncoderV2 is enabled.",
"description": "When ABIEncoderV2 is enabled, string literals passed directly to encoding functions or external function calls are stored as strings in the intemediate code. Characters outside the printable range are handled correctly, but backslashes are not escaped in this procedure. This leads to double backslashes being reduced to single backslashes and consequently re-interpreted as escapes potentially resulting in a different string being encoded.",
"description": "When ABIEncoderV2 is enabled, string literals passed directly to encoding functions or external function calls are stored as strings in the intermediate code. Characters outside the printable range are handled correctly, but backslashes are not escaped in this procedure. This leads to double backslashes being reduced to single backslashes and consequently re-interpreted as escapes potentially resulting in a different string being encoded.",
"introduced": "0.5.14",
"fixed": "0.6.8",
"severity": "very low",
Expand Down
Loading