mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Support petersburg in evmVersion
This commit is contained in:
committed by
chriseth
parent
68e1bf47d5
commit
ecd246aeb6
@@ -162,7 +162,6 @@ Note that the order of arguments can be seen to be reversed in non-functional st
|
||||
Opcodes marked with ``-`` do not push an item onto the stack (do not return a result),
|
||||
those marked with ``*`` are special and all others push exactly one item onto the stack (their "return value").
|
||||
Opcodes marked with ``F``, ``H``, ``B`` or ``C`` are present since Frontier, Homestead, Byzantium or Constantinople, respectively.
|
||||
Constantinople is still in planning and all instructions marked as such will result in an invalid instruction exception.
|
||||
|
||||
In the following, ``mem[a...b)`` signifies the bytes of memory starting at position ``a`` up to
|
||||
but not including position ``b`` and ``storage[p]`` signifies the storage contents at position ``p``.
|
||||
|
||||
+13
-10
@@ -108,18 +108,21 @@ at each version. Backward compatibility is not guaranteed between each version.
|
||||
|
||||
- ``homestead`` (oldest version)
|
||||
- ``tangerineWhistle``
|
||||
- gas cost for access to other accounts increased, relevant for gas estimation and the optimizer.
|
||||
- all gas sent by default for external calls, previously a certain amount had to be retained.
|
||||
- Gas cost for access to other accounts increased, relevant for gas estimation and the optimizer.
|
||||
- All gas sent by default for external calls, previously a certain amount had to be retained.
|
||||
- ``spuriousDragon``
|
||||
- gas cost for the ``exp`` opcode increased, relevant for gas estimation and the optimizer.
|
||||
- Gas cost for the ``exp`` opcode increased, relevant for gas estimation and the optimizer.
|
||||
- ``byzantium`` (**default**)
|
||||
- opcodes ``returndatacopy``, ``returndatasize`` and ``staticcall`` are available in assembly.
|
||||
- the ``staticcall`` opcode is used when calling non-library view or pure functions, which prevents the functions from modifying state at the EVM level, i.e., even applies when you use invalid type conversions.
|
||||
- it is possible to access dynamic data returned from function calls.
|
||||
- Opcodes ``returndatacopy``, ``returndatasize`` and ``staticcall`` are available in assembly.
|
||||
- The ``staticcall`` opcode is used when calling non-library view or pure functions, which prevents the functions from modifying state at the EVM level, i.e., even applies when you use invalid type conversions.
|
||||
- It is possible to access dynamic data returned from function calls.
|
||||
- ``revert`` opcode introduced, which means that ``revert()`` will not waste gas.
|
||||
- ``constantinople`` (still in progress)
|
||||
- opcodes ``shl``, ``shr`` and ``sar`` are available in assembly.
|
||||
- shifting operators use shifting opcodes and thus need less gas.
|
||||
- ``constantinople``
|
||||
- Opcodes ``create2`, ``extcodehash``, ``shl``, ``shr`` and ``sar`` are available in assembly.
|
||||
- Shifting operators use shifting opcodes and thus need less gas.
|
||||
- ``petersburg``
|
||||
- The compiler behaves the same way as with constantinople.
|
||||
|
||||
|
||||
.. _compiler-api:
|
||||
|
||||
@@ -216,7 +219,7 @@ Input Description
|
||||
"yulDetails": {}
|
||||
}
|
||||
},
|
||||
"evmVersion": "byzantium", // Version of the EVM to compile for. Affects type checking and code generation. Can be homestead, tangerineWhistle, spuriousDragon, byzantium or constantinople
|
||||
"evmVersion": "byzantium", // Version of the EVM to compile for. Affects type checking and code generation. Can be homestead, tangerineWhistle, spuriousDragon, byzantium, constantinople or petersburg
|
||||
// Metadata settings (optional)
|
||||
"metadata": {
|
||||
// Use only literal content and not URLs (false by default)
|
||||
|
||||
Reference in New Issue
Block a user