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.28-17-g1c0695f66 (2024-10-15) #388

Open
wants to merge 1,794 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1794 commits
Select commit Hold shift + click to select a range
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
zuriobozuwa10 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
e8a2c63
Yul: Add SSACFG liveness analysis
clonker Sep 9, 2024
eb22cb6
Yul: add optional liveness output to toDot of SSACFGs
clonker Sep 18, 2024
f35fd1f
Yul: display dotted back edges in toDot
clonker Sep 18, 2024
8a77a26
SSACFGLiveness: add operation-wise live out
clonker Sep 19, 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
9b97e52
sort Changelog
matheusaaguiar Oct 8, 2024
7893614
Merge pull request #15491 from ethereum/sortChangelogForRelease
nikola-matic Oct 9, 2024
fecd132
eof: Support EOF asm analysis
rodiazet Oct 9, 2024
91a37af
Set next version (0.8.29)
matheusaaguiar Oct 8, 2024
ecaf4d5
Merge pull request #15492 from ethereum/setNextVersion
nikola-matic Oct 9, 2024
d6fa849
Merge pull request #15471 from ipsilon/eof-support-in-asm-analysis
cameel Oct 9, 2024
7210680
Yul: SSACFGLiveness simplifications
clonker Oct 10, 2024
3edd2e1
[docs] Add warning about `codehash` behavior depending on the account…
ustas-eth Jan 21, 2024
e8b5ca8
Update Natspec format to correct devdoc return parameters (#15187)
shoenseiwaso Oct 11, 2024
c38e4e6
Pass `evmVersion` and `eofVersion` to `YulStack` in `ObjectCompilerTest`
rodiazet Oct 11, 2024
73b7dcd
Merge pull request #15503 from ipsilon/pass-cmdline-flags-to-object-c…
cameel Oct 11, 2024
6994281
enable euler ext test
matheusaaguiar Oct 3, 2024
589f8b1
Merge pull request #15500 from ethereum/reenableCancunDependantExtTests
matheusaaguiar Oct 12, 2024
5690258
Merge pull request #15439 from ethereum/ssaCfg-liveness
ekpyron Oct 13, 2024
1c0695f
Fix ObjectCompiler test (#15511)
nikola-matic Oct 14, 2024
5e55590
English documentation updates up to v0.8.28-17-g1c0695f66 (2024-10-15)
soldocsbot Oct 15, 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
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-22.04
tools:
python: "3.11"

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

formats:
- pdf
- epub

python:
install:
- requirements: docs/requirements.txt
69 changes: 42 additions & 27 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
cmake_minimum_required(VERSION 3.13.0)

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

# Set the build type, if none was specified.
if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
if(EXISTS "${PROJECT_SOURCE_DIR}/.git")
set(DEFAULT_BUILD_TYPE "RelWithDebInfo")
else()
set(DEFAULT_BUILD_TYPE "Release")
Expand All @@ -21,7 +21,7 @@ include(EthPolicy)
eth_policy()

# project name and version should be set after cmake_policy CMP0048
set(PROJECT_VERSION "0.8.18")
set(PROJECT_VERSION "0.8.29")
# 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 All @@ -66,24 +81,24 @@ include(EthUtils)

# Create license.h from LICENSE.txt and template
# Converting to char array is required due to MSVC's string size limit.
file(READ ${CMAKE_SOURCE_DIR}/LICENSE.txt LICENSE_TEXT HEX)
file(READ ${PROJECT_SOURCE_DIR}/LICENSE.txt LICENSE_TEXT HEX)
string(REGEX MATCHALL ".." LICENSE_TEXT "${LICENSE_TEXT}")
string(REGEX REPLACE ";" ",\n\t0x" LICENSE_TEXT "${LICENSE_TEXT}")
set(LICENSE_TEXT "0x${LICENSE_TEXT}")

configure_file("${CMAKE_SOURCE_DIR}/cmake/templates/license.h.in" include/license.h)
configure_file("${PROJECT_SOURCE_DIR}/cmake/templates/license.h.in" include/license.h)

include(EthOptions)
configure_project(TESTS)
set(LATEST_Z3_VERSION "4.11.2")
set(MINIMUM_Z3_VERSION "4.8.0")
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 @@ -140,12 +151,16 @@ add_subdirectory(libevmasm)
add_subdirectory(libyul)
add_subdirectory(libsolidity)
add_subdirectory(libsolc)
add_subdirectory(tools)
add_subdirectory(libstdlib)

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()
10 changes: 5 additions & 5 deletions docs/050-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ For most of the topics the compiler will provide suggestions.
``payable`` or create a new internal function for the program logic that
uses ``msg.value``.

* For clarity reasons, the command line interface now requires ``-`` if the
* For clarity reasons, the command-line interface now requires ``-`` if the
standard input is used as source.

Deprecated Elements
Expand All @@ -147,18 +147,18 @@ This section lists changes that deprecate prior features or syntax. Note that
many of these changes were already enabled in the experimental mode
``v0.5.0``.

Command Line and JSON Interfaces
Command-line and JSON Interfaces
--------------------------------

* The command line option ``--formal`` (used to generate Why3 output for
* The command-line option ``--formal`` (used to generate Why3 output for
further formal verification) was deprecated and is now removed. A new
formal verification module, the SMTChecker, is enabled via ``pragma
experimental SMTChecker;``.

* The command line option ``--julia`` was renamed to ``--yul`` due to the
* The command-line option ``--julia`` was renamed to ``--yul`` due to the
renaming of the intermediate language ``Julia`` to ``Yul``.

* The ``--clone-bin`` and ``--combined-json clone-bin`` command line options
* The ``--clone-bin`` and ``--combined-json clone-bin`` command-line options
were removed.

* Remappings with empty prefix are disallowed.
Expand Down
14 changes: 7 additions & 7 deletions docs/060-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ For the full list check
Changes the Compiler Might not Warn About
=========================================

This section lists changes where the behaviour of your code might
This section lists changes where the behavior of your code might
change without the compiler telling you about it.

* The resulting type of an exponentiation is the type of the base. It used to be the smallest type
Expand Down Expand Up @@ -105,23 +105,23 @@ Interface Changes
=================

This section lists changes that are unrelated to the language itself, but that have an effect on the interfaces of
the compiler. These may change the way how you use the compiler on the command line, how you use its programmable
the compiler. These may change the way how you use the compiler on the command-line, how you use its programmable
interface, or how you analyze the output produced by it.

New Error Reporter
~~~~~~~~~~~~~~~~~~

A new error reporter was introduced, which aims at producing more accessible error messages on the command line.
It is enabled by default, but passing ``--old-reporter`` falls back to the the deprecated old error reporter.
A new error reporter was introduced, which aims at producing more accessible error messages on the command-line.
It is enabled by default, but passing ``--old-reporter`` falls back to the deprecated old error reporter.

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 behaviour,
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.
`Swarm <https://ethersphere.github.io/swarm-home/>`_ 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.

These changes can also be used via the :ref:`Standard JSON Interface<compiler-api>` and effect the metadata JSON generated by the compiler.
Expand Down
14 changes: 7 additions & 7 deletions docs/080-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,18 @@ For the full list check
Silent Changes of the Semantics
===============================

This section lists changes where existing code changes its behaviour without
This section lists changes where existing code changes its behavior without
the compiler notifying you about it.

* Arithmetic operations revert on underflow and overflow. You can use ``unchecked { ... }`` to use
the previous wrapping behaviour.
the previous wrapping behavior.

Checks for overflow are very common, so we made them the default to increase readability of code,
even if it comes at a slight increase of gas costs.

* ABI coder v2 is activated by default.

You can choose to use the old behaviour using ``pragma abicoder v1;``.
You can choose to use the old behavior using ``pragma abicoder v1;``.
The pragma ``pragma experimental ABIEncoderV2;`` is still valid, but it is deprecated and has no effect.
If you want to be explicit, please use ``pragma abicoder v2;`` instead.

Expand Down Expand Up @@ -57,7 +57,7 @@ New Restrictions

This section lists changes that might cause existing contracts to not compile anymore.

* There are new restrictions related to explicit conversions of literals. The previous behaviour in
* There are new restrictions related to explicit conversions of literals. The previous behavior in
the following cases was likely ambiguous:

1. Explicit conversions from negative literals and literals larger than ``type(uint160).max`` to
Expand Down Expand Up @@ -106,7 +106,7 @@ This section lists changes that might cause existing contracts to not compile an

* The global functions ``log0``, ``log1``, ``log2``, ``log3`` and ``log4`` have been removed.

These are low-level functions that were largely unused. Their behaviour can be accessed from inline assembly.
These are low-level functions that were largely unused. Their behavior can be accessed from inline assembly.

* ``enum`` definitions cannot contain more than 256 members.

Expand Down Expand Up @@ -155,7 +155,7 @@ Interface Changes
``storage-layout`` are sub-objects now. Before 0.8.0 they used to be serialised as strings.

* 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.
Use the "compact AST" (``--ast-compact-json`` resp. ``AST``) as replacement.

* The old error reporter (``--old-reporter``) has been removed.

Expand All @@ -173,4 +173,4 @@ How to update your code
- Change ``msg.sender.transfer(x)`` to ``payable(msg.sender).transfer(x)`` or use a stored variable of ``address payable`` type.
- Change ``x**y**z`` to ``(x**y)**z``.
- Use inline assembly as a replacement for ``log0``, ..., ``log4``.
- Negate unsigned integers by subtracting them from the maximum value of the type and adding 1 (e.g. ``type(uint256).max - x + 1``, while ensuring that `x` is not zero)
- Negate unsigned integers by subtracting them from the maximum value of the type and adding 1 (e.g. ``type(uint256).max - x + 1``, while ensuring that ``x`` is not zero)
7 changes: 0 additions & 7 deletions docs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ help:
@echo " epub to make an epub"
@echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
@echo " latexpdf to make LaTeX files and run them through pdflatex"
@echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
@echo " text to make text files"
@echo " man to make manual pages"
@echo " texinfo to make Texinfo files"
Expand Down Expand Up @@ -116,12 +115,6 @@ latexpdf:
$(MAKE) -C $(BUILDDIR)/latex all-pdf
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."

latexpdfja:
$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
@echo "Running LaTeX files through platex and dvipdfmx..."
$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."

text:
$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
@echo
Expand Down
23 changes: 23 additions & 0 deletions docs/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Solidity Language Docs

## Local environment setup

1. Install python https://www.python.org/downloads/
1. Install sphinx (the tool used to generate the docs) https://www.sphinx-doc.org/en/master/usage/installation.html

Go to `/docs` and run `./docs.sh` to install dependencies and build the project:

```sh
cd docs
./docs.sh
```

That will output the generated htmls under _build/

## Serve environment

```py
python3 -m http.server -d _build/html --cgi 8080
```

Visit dev server at http://localhost:8080
Loading