mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Update note to add further details on current status of YUL
Clarify further Changes from reviews Grammar polish Changes from review Update docs/yul.rst Co-Authored-By: ChrisChinchilla <chriswhward@gmail.com> Update docs/yul.rst Co-Authored-By: ChrisChinchilla <chriswhward@gmail.com> Polish suggestions Update docs/yul.rst Co-Authored-By: ChrisChinchilla <chriswhward@gmail.com>
This commit is contained in:
parent
3df4936b6f
commit
d49e181a90
27
docs/yul.rst
27
docs/yul.rst
@ -6,16 +6,14 @@ Yul
|
||||
|
||||
.. index:: ! assembly, ! asm, ! evmasm, ! yul, julia, iulia
|
||||
|
||||
Yul (previously also called JULIA or IULIA) is an intermediate language that can
|
||||
compile to various different backends
|
||||
(EVM 1.0, EVM 1.5 and eWASM are planned).
|
||||
Because of that, it is designed to be a usable common denominator of all three
|
||||
platforms.
|
||||
It can already be used for "inline assembly" inside Solidity and
|
||||
future versions of the Solidity compiler will even use Yul as intermediate
|
||||
language. It should also be easy to build high-level optimizer stages for Yul.
|
||||
Yul (previously also called JULIA or IULIA) is an intermediate language that can be
|
||||
compiled to bytecode for different backends.
|
||||
|
||||
In its flavour of inline-assembly, Yul can be used as a language setting
|
||||
Support for EVM 1.0, EVM 1.5 and eWASM is planned, and it is designed to be a usable common denominator of all three
|
||||
platforms. It can already be used for "inline assembly" inside Solidity and future versions of the Solidity compiler
|
||||
will use Yul as an intermediate language. Yul is a good target for high-level optimisation stages that can benefit all target platforms equally.
|
||||
|
||||
With the "inline assembly" flavour, Yul can be used as a language setting
|
||||
for the :ref:`standard-json interface <compiler-api>`:
|
||||
|
||||
::
|
||||
@ -29,15 +27,12 @@ for the :ref:`standard-json interface <compiler-api>`:
|
||||
}
|
||||
}
|
||||
|
||||
Furthermore, the commandline interface can be switched to Yul mode
|
||||
using ``solc --strict-assembly``.
|
||||
And on the command line interface with the ``--strict-assembly`` parameter.
|
||||
|
||||
.. note::
|
||||
.. warning::
|
||||
|
||||
Note that the flavour used for "inline assembly" does not have types
|
||||
(everything is ``u256``) and the built-in functions are identical
|
||||
to the EVM opcodes. Please resort to the inline assembly documentation
|
||||
for details.
|
||||
Yul is in active development and bytecode generation is fully implemented only for untyped Yul (everything is ``u256``)
|
||||
and with EVM 1.0 as target, :ref:`EVM opcodes <opcodes>` are used as built-in functions.
|
||||
|
||||
The core components of Yul are functions, blocks, variables, literals,
|
||||
for-loops, if-statements, switch-statements, expressions and assignments to variables.
|
||||
|
Loading…
Reference in New Issue
Block a user