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.24-125-gedc494de1 (2024-03-06) #241

Open
wants to merge 2,933 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2933 commits
Select commit Hold shift + click to select a range
d8de97d
Merge pull request #14651 from ethereum/fix-wrong-url-name-in-standar…
nikola-matic Oct 26, 2023
ad3caa7
Merge pull request #14238 from robriks/patch-2
ekpyron Oct 30, 2023
74c2440
Update the release checklist
nikola-matic Oct 25, 2023
79b1f55
Remove references to homebrew-ethereum
nikola-matic Oct 26, 2023
7df949e
Merge pull request #14644 from ethereum/update-release-checklist
ekpyron Oct 31, 2023
7bf058b
Update ubuntu versions in PPA scripts.
ekpyron Oct 25, 2023
f70bd94
Merge pull request #14646 from ethereum/updateUbuntuVersions
ekpyron Nov 6, 2023
4d10cb5
Update README.md for X (Twitter) new brand guidelines (#14665)
Nuzair46 Nov 7, 2023
d899d9c
Accept empty optimizer sequence with Yul optimizer disabled
nikola-matic Oct 30, 2023
cb93e6e
Merge pull request #14657 from ethereum/accept-empty-optimizer-sequen…
nikola-matic Nov 7, 2023
cc56cb5
Add verbatim bug test case.
ekpyron Nov 7, 2023
48fdbd3
Fix assembly item comparison for verbatim.
ekpyron Oct 25, 2023
41ceb48
Add cmdline test
matheusaaguiar Nov 8, 2023
34b70af
Merge pull request #14649 from ethereum/assemblyItemVerbatimComparison
ekpyron Nov 8, 2023
8292d7b
Remove superflous language features category from Changelog
nikola-matic Nov 8, 2023
12f7c7a
Merge pull request #14671 from ethereum/remove-language-features-from…
nikola-matic Nov 8, 2023
7e84be6
Set date for 0.8.23 release
nikola-matic Nov 8, 2023
5cafa8c
Fix link in bugs.json for 0.8.23
nikola-matic Nov 8, 2023
9736b17
Merge pull request #14675 from ethereum/fix-invalid-link-in-bug-blog-…
ekpyron Nov 8, 2023
f704f36
Merge pull request #14672 from ethereum/set-release-date-for-0-8-23
nikola-matic Nov 8, 2023
4fd869e
Set version to 0.8.24
cameel Nov 8, 2023
90b046a
Merge pull request #14674 from ethereum/set-version-to-0.8.24
cameel Nov 8, 2023
35b5ebd
prepare_report.js: Add the --report-file option to avoid printing the…
cameel Nov 9, 2023
d668330
prepare_report.js: Show script progress on stdout with dots
cameel Nov 9, 2023
58811f1
Merge pull request #14678 from ethereum/fix-no-output-timeout-in-js-b…
cameel Nov 10, 2023
103e397
fix:typo errors
jitendragangwar123 Nov 23, 2023
158330b
Update optimizer docs to include codegen-based optimizer section
matheusaaguiar Oct 26, 2023
efed3b2
Merge pull request #14650 from ethereum/uncheckedForLoopIncrementDocs
matheusaaguiar Nov 23, 2023
8387ba0
Merge pull request #14696 from jitendragangwar123/patch-2
nikola-matic Nov 27, 2023
15afdc3
Switch from yarn to pnpm for hardhat external tests
r0qs Nov 27, 2023
7b269d1
Merge pull request #14704 from ethereum/switch-yarn-to-pnpm
r0qs Nov 27, 2023
435f389
Fix docutils deprecated set_class method
nikola-matic Nov 28, 2023
cfdd2e0
Merge pull request #14706 from ethereum/fix-docutils-deprecated-set-c…
r0qs Nov 28, 2023
1ad3890
Fix typos
xiaolou86 Oct 11, 2023
4b29380
Merge pull request #14602 from xiaolou86/develop
nikola-matic Nov 28, 2023
4c62829
Update contributing.rst
mehtavishwa30 Nov 29, 2023
e658eeb
Merge pull request #14708 from ethereum/mehtavishwa30-patch-1
mehtavishwa30 Nov 29, 2023
1247ff4
Assert compiler outputs not generated when experimental Solidity is used
matheusaaguiar Oct 28, 2023
7006535
[FIXUP] Remove TODO comment
matheusaaguiar Nov 29, 2023
9b09afe
[REFACTOR] Use solUnimplementedAssert instead of solAssert
matheusaaguiar Nov 29, 2023
fc65c0c
Assert import AST
matheusaaguiar Nov 29, 2023
e43d105
Purge using namespace from test/libyul
nikola-matic Nov 30, 2023
3d7d8aa
Merge pull request #14712 from ethereum/purge-using-namespace-std-fro…
nikola-matic Nov 30, 2023
0022089
Introduce `Cancun` EVM version
r0qs Nov 27, 2023
5fcc8c7
Purge using namespace from test/solc
nikola-matic Dec 1, 2023
eaf1d3f
Merge pull request #14715 from ethereum/purge-using-namespace-std-fro…
nikola-matic Dec 1, 2023
abb0f08
Purge using namespace from tools/yulInterpreter
nikola-matic Dec 1, 2023
c3af02c
Merge pull request #14716 from ethereum/purge-using-namespace-from-te…
nikola-matic Dec 1, 2023
502f978
ReleaseChecklist: New solc-js publication process using a CI-built ta…
cameel Nov 10, 2023
7e90ad0
Merge pull request #14679 from ethereum/release-checklist-solc-js-pac…
cameel Dec 4, 2023
787a5c2
Use pnpm instead of forge install for prb-math external test
r0qs Dec 4, 2023
179ff6e
Merge pull request #14718 from ethereum/fix-prb-math
nikola-matic Dec 5, 2023
557d567
Merge pull request #14659 from ethereum/assertJsonArtifacts
ekpyron Dec 5, 2023
8f051dd
Fix import-ast bug when inline assembly had empty let var declaration.
matheusaaguiar Dec 8, 2023
66cb0ae
Fix argument expansion in command_available
nikola-matic Dec 11, 2023
3d3765c
Merge pull request #14724 from ethereum/fix-command-available-common-sh
nikola-matic Dec 12, 2023
cdf2f5e
Merge pull request #14723 from ethereum/fixImportAstInlineAssemblyEmp…
ekpyron Dec 12, 2023
ad9271e
Merge pull request #14705 from ethereum/add-cancun-evm-version
ekpyron Dec 13, 2023
38d992a
docs: fix incomplete member of address in cheatsheet.rst
hafeidejiangyou Aug 1, 2023
b5eb0f9
Merge pull request #14601 from ethereum/cheatsheet-update
matheusaaguiar Dec 13, 2023
7d6e6ee
prepare_report.py: Don't ignore CLI exit code
cameel Dec 13, 2023
646b342
prepare_report.py: Always exit on error from Standard JSON interface
cameel Dec 13, 2023
1b5c6f6
Merge pull request #14731 from ethereum/fix-bytecode-report-ignoring-…
cameel Dec 13, 2023
194b114
Add basic type inference infrastructure for experimental Solidity
ekpyron Jun 6, 2023
e6555d8
Increase resource_class of prb-math external test
r0qs Dec 18, 2023
ed52376
Merge pull request #14510 from ethereum/newAnalysis
ekpyron Dec 18, 2023
92f383d
Merge pull request #14738 from ethereum/fix-prb-math-ext-test
ekpyron Dec 18, 2023
5fd52f3
Switch to building GMP from an unofficial git mirror
nikola-matic Dec 26, 2023
b54a554
Merge pull request #14767 from ethereum/fix-gmp-build-in-ossfuzz-docker
cameel Jan 5, 2024
5c79d5e
CI: Update ossfuzz docker image hash
cameel Jan 5, 2024
2348552
Merge pull request #14768 from ethereum/fix-gmp-build-in-ossfuzz-dock…
cameel Jan 5, 2024
d5119f7
Bump evmone to 11 in Docker images
nikola-matic Dec 22, 2023
e08da86
Merge pull request #14743 from ethereum/bump-evmone-and-evmc-to-11
cameel Jan 6, 2024
567e8cc
Bump evmc to v11.0.0
nikola-matic Dec 20, 2023
8fb37d4
Bump evmone to 11 in CI
nikola-matic Dec 22, 2023
4e7bb4e
Bump evmc and evmone images to v11 in CI
nikola-matic Dec 23, 2023
c78f965
Merge pull request #14758 from ethereum/bump-evmc-evmone-in-ci
cameel Jan 6, 2024
373bc2b
Fix chai to version 4.4.0 in Brink external test
r0qs Jan 9, 2024
814225e
Merge pull request #14773 from ethereum/fix-brink-ext-test
ekpyron Jan 9, 2024
fbbac9c
Fix several minor typo (#14629)
sukey2008 Jan 10, 2024
47fc4f9
Yul fuzzer: Add Shanghai EVM version
bshastry Jan 12, 2024
bf59ff8
Introduce block.blobbasefee in Solidity and blobbasefee in Yul
nikola-matic Dec 25, 2023
1473ce2
Merge pull request #14755 from ethereum/introduce-blobbasefee
nikola-matic Jan 12, 2024
5aace4f
Merge pull request #14782 from ethereum/fuzzer-shanghai
nikola-matic Jan 15, 2024
b8d0077
Fix typos
GoodDaisy Jan 9, 2024
9c9eddb
Merge pull request #14771 from GoodDaisy/develop
matheusaaguiar Jan 17, 2024
269951e
Add blobhash opcode
r0qs Dec 21, 2023
ec563a1
Merge pull request #14757 from ethereum/eip-4844-add-blobhash
r0qs Jan 18, 2024
9af30b5
Yul fuzzer: Introduce basefee() and blobbasefee() builtins
bshastry Jan 12, 2024
43c3910
Merge pull request #14781 from ethereum/fuzzer-blobbasefee
bshastry Jan 20, 2024
0da0bff
EVMInstructionInterpreter: Readability/style tweaks
cameel Jan 11, 2024
492c0eb
GasMeter tests: Skip tests with abicoder v2 only if they actually don…
cameel Jan 19, 2024
3876717
test/Common: minEVMVersionCheck() predicate for skipping boost tests
cameel Jan 19, 2024
9512f41
Make tests based on Analysis Framework properly use line prefix also …
cameel Jan 19, 2024
d1447c0
MemoryGuardTest: Don't hide errors that occur at the IR parsing stage
cameel Jan 19, 2024
7f79cd8
MemoryGuardTest: Respect EVM version selected on the command line
cameel Jan 19, 2024
f05d0a9
Merge pull request #14790 from ethereum/testing-tweaks-before-mcopy
cameel Jan 22, 2024
81268e3
Add blobhash high-level global function.
r0qs Dec 27, 2023
01cb85f
Merge pull request #14759 from ethereum/eip-4844-add-blobhash-2
cameel Jan 22, 2024
ce98680
Support bytes concat in formal verification (#14685)
pgebal Jan 24, 2024
1b75d48
More basic tests for memory guard
cameel Jan 23, 2024
1a80202
A few extra optimizer tests for MSTORE
cameel Jan 23, 2024
bd76278
Yul builtin for MCOPY
cameel Jan 8, 2024
ba95a29
Fix macOS dependency cache.
aarlt Jan 22, 2024
89a70c7
Merge pull request #14795 from ethereum/osx-caching
cameel Jan 24, 2024
8f5ee88
Merge pull request #14779 from ethereum/mcopy
cameel Jan 24, 2024
89b73b6
Introduce transient storage support for Yul and inline assembly.
matheusaaguiar Jan 12, 2024
261e8b9
Test new semantic of selfdestruct added by EIP-6780
r0qs Jan 16, 2024
ea0b750
Add support for apple silicon.
aarlt Dec 11, 2023
7e7c45c
Merge pull request #14737 from ethereum/transientStorageBasicSupport
cameel Jan 25, 2024
29fc962
Merge pull request #14785 from ethereum/eip-6780-selfdestruct
cameel Jan 25, 2024
bc62f28
Merge pull request #14725 from ethereum/apple_silicon_build
cameel Jan 25, 2024
631fd9d
Issue a warning when comparing internal function pointers
nikola-matic Jan 17, 2024
ef663c2
Changelog and docs
nikola-matic Jan 18, 2024
ae7039f
Merge pull request #14784 from ethereum/issue-a-warning-when-comparin…
cameel Jan 25, 2024
ac3703a
using-the-compiler.rst: Adjust SolidityAST docs to match the pre-exis…
cameel Jan 25, 2024
4ed2380
Add support to import EVM assembly via Standard JSON.
aarlt May 31, 2023
62e27e4
Merge pull request #14285 from ethereum/evmjson-import-via-standard-json
cameel Jan 25, 2024
6d7fc69
Fix broken link in docs
nikola-matic Jan 25, 2024
fe3b94d
Order changelog
nikola-matic Jan 25, 2024
1377d43
Merge pull request #14808 from ethereum/fix-docs-broken-links
nikola-matic Jan 25, 2024
2ec5726
Merge pull request #14809 from ethereum/fix-changelog-for-release
nikola-matic Jan 25, 2024
0da4527
Update changelog for 0.8.24 release
nikola-matic Jan 25, 2024
e11b9ed
Merge pull request #14810 from ethereum/set-changelog-for-8-24-release
nikola-matic Jan 25, 2024
0e03dec
Set version to 0.8.25
nikola-matic Jan 25, 2024
a70cae9
Fix 0.8.23 changelog formatting
cameel Jan 26, 2024
6d5aa39
Fix typos
rex4539 Jan 26, 2024
0f71a78
Merge pull request #14811 from ethereum/set-version-to-0.8.25
cameel Jan 26, 2024
fd73bce
Merge pull request #14815 from rex4539/typos
cameel Jan 26, 2024
fb99132
TypeInference: Remove unreachable errors on missing instantiation ann…
cameel Dec 13, 2023
9d80e0e
Yul proto fuzzer: Add mcopy builtin to generator.
cameel Jan 8, 2024
fb7c2b4
Yul fuzzer: Support transient storage.
bshastry Jan 25, 2024
ab18b6d
Merge pull request #14787 from ethereum/fuzz-mcopy
cameel Jan 26, 2024
4edbaf1
Merge pull request #14807 from ethereum/fuzz-transient-storage
cameel Jan 26, 2024
1906cf1
Merge pull request #14736 from ethereum/new-analysis-remove-unreachab…
ekpyron Jan 30, 2024
e545e93
TypeSystemHelper: substitute()
cameel Oct 30, 2023
44ffdb1
Introduce fixed type variables
cameel Oct 30, 2023
fd3c393
Use different prefixes when printing fixed and generic type variables
cameel Oct 30, 2023
fce70ef
Fixing type variables in defined type classes and functions
cameel Oct 30, 2023
8e210d2
Fixing type variables in type definitions
cameel Nov 7, 2023
4577aeb
Merge pull request #14655 from ethereum/new-analysis-fixed-type-varia…
ekpyron Jan 30, 2024
7bf8ff2
Fix openzeppelin external test
r0qs Feb 5, 2024
3ed82c6
Merge pull request #14833 from ethereum/fix-version-hardhat-chai-matc…
r0qs Feb 5, 2024
a3e5f3f
feat: add new rule name `usingAliases` for solidity `usingDirective`
jeasonstudio Jan 19, 2024
1183284
Merge pull request #14788 from jeasonstudio/grammar-provide-using-ali…
ekpyron Feb 5, 2024
ed96eb2
Yul fuzzer: Support blobhash(uint) global function
bshastry Jan 25, 2024
c7db606
Print a warning about function parameter names being used instead of …
pgebal Feb 6, 2024
1c8072a
Remove dynamic byte arrays from value types section
nikola-matic Feb 7, 2024
5c70b35
Merge pull request #14835 from ethereum/remove-byte-array-from-value-…
nikola-matic Feb 7, 2024
71a05df
Purge using namespace std from test/yulPhaser
nikola-matic Jan 11, 2024
656bd6d
Merge pull request #14777 from ethereum/purge-using-namsepace-std-fro…
r0qs Feb 8, 2024
838658f
Install dependencies and add symbolic link for python3
nikola-matic Feb 9, 2024
0f3d40f
Merge pull request #14839 from ethereum/fix-win-pyscripts-no-module-r…
nikola-matic Feb 12, 2024
7c1bdba
Remove sha from foundry release tag
r0qs Feb 12, 2024
00a54f8
Merge pull request #14846 from ethereum/fix-foundry-install
r0qs Feb 12, 2024
c7549de
Only warn instead of failing when enforcing gas expectations with non…
cameel Feb 11, 2024
5fe3173
Merge pull request #14844 from ethereum/allow-enforcing-gas-costs-wit…
nikola-matic Feb 13, 2024
44da00d
Use MCOPY when copying byte arrays
nikola-matic Feb 6, 2024
3122d35
ABI decode test case
nikola-matic Feb 14, 2024
4032b59
Add DebugData to AssemblyItem.
aarlt Feb 10, 2024
c7b8dcc
[test] Add /usr/local/lib to search paths for macOS.
aarlt Feb 16, 2024
9b8ed03
Fix typo in Assembly::fromJSON(..).
aarlt Feb 18, 2024
5aed751
Use ethers version 6.11.0 on openzeppelin external tests
r0qs Feb 19, 2024
c21490f
[ci] Remove usage of ETH_EVMONE environment variable.
aarlt Feb 19, 2024
d8c3ca2
Merge pull request #14834 from ethereum/use_mcopy_in_code_generation
nikola-matic Feb 19, 2024
dc11306
Merge pull request #14865 from ethereum/fix_typo_in_assembly_from_json
ekpyron Feb 19, 2024
6c5026d
Merge pull request #14862 from ethereum/add_usr_local_lib_to_default_…
aarlt Feb 19, 2024
18cabee
CompilerStack: Don't swallow details include in OptimizerException
cameel Jan 9, 2024
f518815
Remove obsolete gas cost tiers
cameel Jan 9, 2024
686f5cd
Document the Tier enum and constants that come from Execution Specs
cameel Jan 9, 2024
a973b4c
Rename Ext gas cost tier to BlockHash
cameel Jan 9, 2024
f78eec5
Merge pull request #14867 from ethereum/fix-openzeppelin
ekpyron Feb 19, 2024
5cf513d
Merge pull request #14772 from ethereum/clean-and-document-gas-tiers
cameel Feb 19, 2024
88ee7d8
[ci] Remove code signature from universal binary.
aarlt Feb 19, 2024
15ff3bc
Merge pull request #14869 from ethereum/remove_signature_from_univers…
ekpyron Feb 19, 2024
0bd7383
Merge pull request #14868 from ethereum/remove_usage_of_eth_evmone_en…
ekpyron Feb 19, 2024
172f3cf
Merge pull request #14841 from ethereum/add_debugdata_to_assemblyitem
ekpyron Feb 19, 2024
ac54fe1
Purge using namespace std from test
nikola-matic Jan 11, 2024
8631af2
Merge pull request #14778 from ethereum/purge-using-namespace-std-fro…
ekpyron Feb 19, 2024
ac39886
SMTChecker: Respect signedness of integer type
blishko Feb 7, 2024
8770952
SMTChecker: Unsigned number expressions should have unsigned type
blishko Feb 7, 2024
a1ad970
SMTChecker: Add test case
blishko Feb 9, 2024
22da46c
Update changelog
blishko Feb 9, 2024
f7baede
Merge pull request #14840 from ethereum/smt-fix-types
blishko Feb 19, 2024
4d163ff
Convert tagPos to a size for address size computation
simon-perriard Feb 18, 2024
8e21255
Account for subassemblies in tag size calculation, test adjustments a…
ekpyron Feb 19, 2024
c49d847
Force install python3.12 for Window bytecode compare job
nikola-matic Feb 20, 2024
0316f84
Merge pull request #14864 from simon-perriard/fix_subTagSize_computation
ekpyron Feb 20, 2024
1185ad0
Build hardhat from latest release in t_ems_ext_hardhat
r0qs Feb 20, 2024
9f0c222
Merge pull request #14873 from ethereum/pin-python-in-windows-ci
cameel Feb 20, 2024
d703b82
gas_diff_stats.py: Add basic unit tests
cameel Feb 11, 2024
c6e2331
gas_diff_stats.py: Add a Python shebang
cameel Feb 11, 2024
e28a1d4
gas_diff_stats.py: Print errors to stderr, not stdout
cameel Feb 11, 2024
5518a30
gas_diff_stats.py: Don't let shell evaluate file names and support na…
cameel Feb 11, 2024
39f3e76
gas_diff_stats.py: Fail when the semantic test dir does not exist
cameel Feb 11, 2024
855096b
gas_diff_stats.py: Skip non-gas lines to avoid having to silence pars…
cameel Feb 11, 2024
b9c7b69
gas_diff_stats.py: Explicitly ignore ir gas instead of failing to par…
cameel Feb 11, 2024
65031d3
gas_diff_stats.py: Handle errors instead of ignoring them
cameel Feb 11, 2024
43274fd
gas_diff_stats.py: Improve table and number formatting
cameel Feb 11, 2024
b88d690
gas_diff_stats.py: Order rows in a deterministic way (by file path)
cameel Feb 11, 2024
36f2d39
CI: Add a smoke test run for gas_diff_stats.py
cameel Feb 11, 2024
c130163
Merge pull request #14875 from ethereum/ext-test-hardhat-latest-release
ekpyron Feb 21, 2024
a851c59
Fix ENS external test ensuring it applies memory-safe-assembly filter…
r0qs Feb 21, 2024
f4105a9
Merge pull request #14842 from ethereum/more-robust-gas-diff-stats
ekpyron Feb 21, 2024
d7aa37d
Use latest release instead of main branch on external tests
r0qs Feb 20, 2024
a9a870d
Test coverage for existing parsing and formatting functionality of ga…
cameel Feb 7, 2024
e47e948
SoltesTypes: Fix outdated comment about allowed keys in gasUsed
cameel Feb 11, 2024
d98c943
TestFunctionCall::formatGasExpectations(): runType can't be empty in …
cameel Feb 7, 2024
c55c8b5
TestFunctionCall::formatGasExpectations(): Move diffing into a helper
cameel Feb 7, 2024
cd94139
TestFunctionCall::formatGasExpectations(): Handle corner cases properly
cameel Feb 7, 2024
d5bae3f
TestFunctionCall::formatGasExpectations(): Helper for getting optiona…
cameel Feb 7, 2024
2ee4d6b
Keep track of code deposit gas when executing contract code
cameel Feb 9, 2024
9623386
Separate 'code' gas settings in semantic tests
cameel Feb 9, 2024
96ce95a
Do not include code deposit gas in the total visible in test expectat…
cameel Feb 9, 2024
381b149
gas_diff_stats.py: Include code deposit costs in total cost
cameel Feb 11, 2024
e7312a5
Use CircleCI rust+node convenience image for t_ems_ext_hardhat job
r0qs Feb 21, 2024
c8358f5
Fix detect_hardhat_artifact_dir in externalTests scripts
r0qs Feb 21, 2024
4438082
Merge pull request #14880 from ethereum/update-external-tests
ekpyron Feb 21, 2024
acf382b
Merge pull request #14843 from ethereum/separate-code-deposit-cost-in…
cameel Feb 21, 2024
602f855
Merge pull request #14882 from ethereum/change-hardhat-ci-image
ekpyron Feb 21, 2024
a439996
Merge pull request #14881 from ethereum/fix-detect-hardhat-artifacts
ekpyron Feb 21, 2024
bd9b92c
Merge pull request #14806 from ethereum/fuzz-blobhash
bshastry Feb 22, 2024
e095590
Parser::parseFunctionDefinition(): Return FunctionDefinition, not AST…
cameel Nov 2, 2023
fa35ed5
Add ForAllQuantifier AST node
cameel Nov 2, 2023
4d051c1
Add parser support for quantified function definitions
cameel Nov 2, 2023
cd52e5a
TypeInference: Require declarations for type variables
cameel Nov 6, 2023
dba754e
Merge pull request #14668 from ethereum/new-analysis-forall
cameel Feb 23, 2024
180f744
gas_diff_stats.py: Sort the table by average change
cameel Feb 26, 2024
14e217e
Merge pull request #14888 from ethereum/gas-diff-stats-sort-by-avg
cameel Feb 27, 2024
125767e
SMTCommand: Remember to flush query before calling solver
blishko Feb 27, 2024
28b2587
Merge pull request #14890 from ethereum/smt-solver-interface-small-up…
blishko Feb 27, 2024
51eff63
Update introduction-to-smart-contracts.rst (#14884)
eclipse1228 Feb 29, 2024
e7aaf03
docs: Replace references to "mining" with "attestation" (#14147)
Vojtch159 Feb 29, 2024
9bd2424
Fix typos in variable names and comment (#14876)
Chomtana Feb 29, 2024
7676ab1
Update natspec-format.rst : Added structs and enums to Tags (#14267)
adityakode Feb 29, 2024
6b417dd
[evmasm] Fix handling of missing source locations during import.
aarlt Mar 1, 2024
b630c0a
fix: rename RedundantAssignEliminator to UnusedAssignEliminator
minaminao Jul 27, 2023
8709ae9
fix: typos
minaminao Aug 17, 2023
f96a851
chore: update example version of solidity in docker command
minaminao Aug 17, 2023
0225d9d
Update installing-solidity.rst
mehtavishwa30 Mar 1, 2024
51b6976
Update installing-solidity.rst
mehtavishwa30 Mar 1, 2024
8f0cb8a
Update docs/installing-solidity.rst
mehtavishwa30 Mar 4, 2024
cbd8437
Fix python snippet causing "SyntaxWarning" in Scanner.
aarlt Mar 4, 2024
360c945
Merge pull request #14904 from ethereum/fix_cmdline_python_snippet
aarlt Mar 4, 2024
be9db7b
Merge pull request #14903 from ethereum/fix_missing_source_locations_…
ekpyron Mar 4, 2024
ad77fd7
EVMHost: Rename newlyCreatedAccounts to m_newlyCreatedAccounts
cameel Feb 6, 2024
41363d7
EVMHost: Reset m_newlyCreatedAccounts() in reset()
cameel Feb 6, 2024
c09d2c0
EVMHost: Note about newly created accounts not being rolled back
cameel Feb 11, 2024
edc494d
Merge pull request #14845 from ethereum/selfdestruct-testing-tweaks
cameel Mar 5, 2024
01ef5a6
English documentation updates up to v0.8.24-125-gedc494de1 (2024-03-06)
soldocsbot Mar 6, 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
25 changes: 18 additions & 7 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.10")
set(PROJECT_VERSION "0.8.25")
# 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 @@ -35,6 +35,8 @@ 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(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)

# Setup cccache.
include(EthCcache)
Expand All @@ -48,6 +50,14 @@ include_directories(SYSTEM ${JSONCPP_INCLUDE_DIR})

find_package(Threads)

if(NOT PEDANTIC)
message(WARNING "-- Pedantic build flags turned off. Warnings will not make compilation fail. This is NOT recommended in development builds.")
endif()

if (PROFILE_OPTIMIZER_STEPS)
add_definitions(-DPROFILE_OPTIMIZER_STEPS)
endif()

# Figure out what compiler and system are we using
include(EthCompilerSettings)

Expand All @@ -56,17 +66,17 @@ 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.8.12")
set(MINIMUM_Z3_VERSION "4.8.0")
set(LATEST_Z3_VERSION "4.12.1")
set(MINIMUM_Z3_VERSION "4.8.16")
find_package(Z3)
if (${Z3_FOUND})
if (${STRICT_Z3_VERSION})
Expand Down Expand Up @@ -130,6 +140,7 @@ add_subdirectory(libevmasm)
add_subdirectory(libyul)
add_subdirectory(libsolidity)
add_subdirectory(libsolc)
add_subdirectory(libstdlib)
add_subdirectory(tools)

if (NOT EMSCRIPTEN)
Expand Down
39 changes: 35 additions & 4 deletions docs/050-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,21 @@
* اکنون مشاهده عملکرد صریح اجباری است. عمومی ``public`` را به هر تابع و سازنده اضافه کنید، و به هر
توابع بازگشتی یا رابطی که نمایان بودن آن را قبلاً مشخص نکرده است، خارجی ``external`` اضافه کنید.

<<<<<<< HEAD
* مکان داده صریح برای همه متغیرهای ساختار، آرایه یا انواع نگاشت اکنون اجباری است. این همچنین برای
پارامترهای تابع و متغیرهای بازگشتی اعمال می شود. برای مثال، ``uint[] x = m_x`` را به ``uint[]`` ذخیره سازی
x = m_x، و تابع ``function f(uint[][] x)`` را به تابع ``function f(uint[][] memory x)`` تغییر دهید که در آن حافظه ``memory`` مکان داده است و
ممکن است بر این اساس با ذخیره سازی یا ``calldata`` جایگزین شود. توجه داشته باشید که توابع خارجی به
پارامترهایی با مکان داده ``calldata`` نیاز دارند.
=======
* Explicit data location for all variables of struct, array or mapping types is
now mandatory. This is also applied to function parameters and return
variables. For example, change ``uint[] x = z`` to ``uint[] storage x =
z``, and ``function f(uint[][] x)`` to ``function f(uint[][] memory x)``
where ``memory`` is the data location and might be replaced by ``storage`` or
``calldata`` accordingly. Note that ``external`` functions require
parameters with a data location of ``calldata``.
>>>>>>> english/develop

* انواع قراردادها دیگر شامل اعضای آدرس ``address``نمی شوند تا فضاهای نام جدا شوند. بنابراین، اکنون لازم است که
قبل از استفاده از یک عضو آدرس، مقادیر نوع قرارداد را به صراحت به آدرس تبدیل کنیم.
Expand Down Expand Up @@ -105,10 +115,15 @@
دریافت می کنید. قبل از نسخه 0.5.0 هر تبدیل بین ``bytesX`` و ``uintY`` از طریق ``uint8X`` انجام می شد.
به عنوان مثال ``uint8(bytes3(0x291807))`` به ``uint8(uint24(bytes3(0x291807)))`` تبدیل می شود (نتیجه ``0x07`` است).

<<<<<<< HEAD
* استفاده از ``msg.value`` در توابع غیر قابل پرداخت (یا معرفی آن از طریق یک modifier) به عنوان یک
ویژگی امنیتی مجاز نیست.
تابع را به قابل پرداخت ``payable`` تبدیل کنید یا یک تابع داخلی جدید برای منطق برنامه ایجاد کنید که از ``msg.value``
استفاده می کند.
=======
* For clarity reasons, the command-line interface now requires ``-`` if the
standard input is used as source.
>>>>>>> english/develop

* به دلایل وضوح، رابط خط فرمان اکنون نیاز دارد، ``-`` اگر ورودی استاندارد به عنوان منبع استفاده شود.

Expand All @@ -118,6 +133,7 @@
این بخش تغییراتی را لیست می کند که ویژگی ها یا نحو قبلی را منسوخ می کند. توجه داشته باشید که بسیاری
از این تغییرات قبلاً در حالت آزمایشی نسخه ``v0.5.0`` فعال شده بودند.

<<<<<<< HEAD
خط فرمان(کامند لاین) و رابط های JSON
-------------------------------------

Expand All @@ -128,6 +144,21 @@
* گزینه خط فرمان ``--julia`` به دلیل تغییر نام زبان میانی ``Julia`` به ``Yul`` به ``--yul`` تغییر نام داد.

* گزینه های خط فرمان ``--clone-bin`` و ``--combined-json clone-bin`` حذف شدند.
=======
Command-line and JSON Interfaces
--------------------------------

* 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
renaming of the intermediate language ``Julia`` to ``Yul``.

* The ``--clone-bin`` and ``--combined-json clone-bin`` command-line options
were removed.
>>>>>>> english/develop

* مپینگ مجدد با پیشوند خالی مجاز نیست.

Expand Down Expand Up @@ -434,7 +465,7 @@
return data;
}

using address_make_payable for address;
using AddressMakePayable for address;
// Data location for 'arr' must be specified
function g(uint[] memory /* arr */, bytes8 x, OtherContract otherContract, address unknownContract) public payable {
// 'otherContract.transfer' is not provided.
Expand All @@ -451,7 +482,7 @@
// 'address payable' should be used whenever possible.
// To increase clarity, we suggest the use of a library for
// the conversion (provided after the contract in this example).
address payable addr = unknownContract.make_payable();
address payable addr = unknownContract.makePayable();
require(addr.send(1 ether));

// Since uint32 (4 bytes) is smaller than bytes8 (8 bytes),
Expand All @@ -467,8 +498,8 @@

// We can define a library for explicitly converting ``address``
// to ``address payable`` as a workaround.
library address_make_payable {
function make_payable(address x) internal pure returns (address payable) {
library AddressMakePayable {
function makePayable(address x) internal pure returns (address payable) {
return address(uint160(x));
}
}
Expand Down
80 changes: 80 additions & 0 deletions docs/060-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,13 @@
تغییراتی که کامپایلر ممکن است در مورد آن هشدار ندهد
====================================================

<<<<<<< HEAD
این بخش تغییراتی را لیست می کند که در آن رفتار کد شما ممکن است تغییر کند بدون اینکه کامپایلر در مورد
آن به شما بگوید.
=======
This section lists changes where the behavior of your code might
change without the compiler telling you about it.
>>>>>>> english/develop

* نوع حاصل از یک توان، نوع پایه است. قبلاً کوچکترین نوع بود که می تواند هم نوع پایه و هم نوع توان را
مانند عملیات متقارن نگه دارد. علاوه بر این، انواع علامت‌دار برای پایه قدرت مجاز هستند.
Expand Down Expand Up @@ -49,7 +54,51 @@
مشاهده با همان نام در هیچ یک از پایه های آن وجود نداشته باشد.


<<<<<<< HEAD
تغییرات معنایی و نحوی
=======
Explicitness Requirements
=========================

This section lists changes where the code now needs to be more explicit,
but the semantics do not change.
For most of the topics the compiler will provide suggestions.

* Functions can now only be overridden when they are either marked with the
``virtual`` keyword or defined in an interface. Functions without
implementation outside an interface have to be marked ``virtual``.
When overriding a function or modifier, the new keyword ``override``
must be used. When overriding a function or modifier defined in multiple
parallel bases, all bases must be listed in parentheses after the keyword
like so: ``override(Base1, Base2)``.

* Member-access to ``length`` of arrays is now always read-only, even for storage arrays. It is no
longer possible to resize storage arrays by assigning a new value to their length. Use ``push()``,
``push(value)`` or ``pop()`` instead, or assign a full array, which will of course overwrite the existing content.
The reason behind this is to prevent storage collisions of gigantic
storage arrays.

* The new keyword ``abstract`` can be used to mark contracts as abstract. It has to be used
if a contract does not implement all its functions. Abstract contracts cannot be created using the ``new`` operator,
and it is not possible to generate bytecode for them during compilation.

* Libraries have to implement all their functions, not only the internal ones.

* The names of variables declared in inline assembly may no longer end in ``_slot`` or ``_offset``.

* Variable declarations in inline assembly may no longer shadow any declaration outside the inline assembly block.
If the name contains a dot, its prefix up to the dot may not conflict with any declaration outside the inline
assembly block.

* In inline assembly, opcodes that do not take arguments are now represented as "built-in functions" instead of standalone identifiers. So ``gas`` is now ``gas()``.

* State variable shadowing is now disallowed. A derived contract can only
declare a state variable ``x``, if there is no visible state variable with
the same name in any of its bases.


Semantic and Syntactic Changes
>>>>>>> english/develop
==============================

این بخش تغییراتی را لیست می کند که در آن باید کد خود را تغییر دهید و پس از آن کار دیگری انجام می دهد.
Expand Down Expand Up @@ -87,22 +136,42 @@
تغییرات رابط یا همان اینترفیس
=================

<<<<<<< HEAD
این بخش تغییراتی را لیست می‌کند که به خود زبان ارتباطی ندارند، اما روی رابط‌های کامپایلر تأثیر دارند. اینها ممکن است نحوه استفاده از کامپایلر را
در خط فرمان یا همان کامند لاین، نحوه استفاده از رابط قابل برنامه ریزی آن، یا نحوه تجزیه و تحلیل خروجی تولید شده توسط آن را تغییر دهند.
=======
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
interface, or how you analyze the output produced by it.
>>>>>>> english/develop


گزارشگر خطای جدید
~~~~~~~~~~~~~~~~~~

<<<<<<< HEAD
گزارشگر خطای جدیدی معرفی شد که هدف آن تولید پیام های خطا در دسترس تر در خط فرمان است. به طور پیش فرض فعال است، اما ارسال ``--old-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.
>>>>>>> english/develop

گزینه های هش متادیتا
~~~~~~~~~~~~~~~~~~~~~

<<<<<<< HEAD
کامپایلر اکنون هش `IPFS <https://ipfs.io/>`_ فایل فراداده را به‌طور پیش‌فرض به انتهای بایت کد اضافه می‌کند (برای جزئیات، مستندات مربوط به :doc:`contract metadata <metadata>` را ببینید). قبل از ورژن 0.6.0، کامپایلر هش سوارم `Swarm <https://ethersphere.github.io/swarm-home/>`_ را به طور پیش‌فرض اضافه می‌کرد و برای اینکه همچنان از این رفتار پشتیبانی
کند، گزینه جدید خط فرمان ``--metadata-hash`` معرفی شد که به شما اجازه می دهد تا با ارسال ``ipfs`` یا ``swarm`` به عنوان مقدار به گزینه خط
فرمان ``--metadata-hash`` هش مورد نظر برای تولید و الحاق را انتخاب کنید.
ارسال مقدار ``none`` به طور کامل هش را حذف می کند.
=======
The compiler now appends the `IPFS <https://ipfs.io/>`_ hash of the metadata file to the end of the bytecode by default
(for details, see documentation on :doc:`contract metadata <metadata>`). Before 0.6.0, the compiler appended the
`Swarm <https://ethersphere.github.io/swarm-home/>`_ hash by default, and in order to still support this behavior,
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.
>>>>>>> english/develop


این تغییرات همچنین می تواند از طریق رابط :ref:`Standard JSON Interface<compiler-api>` مورد استفاده قرار گیرد و فراداده JSON تولید شده توسط کامپایلر را تحت تأثیر قرار
Expand Down Expand Up @@ -151,4 +220,15 @@ this change consistent, ``solidity_free`` was renamed to ``solidity_reset``, the

* شناسه‌های منحصربه‌فرد را برای اعلان‌های متغیر در مجموعه درون خطی انتخاب کنید که با اعلان‌های خارج از بلوک اسمبلی درون خطی تضاد ندارند.

<<<<<<< HEAD
* مجازی ``virtual`` را به هر تابع غیر رابطی که قصد لغو آن را دارید اضافه کنید. ``virtual`` را به همه توابع بدون اجرای رابط های خارجی اضافه کنید. برای وراثت تکی، به هر تابع نادیده ``override`` اضافه کنید. برای وراثت چندگانه، ``override(A, B, ..)`` را اضافه کنید، جایی که تمام قراردادهایی را که تابع لغو را در پرانتز تعریف می کنند، لیست می کنید. هنگامی که چندین پایه یک تابع را تعریف می کنند، قرارداد ارثی باید همه عملکردهای متضاد را لغو کند.
=======
* Add ``virtual`` to every non-interface function you intend to override. Add ``virtual``
to all functions without implementation outside interfaces. For single inheritance, add
``override`` to every overriding function. For multiple inheritance, add ``override(A, B, ..)``,
where you list all contracts that define the overridden function in the parentheses. When
multiple bases define the same function, the inheriting contract must override all conflicting functions.

* In inline assembly, add ``()`` to all opcodes that do not otherwise accept an argument.
For example, change ``pc`` to ``pc()``, and ``gas`` to ``gas()``.
>>>>>>> english/develop
12 changes: 6 additions & 6 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 @@ -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)
Loading