Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

English documentation updates up to v0.8.27-125-gfde19a5b1 (2024-10-09) #441

Open
wants to merge 891 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
891 commits
Select commit Hold shift + click to select a range
d067964
Yul: introduce setCode method for yul::Object to properly clean up re…
clonker Aug 2, 2024
44bfa72
Yul: optimizer tests assert that there are no subobjects but Data
clonker Aug 2, 2024
860f0d4
Change the constant optimizer to make use of PUSH0
axic Apr 12, 2023
6e7d94e
Add new Peephole Optimiser method (deduplicateNextTag)
matheusaaguiar Mar 30, 2024
7e67811
Update tests
matheusaaguiar Mar 30, 2024
a500a63
workaround to skip failing hardhat tests
matheusaaguiar Jun 28, 2024
57ab4dc
Parser: Fix spuriously emitted parser error for unary plus operations…
clonker Aug 5, 2024
38088a1
Merge pull request #15315 from ethereum/spurious_unary_plus_parser_error
nikola-matic Aug 5, 2024
5dbaa13
Merge pull request #14117 from ethereum/push0-optimisations
ekpyron Aug 5, 2024
40aec73
Update libyul/Object.cpp
ekpyron Aug 6, 2024
c92b32f
Merge pull request #15258 from ethereum/immutable_ast_class
ekpyron Aug 6, 2024
961c99d
Tests for warnings sensitive to optimization
cameel Jul 31, 2024
ea262ed
EVMObjectCompiler: Don't require a mutable object
cameel Jul 31, 2024
fe4c52e
Move optimized IR reparsing from CompilerStack to YulStack
cameel Jul 31, 2024
ea85a78
CLI: remove --yul flag
clonker Aug 6, 2024
f99c239
Merge pull request #15316 from ethereum/remove_yul_cli_arg
r0qs Aug 8, 2024
55a5fd9
Fix SMT logic error when assigning to an array of contracts or functi…
pgebal Aug 9, 2024
da68f49
Dont allow initialization of transient storage state variables
matheusaaguiar Aug 6, 2024
44e008b
Yul: remove deprecated dialect
clonker Aug 7, 2024
2d01e62
Merge pull request #15210 from ToonVanHove/doc-fix
matheusaaguiar Aug 12, 2024
dd64adf
Merge pull request #15317 from ethereum/RestrictTransientStorageVaria…
ekpyron Aug 12, 2024
60530b8
Merge pull request #15319 from ethereum/remove_yul_deprecated_dialect
ekpyron Aug 12, 2024
6d3340a
Merge pull request #15309 from ethereum/fix-wrong-native-locations-in…
ekpyron Aug 12, 2024
61d1d9d
fix typo in micropayment.rst
Allarious Aug 12, 2024
1c0b2f5
Yul: Remove EVMDialectTyped
clonker Aug 13, 2024
6512722
Yul tests: Adapt or remove EVMDialectTyped tests
clonker Aug 13, 2024
40e05d6
Yul optimizer tests: Update test expectations to use evm instead of e…
clonker Aug 13, 2024
d7bfea0
Yul syntax tests: Update test expectations to use evm instead of evmT…
clonker Aug 13, 2024
83895d0
Error codes: Whitelist 1733 and 9547 as they rely on Yul types (which…
clonker Aug 13, 2024
f90d4c0
Merge pull request #15328 from Allarious/patch-2
nikola-matic Aug 13, 2024
63d87a2
Use submodules for some dependencies.
aarlt Jun 12, 2024
5647d99
Merge pull request #15329 from ethereum/remove_evm_typed
ekpyron Aug 13, 2024
3de3c7b
Bump evmone to v0.12.0 in CI
nikola-matic Aug 9, 2024
3d3b78e
Fix UB introduced by casting difference of two unsigneds to signed
clonker Aug 14, 2024
add191d
Merge pull request #15333 from ethereum/yul_evm_code_transform_ub
clonker Aug 14, 2024
da1bc0b
SMTChecker: Add setup of z3 to SMTSolverCommand
blishko Aug 14, 2024
363274d
Update ContractCompiler.cpp
lmanini Aug 15, 2024
fa781b7
Remove cmake dependency and bump boost in ossfuzz
nikola-matic Aug 13, 2024
1c21f83
Add ubuntu2404 docker image
nikola-matic Aug 14, 2024
314b145
Merge pull request #15334 from ethereum/smt-z3-command
ekpyron Aug 15, 2024
3da2cd9
Merge pull request #15246 from meetmangukiya/stack-too-deep-yul-srclo…
ekpyron Aug 15, 2024
b9b1d08
Pass vector of SMT expressions to SymbolicFunctionVariable function
zo9999 Apr 3, 2024
fc0fb95
Merge pull request #14981 from zo9999/fix-signature-of-function-opera…
blishko Aug 15, 2024
60b2b03
Merge pull request #15335 from lmanini/patch-2
ekpyron Aug 15, 2024
a197cbe
Add back CLion build directories to .gitignore.
ekpyron Aug 18, 2024
cae1dec
Merge pull request #15342 from ethereum/gitignore
clonker Aug 19, 2024
b172de5
SMTChecker: Inline let expressions in solvers' models
blishko Aug 15, 2024
c7adde3
Merge pull request #15195 from ethereum/some_dependencies_as_git_subm…
aarlt Aug 19, 2024
98b22f8
Merge pull request #15336 from ethereum/smt-lets
blishko Aug 19, 2024
3b532e4
docs: add the onlyBuyer modifier in function confirmPurchase()
DestinyWei Oct 22, 2023
91076d6
Update safe-remote.rst
mehtavishwa30 Aug 19, 2024
020bde9
SMTChecker: Translate bitvector constants properly
blishko Jul 20, 2024
3f74db6
Merge pull request #15344 from ethereum/revert-docs-pr
ekpyron Aug 19, 2024
06d2bde
Object compiler tests for nested identical objects
cameel Jul 22, 2024
8f237de
Object: Add missing `override` specifier to overridden methods
cameel Jun 12, 2024
6654e87
ObjectDebugData: Expose a helper for formatting the @use-src comment
cameel Jun 12, 2024
27daf26
Caching of optimized IR
cameel Jul 31, 2024
5c7fc04
OptimizedIRCachingTest
cameel Jul 30, 2024
20857af
Merge pull request #15267 from ethereum/caching-optimized-ir
clonker Aug 19, 2024
f6aee35
Fix some submodule related problems.
aarlt Aug 19, 2024
c6075d5
Merge pull request #15346 from ethereum/fix_submodules
ekpyron Aug 19, 2024
05c96ce
Merge pull request #15345 from ethereum/smt-parse-constants
ekpyron Aug 19, 2024
b6ab054
Update fmtlib to v11.0.2.
aarlt Jul 29, 2024
90c0fbb
Merge pull request #15305 from ethereum/version_bump_submodules
aarlt Aug 20, 2024
20fa893
More precise calculations when evaluating how many bytes immutables r…
matheusaaguiar Aug 23, 2024
0e80fbf
prep: Extend `StandardCompiler` settings with `eofVersion` flag. Fix …
rodiazet Jul 22, 2024
5414520
prep: Change `toBigEndian` interface to support rvalue ref.
rodiazet Jul 22, 2024
6437d7e
Merge pull request #15355 from ipsilon/eof-prep-0
ekpyron Aug 23, 2024
2b7274c
Merge pull request #15357 from ipsilon/eof-prep-2
ekpyron Aug 23, 2024
b8d4798
Merge pull request #15354 from ethereum/fixImmutableImpreciseBytesReq…
ekpyron Aug 23, 2024
431911d
Merge pull request #15321 from ethereum/bump-evmc-and-evmone-to-12
nikola-matic Aug 26, 2024
9e752f5
chore: update array_storage_index_zeroed_test.sol
eltociear Aug 26, 2024
a9b9c7d
Merge pull request #15360 from eltociear/patch-3
cameel Aug 27, 2024
b8373e9
CI: explicitly add numpy to LSP test dependencies on windows
clonker Aug 28, 2024
de5e3b8
Merge pull request #15366 from ethereum/lsp_testing_win
clonker Aug 28, 2024
47a715f
Yul: Remove boolType and defaultType from dialect
clonker Aug 14, 2024
f5174e7
Yul: Remove dialect and printing mode from AsmPrinter
clonker Aug 14, 2024
0d0f277
Yul: Remove types from AST
clonker Aug 15, 2024
fbaa505
Yul: Builtins now record number of args and rets instead of respectiv…
clonker Aug 16, 2024
4938075
Yul: Improve variable naming and type error message wording, update t…
clonker Aug 27, 2024
664ee23
Merge pull request #15332 from ethereum/remove_yul_dialect_types
clonker Aug 28, 2024
c5b1ac3
Fix showProvedSafe flag and JSON key name
ardislu Jul 27, 2024
82a3071
SMTChecker: Introduce first draft of Z3CHCSmtlib2Interface
blishko Aug 19, 2024
d5cdf07
Merge pull request #15348 from ethereum/smt-z3smtlib-first-draft
blishko Aug 28, 2024
9e8369f
Merge pull request #15304 from ardislu/fix-show-proved-safe
nikola-matic Aug 28, 2024
4aff997
Implementation of direct SSA CFG generation.
ekpyron Aug 20, 2024
d9116dc
Yul: Split SSA CFG into separate graphs for functions
r0qs Aug 21, 2024
7d87b63
Yul: Dot output of SSA CFG
clonker Aug 9, 2024
80533d8
Convert Yul CFG to Json
r0qs May 31, 2024
b167c27
prep: Pass `_eofVersion` to `libevmasm/Assembly` class
rodiazet Aug 26, 2024
1854186
eof: Remove eof experimental test. It should be reintroduced later.
rodiazet Aug 28, 2024
92a74ed
SMTChecker: Introduce helper struct for query result
blishko Jul 20, 2024
9fb67f0
Merge pull request #15369 from ethereum/smt-helper-struct
blishko Aug 29, 2024
5b1704b
Merge pull request #15359 from ethereum/ssaCfg
ekpyron Aug 29, 2024
ae1c3d4
Merge pull request #15180 from ethereum/export-yul-cfg-json
clonker Aug 29, 2024
03880e4
Updating copyright year to 2024
githubfromgui Feb 13, 2024
d7865f1
Do not suppress the original message from unexpected AssemblyExceptions
cameel Aug 30, 2024
7ad125f
Merge pull request #15375 from ethereum/propagate-assembly-exception-…
matheusaaguiar Aug 30, 2024
2f46323
Bump min Boost dependency to 1.67 on Linux and macOS
cameel Aug 30, 2024
40e005b
Merge pull request #15376 from ethereum/fix-boost-min-version
cameel Aug 30, 2024
ad969e2
Hide undocumented yul export cfg option
r0qs Sep 2, 2024
b30f1e2
Create opRetro.json
mehtavishwa30 Sep 2, 2024
1c4da04
Merge pull request #15385 from ethereum/hide-undocumented-experimenta…
ekpyron Sep 2, 2024
1673c5c
Introduce ubuntu2404 clang docker image
nikola-matic Aug 29, 2024
c1d33a0
Merge pull request #15386 from ethereum/op-grant-verification
ekpyron Sep 2, 2024
9c43cc5
Merge pull request #15370 from ethereum/add-ubuntu2404-clang-image
r0qs Sep 2, 2024
b3ba1b2
Rename opRetro.json to funding.json
mehtavishwa30 Sep 2, 2024
168850b
Merge pull request #15238 from ethereum/relaxMemorySafety
ekpyron Sep 2, 2024
79f05ca
Mark PROFILE_OPTIMIZER_STEPS CMake option as advanced
cameel Aug 30, 2024
b52094b
Remove nlohmann JSON version check
cameel Aug 30, 2024
01a01eb
Clearer names and descriptions for advanced CMake options
cameel Aug 30, 2024
3184534
Improve names/descriptions of Z3-related CMake variables
cameel Sep 2, 2024
d6f9519
Merge pull request #15377 from ethereum/tweak-cmake-options
cameel Sep 2, 2024
9b33e00
Merge pull request #15356 from ipsilon/eof-prep-1
ekpyron Sep 3, 2024
3b04038
Disable failing import tests introduced by boost upgrade
nikola-matic Sep 3, 2024
bf54bdf
Merge pull request #15394 from ethereum/disable-failing-filesystem-tests
ekpyron Sep 3, 2024
3f6f2d3
Fix Yul stack output using standard json in the presence of warnings.
ekpyron Sep 3, 2024
3e5060c
Remove mantic from release PPA script (obsolete).
ekpyron Sep 3, 2024
1207b48
Merge pull request #15396 from ethereum/fixYulStackForWarnings
ekpyron Sep 3, 2024
c14977c
Merge pull request #15393 from ethereum/removeMantic
ekpyron Sep 3, 2024
b92cabd
Sort changelog for the upcoming release
nikola-matic Sep 3, 2024
3c3da63
Merge pull request #15395 from ethereum/sort-changelog-and-fix-incons…
ekpyron Sep 3, 2024
830ec2c
Set changelog release date
nikola-matic Sep 4, 2024
40a35a0
Merge pull request #15399 from ethereum/set-changelog-release-date
nikola-matic Sep 4, 2024
7e5836a
Set version to 0.8.28
nikola-matic Sep 4, 2024
09e9aa6
Merge pull request #15400 from ethereum/set-version-to-0-8-28
nikola-matic Sep 4, 2024
a298438
We no longer use a `release` branch
cameel Sep 2, 2024
ee08a75
docker_deploy_manual.sh: Make script more configurable to allow testi…
cameel Sep 2, 2024
7cca807
b_alpine_docker nightly job
cameel Sep 2, 2024
32b8b41
docker_deploy_manual.sh: Switch to plain docker build output
cameel Sep 2, 2024
7f582e4
Add ContiguousDisjointSet datastructure
clonker Sep 5, 2024
fc2e90f
Add topological sort implementation for forward SSACFG
clonker Sep 9, 2024
40758c3
Merge pull request #15389 from ethereum/ci-job-testing-docker-build
cameel Sep 9, 2024
13fe5ba
Replace errors/warning/info empty check with proper errors only check
matheusaaguiar Jun 18, 2024
c446d3b
SMTChecker: Fix parsing of model values in BMC
blishko Aug 22, 2024
a204f47
SMTChecker: Prepare Z3 SMT-LIB interface for BMC engine
blishko Aug 29, 2024
ac81d42
Merge pull request #15203 from ethereum/replaceErrorsEmptyWithHasErrors
cameel Sep 9, 2024
62909de
Merge pull request #15371 from ethereum/smt-prepare-bmc
blishko Sep 9, 2024
6f548be
Upgrade jobs to run on Ubuntu 2404
nikola-matic Sep 9, 2024
6a69527
xSMTChecker: Fix SMT logic error when assigning to an array of addresses
pgebal Sep 9, 2024
e629a03
Merge pull request #15420 from pgebal/smt-checker/fix-arrays-of-address
blishko Sep 10, 2024
9d7cc42
legacy codegen transient storage support for state variables
matheusaaguiar Jul 8, 2024
6ef580c
Merge pull request #15257 from ethereum/transientStorageLegacyCodegen
nikola-matic Sep 10, 2024
9df0379
Merge pull request #15418 from ethereum/liveness-disjoint-set
clonker Sep 11, 2024
4fca0b6
Merge pull request #15422 from ethereum/run-jobs-on-ubuntu-2404
nikola-matic Sep 11, 2024
668adbe
Remove STRICT_NLOHMANN_JSON_VERSION_CHECK leftover.
aarlt Sep 9, 2024
4049f51
Merge pull request #15421 from ethereum/remove_leftover
cameel Sep 11, 2024
16b2447
Upgrade jobs to run on Ubuntu 2404
nikola-matic Sep 9, 2024
1d58415
Update `evmc to` `12.0.0` and `evmone` to `0.12.0`
rodiazet Sep 13, 2024
322d656
Make it easier for users to discover that copying arrays and structs …
mehtavishwa30 Sep 16, 2024
2e6a2d2
Add SSACFG loop nesting forest
clonker Sep 9, 2024
2b0d08c
Apostrophe added in README.md (#15431)
anandhuRaveendran Sep 17, 2024
a92a51b
Merge pull request #15320 from ipsilon/evmc-evmone-12
ekpyron Sep 17, 2024
154fc1d
Merge pull request #15419 from ethereum/liveness-loop-nesting-forest
matheusaaguiar Sep 17, 2024
963d70b
Yul: Add toDot to SSACFG
clonker Sep 18, 2024
573d7d8
Yul: Add toDot to ControlFlow
clonker Sep 18, 2024
515f8ab
Bump all CI jobs to use Ubuntu 22.04 images
nikola-matic Sep 18, 2024
db40301
Merge pull request #15438 from ethereum/ssaCfg-todot
clonker Sep 18, 2024
38fd087
Fix pip issues for 24.04
nikola-matic Sep 18, 2024
10f2e60
Yul: Fix removal of trivial phi functions in SSA CFG Builder
clonker Sep 12, 2024
5fc7269
Remove 22.04 images and docker buildpack deps
nikola-matic Sep 18, 2024
ba4d768
Merge pull request #15437 from ethereum/bump-all-jobs-to-2404
cameel Sep 18, 2024
7e9ac48
SSACFGBuilder: Only eliminate trivial phi of sealed blocks and add re…
clonker Sep 17, 2024
c4a199a
SSACFGBuilder: clean up tryRemoveTrivialPhi
clonker Sep 19, 2024
7d33151
Merge pull request #15429 from ethereum/ssaCfg-fix-trivial-phi-fct-re…
ekpyron Sep 19, 2024
55f746b
eof: Introduce EOF container format support in `Assembly::assemble` (…
rodiazet Sep 19, 2024
603d9de
eof: pass EOF flag to `Assembly::fromJSON`
rodiazet Sep 20, 2024
bc9f3e0
eof: Add container format test
rodiazet Sep 20, 2024
33b67f0
Merge pull request #15367 from ipsilon/eof-prep-3
cameel Sep 20, 2024
1ba4349
Rename Standard JSON output selection tests CLI to match the naming c…
cameel Sep 23, 2024
3452ba0
More CLI tests for output selection in Standard JSON
cameel Sep 23, 2024
60cea4d
Merge pull request #15447 from ethereum/output-selection-tests
cameel Sep 23, 2024
9b4a07b
SSACFG: Fix canContinue in user-defined function calls
clonker Sep 23, 2024
4461699
SSACFG: Handle nested function definitions
clonker Sep 24, 2024
bd73354
Merge pull request #15448 from ethereum/ssaCfg-fixCanContinue
clonker Sep 24, 2024
47ba76f
benchmarks: Move shared code using /usr/bin/time into a helper with J…
cameel Sep 24, 2024
8bb279b
benchmarks: Switch to displaying CPU time rather than wall clock time…
cameel Sep 24, 2024
95534b6
benchmarks: Show peak memory usage
cameel Sep 24, 2024
9bf850b
benchmarks: Cosmetic tweaks to how results are displayed
cameel Sep 24, 2024
545cab3
eof: Refactor `assemble` functions in `evmasm::Assembly``
rodiazet Sep 25, 2024
ad53637
Merge pull request #15450 from ethereum/memory-usage-in-benchmarks
cameel Sep 25, 2024
4b285f1
Merge pull request #15446 from ipsilon/eof-prep-4-refactor
cameel Sep 25, 2024
09c48f5
eof: Support EOF in `assemblyStream`
rodiazet Sep 24, 2024
9e65fff
eof: Support EOF in `computeSourceMapping`
rodiazet Sep 24, 2024
415d2fc
eof: strict asm output test update
rodiazet Sep 25, 2024
3ee5f2d
Merge pull request #15449 from ipsilon/eof-assembly-print-output
cameel Sep 25, 2024
cffc4f8
Add missing ASAN runtime libraries
r0qs Sep 25, 2024
4627827
Bump ubuntu 24.04 clang image
r0qs Sep 25, 2024
2f58ee3
Merge pull request #15454 from ethereum/add-missing-asan-rt-libraries
r0qs Sep 26, 2024
fd6a655
Merge pull request #15455 from ethereum/bump-clang-docker
r0qs Sep 26, 2024
b705136
Do not treat all warnings as errors when building with sanitizers.
r0qs Sep 25, 2024
6f2ab08
Merge pull request #15453 from ethereum/disable-pedantic-asan-builds
r0qs Sep 26, 2024
5643e8e
Remove a few unused YulStack imports
cameel Sep 25, 2024
372dab4
Store a reference to a Solidity source provider in YulStack
cameel Sep 25, 2024
4216aa7
Fix shifted native source locations in Yul AST in presence of code sn…
cameel Sep 25, 2024
f369cdd
Merge pull request #15457 from ethereum/fix-code-snippets-shifting-yu…
cameel Sep 26, 2024
578e1bb
CompilerStack: Helper for Yul parsing
cameel Sep 24, 2024
9ccc44a
CompilerStack: Yul AST generation only on demand
cameel Sep 24, 2024
26d5b3f
Merge pull request #15451 from ethereum/compiler-stack-do-not-store-s…
cameel Sep 27, 2024
5cbfd0d
Via-IR code-gen for transient state variables
nikola-matic Jul 22, 2024
0968a33
Update old tests
nikola-matic Sep 13, 2024
8dfba60
New tests
nikola-matic Sep 16, 2024
6398cb2
Changelog
nikola-matic Sep 16, 2024
98fdc44
Fix missing underscore in Yul function names
nikola-matic Sep 25, 2024
4ba39cb
Merge pull request #15292 from ethereum/transient-storage-for-value-t…
nikola-matic Sep 27, 2024
b540741
Transient storage docs
matheusaaguiar Sep 5, 2024
146e2bc
outputPerformanceMetrics(): Add missing std:: prefixes
cameel Sep 30, 2024
c6df887
Fix evmone MacOS link
nikola-matic Sep 30, 2024
542f7a5
Merge pull request #15465 from ethereum/missing-std-prefix-in-perform…
nikola-matic Sep 30, 2024
891b7c8
Do not cache instances of Compiler in CompilerStack
cameel Sep 26, 2024
3c5e46b
CompilerStack: Do not cache the JSON representation of generated sources
cameel Sep 26, 2024
786eb15
Merge pull request #15466 from ethereum/fix-evmone-link
clonker Sep 30, 2024
bc9342a
Merge pull request #15460 from ethereum/compiler-stack-do-not-store-c…
cameel Sep 30, 2024
a8a679d
Merge pull request #15441 from ethereum/ssaCfg-trivial-phi-cleanup
ekpyron Sep 30, 2024
ba6dee1
Merge pull request #15409 from ethereum/transientStorageDocs
nikola-matic Oct 1, 2024
6bee17d
CompilerStack: Add missing members to reset()
cameel Sep 16, 2024
a4fa886
StandardCompiler: Fix bad `if` indent triggering a warning
cameel Sep 16, 2024
a9d9143
Pass selected outputs down to CompilerStack to avoid generating them …
cameel Sep 16, 2024
885c916
Merge pull request #15433 from ethereum/compiler-stack-per-contract-o…
cameel Oct 1, 2024
8d8ac1c
eof: Pass `eofVersion` flag to `EVMDialect`
rodiazet Oct 1, 2024
4ab3e36
Merge pull request #15467 from ipsilon/eof-pass-flag-to-evm-dialect
cameel Oct 1, 2024
62dc597
Replace Hardhat with EDR in CI
fvictorio Sep 27, 2024
351922c
Merge pull request #15461 from fvictorio/replace-hardhat-with-edr-in-ci
ekpyron Oct 2, 2024
2b41846
cmake: remove USE_LD_GOLD option
clonker Oct 2, 2024
a458344
Merge pull request #15474 from ethereum/remove_use_ld_gold
ekpyron Oct 2, 2024
badd115
Avoid unnecessary copy in full inliner.
ekpyron Oct 2, 2024
39e5aef
Re-enable cxx20 job
nikola-matic Oct 2, 2024
d8f3790
Merge pull request #15476 from ethereum/inlinerDepthCopy
ekpyron Oct 2, 2024
256e952
Merge pull request #15475 from ethereum/re-enable-cxx20-job
ekpyron Oct 2, 2024
136fe38
Disable legacy presets in zeppelin external test
nikola-matic Oct 7, 2024
293bd7f
Fix broken flyout layout due to RTD addons upgrade
r0qs Oct 7, 2024
f847758
Fix "Edit on GitHub" button to always point to develop branch
r0qs Oct 7, 2024
8021374
Merge pull request #15484 from ethereum/disable-legacy-preset-in-zepp…
cameel Oct 7, 2024
e354f7b
fix changelog entry
matheusaaguiar Oct 7, 2024
8d4dc15
Fix github user and repo in RTD config for translation projects
r0qs Oct 7, 2024
0826887
Merge pull request #15485 from ethereum/rtd-docs-workaround
r0qs Oct 7, 2024
0e02c46
Merge pull request #15487 from ethereum/fixTransientStorageChangelogE…
nikola-matic Oct 7, 2024
3651f23
Use gold linker for ossfuzz, codecov, and cxx20 builds
clonker Oct 7, 2024
c7ff217
Bump ossfuzz to large resource class
clonker Oct 7, 2024
59be575
Merge pull request #15482 from ethereum/ninja
nikola-matic Oct 8, 2024
525381c
docs: fix broken links and typo
LMAO798 Sep 20, 2024
1a8efba
Update docs/contributing.rst
nikola-matic Oct 8, 2024
675e469
Merge pull request #15443 from LMAO798/develop
nikola-matic Oct 8, 2024
cdfb93e
Update functions.rst
nnsW3 Oct 8, 2024
c3bf567
Merge pull request #15488 from nnsW3/update
nikola-matic Oct 8, 2024
11395ad
CI: Remove nightly codecov job
clonker Oct 8, 2024
5f2b1bf
Docs: fix curly bracket language wikipedia anchor
clonker Oct 8, 2024
df4f264
Merge pull request #15489 from ethereum/remove_codecov_job
clonker Oct 8, 2024
fde19a5
Merge pull request #15490 from ethereum/docs_wiki_curly_anchor
clonker Oct 8, 2024
002a4ec
English documentation updates up to v0.8.27-125-gfde19a5b1 (2024-10-09)
soldocsbot Oct 9, 2024
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
58 changes: 36 additions & 22 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.22")
set(PROJECT_VERSION "0.8.28")
# 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,34 @@ 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)
endif()

find_package(Threads)

Expand Down Expand Up @@ -75,15 +90,15 @@ 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(TESTED_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}))
if (NOT ("${Z3_VERSION_STRING}" VERSION_EQUAL ${TESTED_Z3_VERSION}))
message(
FATAL_ERROR
"SMTChecker tests require Z3 ${LATEST_Z3_VERSION} for all tests to pass.\n\
"SMTChecker tests require Z3 ${TESTED_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."
)
Expand Down Expand Up @@ -122,15 +137,11 @@ elseif (${Z3_FOUND})
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()
find_program(CVC5_PATH cvc5)

if (NOT (${Z3_FOUND} OR ${CVC4_FOUND}))
if (NOT (${Z3_FOUND} OR CVC5_PATH))
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).")
\nPlease install Z3 or cvc5 or remove the option disabling them (USE_Z3).")
endif()

add_subdirectory(libsolutil)
Expand All @@ -141,12 +152,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
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
34 changes: 34 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 Expand Up @@ -238,8 +248,27 @@ Solidity 支持上面介绍的除了元祖之外的所有同名类型。
}


<<<<<<< HEAD
因此,对于我们的例子 ``Foo``,如果我们想用 ``69`` 和 ``true`` 做参数调用 ``baz``,
我们总共需要传送 68 字节,可以分解为:
=======
Thus, for our ``Foo`` example, if we wanted to call ``bar`` with the argument ``["abc", "def"]``, we would pass 68 bytes total, broken down into:

- ``0xfce353f6``: the Method ID. This is derived from the signature ``bar(bytes3[2])``.
- ``0x6162630000000000000000000000000000000000000000000000000000000000``: the first part of the first
parameter, a ``bytes3`` value ``"abc"`` (left-aligned).
- ``0x6465660000000000000000000000000000000000000000000000000000000000``: the second part of the first
parameter, a ``bytes3`` value ``"def"`` (left-aligned).

In total:

.. code-block:: none

0xfce353f661626300000000000000000000000000000000000000000000000000000000006465660000000000000000000000000000000000000000000000000000000000

If we wanted to call ``baz`` with the parameters ``69`` and
``true``, we would pass 68 bytes total, which can be broken down into:
>>>>>>> english/develop

- ``0xcdcd77c0``: 方法ID。这源自ASCII格式的 ``baz(uint32,bool)`` 签名的 Keccak 哈希的前 4 字节。
- ``0x0000000000000000000000000000000000000000000000000000000000000045``: 第一个参数,
Expand All @@ -257,6 +286,7 @@ Solidity 支持上面介绍的除了元祖之外的所有同名类型。
那么它的输出将是一个字节数组 ``0x0000000000000000000000000000000000000000000000000000000000000000``,
一个 ``bool`` 值。

<<<<<<< HEAD
如果我们想用 ``["abc", "def"]`` 做参数调用 ``bar``,我们总共需要传送 68 字节,可以分解为:

- ``0xfce353f6``: 方法ID。源自 ``bar(bytes3[2])`` 的签名。
Expand All @@ -273,6 +303,10 @@ Solidity 支持上面介绍的除了元祖之外的所有同名类型。

如果我们想用 ``"dave"``, ``true`` 和 ``[1,2,3]`` 作为参数调用 ``sam``,
我们总共需要传送 292 字节,可以分解为:
=======
If we wanted to call ``sam`` with the arguments ``"dave"``, ``true`` and ``[1,2,3]``, we would
pass 292 bytes total, broken down into:
>>>>>>> english/develop

- ``0xa5643bf2``: 方法ID。这是从签名 ``sam(bytes,bool,uint256[])`` 中导出的。注意, ``uint`` 被替换为其典型代表 ``uint256``。
- ``0x0000000000000000000000000000000000000000000000000000000000000060``: 第一个参数(动态类型)的数据部分的位置,即从参数编码块开始位置算起的字节数。在这里,是 ``0x60`` 。
Expand Down
49 changes: 47 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 Down Expand Up @@ -341,5 +360,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
10 changes: 10 additions & 0 deletions docs/bugs.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
[
{
"uid": "SOL-2023-3",
"name": "VerbatimInvalidDeduplication",
"summary": "All ``verbatim`` blocks are considered identical by deduplicator and can incorrectly be unified when surrounded by identical opcodes.",
"description": "The block deduplicator is a step of the opcode-based optimizer which identifies equivalent assembly blocks and merges them into a single one. However, when blocks contained ``verbatim``, their comparison was performed incorrectly, leading to the collapse of assembly blocks which are identical except for the contents of the ``verbatim`` items. Since ``verbatim`` is only available in Yul, compilation of Solidity sources is not affected.",
"link": "https://blog.soliditylang.org/2023/11/08/verbatim-invalid-deduplication-bug/",
"introduced": "0.8.5",
"fixed": "0.8.23",
"severity": "low"
},
{
"uid": "SOL-2023-2",
"name": "FullInlinerNonExpressionSplitArgumentEvaluationOrder",
Expand Down
8 changes: 8 additions & 0 deletions docs/bugs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,17 @@
已知bug列表
##################

<<<<<<< HEAD
下面,您可以找到一个JSON格式的列表,其中包括Solidity编译器中一些已知的与安全有关的错误。
该文件本身托管在 `Github 仓库 <https://github.com/ethereum/solidity/blob/develop/docs/bugs.json>`_。
该列表最早可以追溯到0.3.0版本,只有在此之前的版本中已知的错误没有列出。
=======
Below, you can find a JSON-formatted list of some of the known security-relevant bugs in the
Solidity compiler. The file itself is hosted in the `GitHub repository
<https://github.com/ethereum/solidity/blob/develop/docs/bugs.json>`_.
The list stretches back as far as version 0.3.0, bugs known to be present only
in versions preceding that are not listed.
>>>>>>> english/develop

还有一个文件叫
`bugs_by_version.json <https://github.com/ethereum/solidity/blob/develop/docs bugs_by_version.json>`_,
Expand Down
Loading