Skip to content

English documentation updates up to v0.8.25 #467

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

Open
wants to merge 171 commits into
base: develop
Choose a base branch
from
Open

Conversation

r0qs
Copy link

@r0qs r0qs commented Feb 14, 2025

Manual sync PR to update docs in this repository to the state as of Solidity version 0.8.25.

How to work on a sync PR

Resolve conflicts and translate newly added text

  • The PR includes all documentation changes from the main repository since the last time a sync PR was merged. If this translation repository is fully caught up with the English version, translate any newly added English text you see here by pushing more commits to the PR. However, if the translation is incomplete, you may prefer to leave the text added in this PR and add it to your translation checklist to handle at a later time.
  • Scan the PR for merge conflict markers. If there were changes in the English text that has already been translated, the PR will contain merge conflicts that need to be resolved:
    <<<<<<< HEAD
        El valor más grande representable por el tipo ``T``.
    =======
        The smallest value representable by type ``T``.
    >>>>>>> 800088e38b5835ebdc71e9ba5299a70a5accd7c2
    The top part of the conflict is the current translation (corresponding to the old English text), the bottom shows the new English text. To solve the conflict simply translate the new text, possibly reusing parts of the current translation. After doing so, do not forget to remove the conflict markers.
  • You may get conflicts also if there were structual changes that did not affect the meaning of the text and therefore do not require retranslation. For example when text is moved from one page to another, you will find matching conflicts in two places and the solution is to move the translation to the new spot. If only whitespace changed, it may even seem like there was no change at all but if there is a conflict, there is always a reason, however trivial it may be. Be careful, though, because there is a possibility that the text was both moved and modified.

Work on one sync PR at a time

  • Sync PRs are produced by the translation bot in regular intervals as long as there are changes in the English documentation. You will not lose any updates by closing this PR. The next sync PR will also include them. The latest sync PR will always include all changes that need to be done. If you haven't worked on any sync PR yet and there are several open sync PRs in your repo, choose the latest (newest) one to get started.
  • It is recommended to work only on one sync PR at a time. Close this PR if you are already working on a different one.
  • Once you merge this PR, the conflict resolutions and new commits you pushed to it are likely to cause conflicts with other open sync PRs. It is possible solve these conflicts if you are proficient with git and fully understand what changed in which PR, but for simplicity it is recommended to close all pending sync PRs and wait for a fresh one, which will no longer include the merged changes.

Do not squash merge or rebase this PR

Rebasing or squashing a sync PR erases the information about the commits that the changes originally came from, which will result in extra conflicts in the next sync PR.
If you do it by accident, don't worry - simply make sure to handle the next sync PR properly, which will restore the missing commits.

nikola-matic and others added 30 commits January 25, 2024 11:14
Yul proto fuzzer: Add mcopy builtin to generator.
…nreachable-instantiation-errors

Remove unreachable errors from instantiation processing in `TypeInference`
…pe-variables

Fixed type variables for functions, type classes and types in new analysis
…hai-matchers-ext-test-openzeppelin

Fix openzeppelin external test
…sing-aliases

solidity grammar: add a new rule `usingAliases` for `usingDirective`
…m-value-type-docs

Remove dynamic byte arrays from value types section
…-std-from-yulphaser

Purge using namespace std from test/yulPhaser
…module-requests

Install dependencies and add symbolic link for python3
cameel and others added 30 commits March 8, 2024 17:05
Separate nightly-ossfuzz workflow from nightly workflow
…recations

Move deprecated evm versions to nightly CI workflow
Previously, CHC engine with SMT interface would always call Eldarica if
it was present in the system, regardless whether user specified
model-checker-solver as smtlib2 or eld.
Here we make sure Eldarica is called only when it is specified as the
solver of choice.

The proposed solution is to make SMTSolverCommand modifiable and set it
up properly based on the user settings. This requires changes also in
UniversalCallback, because in the compiler we must be able to check if
the given callback is UniversalCallback provided by CommandLineInterface.

This mechanism can be used to migrate also other solvers to the SMTLIB
interface by further extending/adapting SMTSolverCommand.
Its advantage is that meaning of the callback stays the same, thus there
is not need to change anything on the side of solc-js.
SMTChecker: Fix usage of Eldarica with SMT callback
…lation-with-via-ir

Fix unnecessary compilation when `--via-ir` is used on its own
…settings-ext-tests

Add hardhat networks settings external tests
…-or-default

Use move ctor instead of copy ctor in stringOrDefault
Clean up docs to with regards to changes in SELFDESTRUCT opcode
# Conflicts:
#	.circleci/config.yml
#	.circleci/soltest_all.sh
#	Changelog.md
#	ReleaseChecklist.md
#	docs/bugs.rst
#	docs/cheatsheet.rst
#	docs/contracts/function-modifiers.rst
#	docs/contracts/inheritance.rst
#	docs/contributing.rst
#	docs/examples/micropayment.rst
#	docs/installing-solidity.rst
#	docs/internals/optimizer.rst
#	docs/introduction-to-smart-contracts.rst
#	docs/metadata.rst
#	docs/natspec-format.rst
#	docs/smtchecker.rst
#	docs/style-guide.rst
#	docs/types/value-types.rst
#	docs/units-and-global-variables.rst
#	docs/using-the-compiler.rst
#	libevmasm/Assembly.cpp
#	libevmasm/AssemblyItem.h
#	libevmasm/CommonSubexpressionEliminator.cpp
#	libevmasm/CommonSubexpressionEliminator.h
#	libevmasm/ConstantOptimiser.h
#	libevmasm/ControlFlowGraph.cpp
#	libevmasm/ExpressionClasses.cpp
#	libevmasm/ExpressionClasses.h
#	libevmasm/GasMeter.cpp
#	libevmasm/GasMeter.h
#	libevmasm/Inliner.cpp
#	libevmasm/Instruction.cpp
#	libevmasm/Instruction.h
#	libevmasm/KnownState.cpp
#	libevmasm/KnownState.h
#	libevmasm/PeepholeOptimiser.cpp
#	libevmasm/SemanticInformation.cpp
#	libevmasm/SimplificationRules.cpp
#	libevmasm/SimplificationRules.h
#	liblangutil/CMakeLists.txt
#	liblangutil/EVMVersion.h
#	liblangutil/ErrorReporter.cpp
#	liblangutil/ErrorReporter.h
#	liblangutil/Token.h
#	libsmtutil/SolverInterface.h
#	libsolidity/analysis/NameAndTypeResolver.cpp
#	libsolidity/ast/AST.h
#	libsolidity/ast/ASTAnnotations.h
#	libsolidity/ast/ASTForward.h
#	libsolidity/ast/ASTVisitor.h
#	libsolidity/ast/AST_accept.h
#	libsolidity/codegen/YulUtilFunctions.cpp
#	libsolidity/experimental/analysis/TypeInference.cpp
#	libsolidity/experimental/analysis/TypeInference.h
#	libsolidity/experimental/ast/TypeSystem.cpp
#	libsolidity/experimental/ast/TypeSystem.h
#	libsolidity/experimental/ast/TypeSystemHelper.cpp
#	libsolidity/experimental/ast/TypeSystemHelper.h
#	libsolidity/formal/ModelCheckerSettings.h
#	libsolidity/formal/Predicate.cpp
#	libsolidity/formal/SymbolicTypes.cpp
#	libsolidity/interface/CompilerStack.cpp
#	libsolidity/interface/SMTSolverCommand.cpp
#	libsolidity/interface/SMTSolverCommand.h
#	libsolidity/interface/StandardCompiler.h
#	libsolidity/interface/UniversalCallback.h
#	libsolidity/lsp/Transport.h
#	libsolidity/parsing/Parser.cpp
#	libsolidity/parsing/Parser.h
#	libsolutil/Assertions.h
#	libsolutil/cxx20.h
#	libyul/AST.h
#	libyul/ASTForward.h
#	libyul/AsmAnalysis.cpp
#	libyul/AsmParser.cpp
#	libyul/AsmParser.h
#	libyul/AsmPrinter.cpp
#	libyul/AsmPrinter.h
#	libyul/backends/evm/ConstantOptimiser.h
#	libyul/backends/evm/ControlFlowGraph.h
#	libyul/backends/evm/ControlFlowGraphBuilder.cpp
#	libyul/backends/evm/ControlFlowGraphBuilder.h
#	libyul/backends/evm/OptimizedEVMCodeTransform.cpp
#	libyul/backends/evm/OptimizedEVMCodeTransform.h
#	libyul/optimiser/ConditionalSimplifier.cpp
#	libyul/optimiser/ControlFlowSimplifier.cpp
#	libyul/optimiser/ExpressionSplitter.cpp
#	libyul/optimiser/ForLoopConditionIntoBody.cpp
#	libyul/optimiser/ForLoopConditionOutOfBody.cpp
#	libyul/optimiser/SSATransform.cpp
#	libyul/optimiser/SimplificationRules.cpp
#	libyul/optimiser/SimplificationRules.h
#	libyul/optimiser/StackCompressor.cpp
#	libyul/optimiser/StackToMemoryMover.cpp
#	scripts/check_style.sh
#	scripts/error_codes.py
#	scripts/externalTests/common.sh
#	scripts/externalTests/runners/base.py
#	scripts/externalTests/test_helpers.py
#	scripts/gas_diff_stats.py
#	scripts/tests.sh
#	solc/CommandLineInterface.cpp
#	solc/CommandLineInterface.h
#	test/Common.cpp
#	test/CommonSyntaxTest.cpp
#	test/EVMHost.cpp
#	test/EVMHost.h
#	test/ExecutionFramework.cpp
#	test/ExecutionFramework.h
#	test/FilesystemUtils.cpp
#	test/Metadata.cpp
#	test/TestCase.cpp
#	test/TestCaseReader.cpp
#	test/cmdlineTests.sh
#	test/cmdlineTests/asm_json_import_all_valid_flags/output
#	test/cmdlineTests/asm_json_import_difficulty_prevrandao/output
#	test/cmdlineTests/asm_json_import_hex_subassembly_indices/output
#	test/cmdlineTests/asm_json_import_random_order_data_index/output
#	test/cmdlineTests/debug_info_in_yul_snippet_escaping/output
#	test/cmdlineTests/function_debug_info/output
#	test/cmdlineTests/linking_standard_solidity_unresolved_references/output.json
#	test/cmdlineTests/metadata/output
#	test/cmdlineTests/name_simplifier/output
#	test/cmdlineTests/standard_metadata/output.json
#	test/cmdlineTests/standard_outputs_on_compilation_error/output.json
#	test/cmdlineTests/viair_subobject_optimization/output
#	test/cmdlineTests/yul_optimizer_steps_without_optimize_empty_sequence/output
#	test/cmdlineTests/yul_string_format_ascii/output.json
#	test/cmdlineTests/yul_string_format_ascii_long/output.json
#	test/compilationTests/corion/ico.sol
#	test/evmc/evmc.h
#	test/externalTests/bleeps.sh
#	test/externalTests/brink.sh
#	test/externalTests/chainlink.sh
#	test/externalTests/colony.sh
#	test/externalTests/elementfi.sh
#	test/externalTests/ens.sh
#	test/externalTests/euler.sh
#	test/externalTests/gnosis.sh
#	test/externalTests/gp2.sh
#	test/externalTests/perpetual-pools.sh
#	test/externalTests/pool-together.sh
#	test/externalTests/prb-math.py
#	test/externalTests/trident.sh
#	test/externalTests/uniswap.sh
#	test/externalTests/yield-liquidator.sh
#	test/externalTests/zeppelin.sh
#	test/libsolidity/GasCosts.cpp
#	test/libsolidity/SemanticTest.cpp
#	test/libsolidity/StandardCompiler.cpp
#	test/libsolidity/gasTests/abiv2.sol
#	test/libsolidity/gasTests/abiv2_optimised.sol
#	test/libsolidity/semanticTests/abiEncoderV1/abi_encode_calldata_slice.sol
#	test/libsolidity/semanticTests/abiEncoderV2/abi_encode_calldata_slice.sol
#	test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2.sol
#	test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_function_inherited_in_v1_contract.sol
#	test/libsolidity/semanticTests/abiEncoderV2/abi_encode_v2_in_modifier_used_in_v1_contract.sol
#	test/libsolidity/semanticTests/abiEncoderV2/calldata_array.sol
#	test/libsolidity/semanticTests/abiEncoderV2/calldata_overlapped_dynamic_arrays.sol
#	test/libsolidity/semanticTests/abiEncoderV2/storage_array_encoding.sol
#	test/libsolidity/semanticTests/abiencodedecode/abi_decode_simple_storage.sol
#	test/libsolidity/semanticTests/arithmetics/check_var_init.sol
#	test/libsolidity/semanticTests/array/constant_var_as_array_length.sol
#	test/libsolidity/semanticTests/array/copying/bytes_storage_to_storage.sol
#	test/libsolidity/semanticTests/array/copying/cleanup_during_multi_element_per_slot_copy.sol
#	test/libsolidity/semanticTests/array/copying/copy_byte_array_in_struct_to_storage.sol
#	test/libsolidity/semanticTests/array/copying/function_type_array_to_storage.sol
#	test/libsolidity/semanticTests/array/copying/storage_memory_nested_bytes.sol
#	test/libsolidity/semanticTests/array/fixed_arrays_as_return_type.sol
#	test/libsolidity/semanticTests/array/fixed_arrays_in_constructors.sol
#	test/libsolidity/semanticTests/array/function_array_cross_calls.sol
#	test/libsolidity/semanticTests/array/pop/byte_array_pop_masking_long.sol
#	test/libsolidity/semanticTests/array/reusing_memory.sol
#	test/libsolidity/semanticTests/byte_array_to_storage_cleanup.sol
#	test/libsolidity/semanticTests/constructor/arrays_in_constructors.sol
#	test/libsolidity/semanticTests/constructor/bytes_in_constructors_packer.sol
#	test/libsolidity/semanticTests/constructor/bytes_in_constructors_unpacker.sol
#	test/libsolidity/semanticTests/constructor/constructor_arguments_external.sol
#	test/libsolidity/semanticTests/constructor/constructor_function_complex.sol
#	test/libsolidity/semanticTests/constructor/constructor_static_array_argument.sol
#	test/libsolidity/semanticTests/constructor/no_callvalue_check.sol
#	test/libsolidity/semanticTests/constructor_inheritance_init_order.sol
#	test/libsolidity/semanticTests/constructor_inheritance_init_order_2.sol
#	test/libsolidity/semanticTests/constructor_with_params.sol
#	test/libsolidity/semanticTests/constructor_with_params_diamond_inheritance.sol
#	test/libsolidity/semanticTests/constructor_with_params_inheritance.sol
#	test/libsolidity/semanticTests/events/event_emit_from_other_contract.sol
#	test/libsolidity/semanticTests/externalContracts/FixedFeeRegistrar.sol
#	test/libsolidity/semanticTests/externalContracts/base64.sol
#	test/libsolidity/semanticTests/externalContracts/deposit_contract.sol
#	test/libsolidity/semanticTests/externalContracts/prbmath_signed.sol
#	test/libsolidity/semanticTests/externalContracts/prbmath_unsigned.sol
#	test/libsolidity/semanticTests/externalContracts/ramanujan_pi.sol
#	test/libsolidity/semanticTests/externalContracts/strings.sol
#	test/libsolidity/semanticTests/freeFunctions/new_operator.sol
#	test/libsolidity/semanticTests/functionCall/creation_function_call_no_args.sol
#	test/libsolidity/semanticTests/functionCall/creation_function_call_with_args.sol
#	test/libsolidity/semanticTests/functionCall/creation_function_call_with_salt.sol
#	test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting.sol
#	test/libsolidity/semanticTests/functionCall/external_call_to_nonexisting_debugstrings.sol
#	test/libsolidity/semanticTests/functionCall/failed_create.sol
#	test/libsolidity/semanticTests/functionCall/gas_and_value_basic.sol
#	test/libsolidity/semanticTests/functionCall/gas_and_value_brace_syntax.sol
#	test/libsolidity/semanticTests/functionCall/send_zero_ether.sol
#	test/libsolidity/semanticTests/functionTypes/store_function.sol
#	test/libsolidity/semanticTests/immutable/multi_creation.sol
#	test/libsolidity/semanticTests/immutable/use_scratch.sol
#	test/libsolidity/semanticTests/inheritance/address_overload_resolution.sol
#	test/libsolidity/semanticTests/inheritance/inherited_function_calldata_calldata_interface.sol
#	test/libsolidity/semanticTests/inheritance/inherited_function_calldata_memory_interface.sol
#	test/libsolidity/semanticTests/inheritance/member_notation_ctor.sol
#	test/libsolidity/semanticTests/inheritance/value_for_constructor.sol
#	test/libsolidity/semanticTests/inlineAssembly/blobhash_pre_cancun.sol
#	test/libsolidity/semanticTests/inlineAssembly/transient_storage_low_level_calls.sol
#	test/libsolidity/semanticTests/inlineAssembly/transient_storage_selfdestruct.sol
#	test/libsolidity/semanticTests/inlineAssembly/tstore_hidden_staticcall.sol
#	test/libsolidity/semanticTests/isoltestTesting/balance_other_contract.sol
#	test/libsolidity/semanticTests/operators/userDefined/operator_making_pure_external_call.sol
#	test/libsolidity/semanticTests/operators/userDefined/operator_making_view_external_call.sol
#	test/libsolidity/semanticTests/salted_create/prediction_example.sol
#	test/libsolidity/semanticTests/salted_create/salted_create.sol
#	test/libsolidity/semanticTests/salted_create/salted_create_with_value.sol
#	test/libsolidity/semanticTests/smoke/alignment.sol
#	test/libsolidity/semanticTests/smoke/constructor.sol
#	test/libsolidity/semanticTests/state/blockhash_basic.sol
#	test/libsolidity/semanticTests/structs/copy_from_mapping.sol
#	test/libsolidity/semanticTests/structs/copy_substructures_from_mapping.sol
#	test/libsolidity/semanticTests/structs/copy_substructures_to_mapping.sol
#	test/libsolidity/semanticTests/structs/copy_to_mapping.sol
#	test/libsolidity/semanticTests/userDefinedValueType/erc20.sol
#	test/libsolidity/semanticTests/using/using_global_invisible.sol
#	test/libsolidity/semanticTests/various/address_code.sol
#	test/libsolidity/semanticTests/various/code_access_content.sol
#	test/libsolidity/semanticTests/various/code_access_create.sol
#	test/libsolidity/semanticTests/various/code_access_runtime.sol
#	test/libsolidity/semanticTests/various/code_length.sol
#	test/libsolidity/semanticTests/various/create_calldata.sol
#	test/libsolidity/semanticTests/various/erc20.sol
#	test/libsolidity/semanticTests/various/external_types_in_calls.sol
#	test/libsolidity/semanticTests/various/many_subassemblies.sol
#	test/libsolidity/semanticTests/various/negative_stack_height.sol
#	test/libsolidity/semanticTests/various/selfdestruct_post_cancun.sol
#	test/libsolidity/semanticTests/various/selfdestruct_post_cancun_multiple_beneficiaries.sol
#	test/libsolidity/semanticTests/various/selfdestruct_post_cancun_redeploy.sol
#	test/libsolidity/semanticTests/various/selfdestruct_pre_cancun.sol
#	test/libsolidity/semanticTests/various/selfdestruct_pre_cancun_multiple_beneficiaries.sol
#	test/libsolidity/semanticTests/various/selfdestruct_pre_cancun_redeploy.sol
#	test/libsolidity/semanticTests/various/senders_balance.sol
#	test/libsolidity/semanticTests/various/skip_dynamic_types_for_structs.sol
#	test/libsolidity/semanticTests/various/staticcall_for_view_and_pure.sol
#	test/libsolidity/semanticTests/various/value_complex.sol
#	test/libsolidity/semanticTests/various/value_insane.sol
#	test/libsolidity/smtCheckerTests/imports/import_base.sol
#	test/libsolidity/smtCheckerTests/types/string_1.sol
#	test/libsolidity/syntaxTests/experimental/builtin/builtin_type_definition.sol
#	test/libsolidity/syntaxTests/experimental/inference/polymorphic_function_call.sol
#	test/libsolidity/syntaxTests/experimental/inference/polymorphic_type.sol
#	test/libsolidity/syntaxTests/experimental/inference/polymorphic_type_abs_and_rep.sol
#	test/libsolidity/syntaxTests/experimental/inference/polymorphic_type_instantiation_and_operators.sol
#	test/libsolidity/syntaxTests/inlineAssembly/blobhash_pre_cancun_not_declared.sol
#	test/libsolidity/syntaxTests/inlineAssembly/mcopy_pre_cancun.sol
#	test/libsolidity/syntaxTests/inlineAssembly/transient_storage_invalid_pre_cancun.sol
#	test/libsolidity/syntaxTests/sizeLimits/bytecode_too_large.sol
#	test/libsolidity/syntaxTests/sizeLimits/combined_too_large_shanghai.sol
#	test/libsolidity/syntaxTests/sizeLimits/initcode_too_large_shanghai.sol
#	test/libsolidity/syntaxTests/types/magic_block_blobbasefee_error.sol
#	test/libsolidity/util/SoltestTypes.h
#	test/libsolidity/util/TestFileParser.cpp
#	test/libsolidity/util/TestFileParserTests.cpp
#	test/libsolidity/util/TestFunctionCall.cpp
#	test/libsolidity/util/TestFunctionCall.h
#	test/libsolidity/util/TestFunctionCallTests.cpp
#	test/libyul/yulInterpreterTests/mcopy.yul
#	test/soltest.cpp
#	test/tools/isoltest.cpp
#	test/tools/ossfuzz/README.md
#	test/tools/ossfuzz/protoToYul.cpp
#	test/tools/ossfuzz/protoToYul.h
#	test/tools/ossfuzz/yulProto.proto
#	test/tools/yulInterpreter/Inspector.cpp
#	test/tools/yulInterpreter/Inspector.h
#	test/yulPhaser/AlgorithmRunner.cpp
#	test/yulPhaser/Chromosome.cpp
#	test/yulPhaser/Common.cpp
#	test/yulPhaser/FitnessMetrics.cpp
#	test/yulPhaser/GeneticAlgorithms.cpp
#	test/yulPhaser/Mutations.cpp
#	test/yulPhaser/PairSelections.cpp
#	test/yulPhaser/Phaser.cpp
#	test/yulPhaser/Population.cpp
#	test/yulPhaser/Program.cpp
#	test/yulPhaser/ProgramCache.cpp
#	test/yulPhaser/Selections.cpp
#	test/yulPhaser/SimulationRNG.cpp
#	test/yulPhaser/TestHelpers.cpp
#	test/yulPhaser/TestHelpersTest.cpp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.