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-103-gdba754ec3 (2024-02-24) #15

Open
wants to merge 2,742 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2742 commits
Select commit Hold shift + click to select a range
b187d06
Merge pull request #14534 from pgebal/pgebal/operators
Oct 22, 2023
f8282a6
Add tests that fail.
bshastry Oct 9, 2023
a3ad63e
Add missing optimizer dependencies for fullSimplify and loadResolver …
bshastry Oct 18, 2023
1b7652e
Merge pull request #14597 from ethereum/add-steps-to-full-simplify
bshastry Oct 23, 2023
f0f2393
cmdlineTests.sh: Remove the empty line after the pre-release warning …
cameel Oct 10, 2023
2f01aa3
Issue a deprecation warning for byzantium and older EVM versions
cameel Oct 6, 2023
127a390
docs: Fix broken style in the description of shanghai EVM features
cameel Oct 10, 2023
1b5775a
Merge pull request #14591 from ethereum/old-evm-deprecation-warning
cameel Oct 23, 2023
2b8c997
Special case code generation for for loops.
ekpyron Aug 10, 2022
f294988
Fix broken docs link for 0.8.22
nikola-matic Oct 24, 2023
9efa752
Merge pull request #14637 from ethereum/fix-broken-docs-links-0-8-22
nikola-matic Oct 24, 2023
2cce9c7
Merge pull request #13378 from ethereum/forLoopSpecialCaseCodegen
ekpyron Oct 24, 2023
e8b898c
ASTImportTest.sh: Keep temporary files in subdirs of a single, proper…
cameel Oct 24, 2023
3e823e0
Introduce AbstractAssemblyStack interface
cameel Oct 24, 2023
67e11fc
EVM assembly import via --import-asm-json
aarlt Nov 2, 2022
91c7b32
CLI test for mass EVM assembly import/export
aarlt Nov 2, 2022
c7e5212
Merge pull request #13673 from ethereum/import-asm-json-updated
ekpyron Oct 24, 2023
a582684
Set release date for 0.8.21 and update the bug list
cameel Oct 25, 2023
4fc1097
Merge pull request #14642 from ethereum/set-release-date-0.8.22
cameel Oct 25, 2023
609ef15
Set version to 0.8.23
nikola-matic Oct 25, 2023
28ee5d3
Merge pull request #14645 from ethereum/set-version-to-0-8-23
cameel Oct 25, 2023
23bcc69
Fix wrong file path in standard json tests
nikola-matic Oct 26, 2023
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
b7054bb
English documentation updates up to v0.8.24-103-gdba754ec3 (2024-02-24)
soldocsbot Feb 24, 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
152 changes: 152 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
cmake_minimum_required(VERSION 3.13.0)

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 "${PROJECT_SOURCE_DIR}/.git")
set(DEFAULT_BUILD_TYPE "RelWithDebInfo")
else()
set(DEFAULT_BUILD_TYPE "Release")
endif()
set(CMAKE_BUILD_TYPE "${DEFAULT_BUILD_TYPE}" CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel" FORCE)
set_property(CACHE CMAKE_BUILD_TYPE PROPERTY STRINGS "Debug" "Release" "RelWithDebInfo" "MinSizeRel")
endif()

include(EthToolchains)

# Set cmake_policies
include(EthPolicy)
eth_policy()

# project name and version should be set after cmake_policy CMP0048
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)

include(TestBigEndian)
TEST_BIG_ENDIAN(IS_BIG_ENDIAN)
if (IS_BIG_ENDIAN)
message(FATAL_ERROR "${PROJECT_NAME} currently does not support big endian systems.")
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)

# Let's find our dependencies
include(EthDependencies)
include(fmtlib)
include(jsoncpp)
include(range-v3)
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)

# Include utils
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 ${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("${PROJECT_SOURCE_DIR}/cmake/templates/license.h.in" include/license.h)

include(EthOptions)
configure_project(TESTS)
set(LATEST_Z3_VERSION "4.12.1")
set(MINIMUM_Z3_VERSION "4.8.16")
find_package(Z3)
if (${Z3_FOUND})
if (${STRICT_Z3_VERSION})
if (NOT ("${Z3_VERSION_STRING}" VERSION_EQUAL ${LATEST_Z3_VERSION}))
message(
FATAL_ERROR
"SMTChecker tests require Z3 ${LATEST_Z3_VERSION} for all tests to pass.\n\
Build with -DSTRICT_Z3_VERSION=OFF if you want to use a different version. \
You can also use -DUSE_Z3=OFF to build without Z3. In both cases use --no-smt when running tests."
)
endif()
else()
if ("${Z3_VERSION_STRING}" VERSION_LESS ${MINIMUM_Z3_VERSION})
message(
FATAL_ERROR
"Solidity requires Z3 ${MINIMUM_Z3_VERSION} or newer. You can also use -DUSE_Z3=OFF to build without Z3."
)
endif()
endif()
endif()

if(${USE_Z3_DLOPEN})
add_definitions(-DHAVE_Z3)
add_definitions(-DHAVE_Z3_DLOPEN)
find_package(Python3 COMPONENTS Interpreter)
if(${Z3_FOUND})
get_target_property(Z3_HEADER_HINTS z3::libz3 INTERFACE_INCLUDE_DIRECTORIES)
endif()
find_path(Z3_HEADER_PATH z3.h HINTS ${Z3_HEADER_HINTS})
if(Z3_HEADER_PATH)
set(Z3_FOUND TRUE)
else()
message(SEND_ERROR "Dynamic loading of Z3 requires Z3 headers to be present at build time.")
endif()
if(NOT ${Python3_FOUND})
message(SEND_ERROR "Dynamic loading of Z3 requires Python 3 to be present at build time.")
endif()
if(${SOLC_LINK_STATIC})
message(SEND_ERROR "solc cannot be linked statically when dynamically loading Z3.")
endif()
elseif (${Z3_FOUND})
add_definitions(-DHAVE_Z3)
message("Z3 SMT solver found. This enables optional SMT checking with Z3.")
endif()

find_package(CVC4 QUIET)
if (${CVC4_FOUND})
add_definitions(-DHAVE_CVC4)
message("CVC4 SMT solver found. This enables optional SMT checking with CVC4.")
endif()

if (NOT (${Z3_FOUND} OR ${CVC4_FOUND}))
message("No SMT solver found (or it has been forcefully disabled). Optional SMT checking will not be available.\
\nPlease install Z3 or CVC4 or remove the option disabling them (USE_Z3, USE_CVC4).")
endif()

add_subdirectory(libsolutil)
add_subdirectory(liblangutil)
add_subdirectory(libsmtutil)
add_subdirectory(libevmasm)
add_subdirectory(libyul)
add_subdirectory(libsolidity)
add_subdirectory(libsolc)
add_subdirectory(libstdlib)
add_subdirectory(tools)

if (NOT EMSCRIPTEN)
add_subdirectory(solc)
endif()

if (TESTS AND NOT EMSCRIPTEN)
add_subdirectory(test)
endif()
39 changes: 35 additions & 4 deletions docs/050-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -87,13 +87,23 @@ Untuk sebagian besar topik, kompiler akan memberikan saran.
fungsi dan konstruktor, dan ``external`` ke setiap fungsi fallback atau interface
yang belum menentukan visibilitasnya.

<<<<<<< HEAD
* Lokasi data eksplisit untuk semua variabel tipe struct, array, atau mapping
sekarang wajib. Ini juga diterapkan pada parameter fungsi dan variabel
return. Misalnya, ubah ``uint[] x = m_x`` menjadi ``uint[] storage x =
m_x``, dan ``function f(uint[][] x)`` menjadi ``function f(uint[ ][] memory x)``
di mana ``memory`` adalah lokasi data dan dapat diganti dengan ``storage`` atau
``calldata`` yang sesuai. Perhatikan bahwa fungsi ``external`` memerlukan parameter
dengan lokasi data ``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

* Jenis kontrak tidak lagi menyertakan anggota ``address``
untuk memisahkan namespace. Oleh karena itu, sekarang perlu
Expand Down Expand Up @@ -136,8 +146,13 @@ Untuk sebagian besar topik, kompiler akan memberikan saran.
atau buat fungsi internal baru untuk logika program yang menggunakan
``msg.value``.

<<<<<<< HEAD
* Untuk alasan kejelasan, command line interface sekarang memerlukan ``-`` jika input
standar digunakan sebagai sumber.
=======
* For clarity reasons, the command-line interface now requires ``-`` if the
standard input is used as source.
>>>>>>> english/develop

Elemen Usang
============
Expand All @@ -146,6 +161,7 @@ Bagian ini mencantumkan perubahan yang menghentikan fitur atau sintaks sebelumny
banyak dari perubahan ini sudah diaktifkan dalam mode eksperimental
``v0.5.0``.

<<<<<<< HEAD
Command Line dan JSON Interfaces
--------------------------------

Expand All @@ -157,6 +173,21 @@ Command Line dan JSON Interfaces
penggantian nama bahasa perantara ``Julia`` menjadi ``Yul``.

* Opsi baris perintah ``--clone-bin`` dan ``--combined-json clone-bin`` telah dihapus.
=======
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

* Remapping dengan awalan kosong tidak diizinkan.

Expand Down Expand Up @@ -475,7 +506,7 @@ Versi baru:
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 @@ -492,7 +523,7 @@ Versi baru:
// '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 @@ -508,8 +539,8 @@ Versi baru:

// 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));
}
}
44 changes: 44 additions & 0 deletions docs/060-breaking-changes.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,13 @@ Untuk daftar lengkap cek
Perubahan yang Mungkin Tidak Diperingatkan oleh Kompiler
========================================================

<<<<<<< HEAD
Bagian ini mencantumkan perubahan di mana perilaku kode Anda mungkin
berubah tanpa kompiler memberi tahu Anda tentang hal itu.
=======
This section lists changes where the behavior of your code might
change without the compiler telling you about it.
>>>>>>> english/develop

* Jenis eksponensial yang dihasilkan adalah jenis basis. Dulunya adalah tipe terkecil
yang dapat menampung tipe basis dan tipe eksponen, seperti halnya operasi simetris.
Expand Down Expand Up @@ -51,9 +56,17 @@ Untuk sebagian besar topik, kompiler akan memberikan saran.
Jika nama mengandung titik, awalan hingga titik tidak boleh bertentangan dengan deklarasi apa pun di luar inline
assembly blok.

<<<<<<< HEAD
* Pembayangan variabel state sekarang tidak diizinkan. Kontrak turunan hanya bisa
mendeklarasikan variabel state ``x``, jika tidak ada variabel state yang terlihat dengan
nama yang sama di salah satu basisnya.
=======
* 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.
>>>>>>> english/develop


Perubahan Semantic dan Syntactic
Expand Down Expand Up @@ -100,25 +113,45 @@ atau lebih sulit untuk dicapai.
Perubahan Interface
===================

<<<<<<< HEAD
Bagian ini mencantumkan perubahan yang tidak terkait dengan bahasa itu sendiri, tetapi memiliki efek pada antarmuka
kompiler. Ini dapat mengubah cara Anda menggunakan kompiler pada baris perintah, cara Anda menggunakan antarmuka
yang dapat diprogram, atau cara Anda menganalisis output yang dihasilkan olehnya.
=======
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

Reporter Error Baru
~~~~~~~~~~~~~~~~~~~

<<<<<<< HEAD
Reporter kesalahan baru diperkenalkan, yang bertujuan untuk menghasilkan pesan kesalahan yang lebih mudah diakses di baris perintah.
Ini diaktifkan secara default, tetapi meneruskan ``--old-reporter`` akan mengembalikan ke pelapor kesalahan lama yang tidak digunakan lagi.
=======
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

Metadata Hash Options
~~~~~~~~~~~~~~~~~~~~~

<<<<<<< HEAD
Kompiler sekarang menambahkan hash `IPFS <https://ipfs.io/>`_ dari file metadata ke akhir bytecode secara default
(untuk detailnya, lihat dokumentasi di :doc:`contract metadata <metadata>`). Sebelum 0.6.0, kompiler menambahkan
`Swarm <https://ethersphere.github.io/swarm-home/>`_ hash secara default, dan untuk tetap mendukung perilaku ini,
opsi baris perintah baru ``--metadata-hash`` diperkenalkan. Ini memungkinkan Anda untuk memilih hash yang akan diproduksi dan
ditambahkan, dengan meneruskan ``ipfs`` atau ``swarm`` sebagai nilai ke opsi baris perintah ``--metadata-hash``.
Meneruskan nilai ``none`` akan menghapus hash sepenuhnya.
=======
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

Perubahan ini juga dapat digunakan melalui :ref:`Standard JSON Interface<compiler-api>` dan mempengaruhi metadata JSON yang dihasilkan oleh compiler.

Expand Down Expand Up @@ -168,8 +201,19 @@ Bagian ini memberikan petunjuk terperinci tentang cara memperbarui kode sebelumn
* Pilih pengidentifikasi unik untuk deklarasi variabel di inline assembly yang tidak bertentangan
dengan deklarasi di luar blok rakitan sebaris.

<<<<<<< HEAD
* Tambahkan ``virtual`` ke setiap fungsi non-antarmuka yang ingin Anda timpa. Tambahkan ``virtual``
ke semua fungsi tanpa implementasi di luar antarmuka. Untuk pewarisan tunggal, tambahkan ``override``
ke setiap fungsi utama. Untuk pewarisan berganda, tambahkan ``override(A, B, ..)``, tempat Anda
mencantumkan semua kontrak yang mendefinisikan fungsi yang diganti dalam tanda kurung. Ketika beberap
basis mendefinisikan fungsi yang sama, kontrak pewarisan harus mengesampingkan semua fungsi yang bertentangan.
=======
* 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
Loading