From 19e2a47d9db5ba533c3f81789f222e30eafba3ac Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 12 Apr 2021 08:55:42 +0200 Subject: [PATCH 1/3] Remove obsolete notes --- document/core/binary/instructions.rst | 6 ------ 1 file changed, 6 deletions(-) diff --git a/document/core/binary/instructions.rst b/document/core/binary/instructions.rst index 17aa5f439f..a43826a3cf 100644 --- a/document/core/binary/instructions.rst +++ b/document/core/binary/instructions.rst @@ -71,9 +71,6 @@ Control Instructions Unlike any :ref:`other occurrence `, the :ref:`type index ` in a :ref:`block type ` is encoded as a positive :ref:`signed integer `, so that its |SignedLEB128| bit pattern cannot collide with the encoding of :ref:`value types ` or the special code :math:`\hex{40}`, which correspond to the LEB128 encoding of negative integers. To avoid any loss in the range of allowed indices, it is treated as a 33 bit signed integer. - In future versions of WebAssembly, the zero byte occurring in the encoding - of the |CALLINDIRECT| instruction may be used to index additional tables. - .. index:: reference instruction pair: binary format; instruction @@ -95,9 +92,6 @@ Reference Instructions \hex{D2}~~x{:}\Bfuncidx &\Rightarrow& \REFFUNC~x \\ \end{array} -.. note:: - These opcode assignments are preliminary. - .. index:: parametric instruction, value type, polymorphism pair: binary format; instruction From e12f9819c28edeca5fe5deaacd37bb8a67d69546 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 12 Apr 2021 09:09:41 +0200 Subject: [PATCH 2/3] Fix empty typeuses --- document/core/text/instructions.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/document/core/text/instructions.rst b/document/core/text/instructions.rst index 89a2758243..a9ea1e0e39 100644 --- a/document/core/text/instructions.rst +++ b/document/core/text/instructions.rst @@ -71,7 +71,7 @@ However, the special case of a type use that is syntactically empty or consists & \begin{array}[t]{@{}lcll@{}} (t{:}\Tresult)^? &\Rightarrow& t^? \\ - x,I'{:}\Ttypeuse_I &\Rightarrow& x & (\iff I' = \{\}) \\ + x,I'{:}\Ttypeuse_I &\Rightarrow& x & (\iff I' = \{\ILOCALS~(\epsilon)^\ast\}) \\ \end{array} \\ \production{block instruction} & \Tblockinstr_I &::=& \text{block}~~I'{:}\Tlabel_I~~\X{bt}{:}\Tblocktype~~(\X{in}{:}\Tinstr_{I'})^\ast~~\text{end}~~\Tid^? @@ -113,7 +113,7 @@ All other control instruction are represented verbatim. \text{return} &\Rightarrow& \RETURN \\ &&|& \text{call}~~x{:}\Tfuncidx_I &\Rightarrow& \CALL~x \\ &&|& \text{call\_indirect}~~x{:}\Ttableidx~~y,I'{:}\Ttypeuse_I &\Rightarrow& \CALLINDIRECT~x~y - & (\iff I' = \{\}) \\ + & (\iff I' = \{\ILOCALS~(\epsilon)^\ast\}) \\ \end{array} .. note:: From 1e28ee198db245d44e1842065c5355b6d1717005 Mon Sep 17 00:00:00 2001 From: Andreas Rossberg Date: Mon, 12 Apr 2021 12:03:14 +0200 Subject: [PATCH 3/3] Adapt note --- document/core/text/instructions.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/document/core/text/instructions.rst b/document/core/text/instructions.rst index a9ea1e0e39..031beb3413 100644 --- a/document/core/text/instructions.rst +++ b/document/core/text/instructions.rst @@ -87,7 +87,7 @@ However, the special case of a type use that is syntactically empty or consists \end{array} .. note:: - The side condition stating that the :ref:`identifier context ` :math:`I'` must be empty in the rule for |Ttypeuse| block types enforces that no identifier can be bound in any |Tparam| declaration for a block type. + The side condition stating that the :ref:`identifier context ` :math:`I'` must only contain unnamed entries in the rule for |Ttypeuse| block types enforces that no identifier can be bound in any |Tparam| declaration for a block type. .. _text-nop: @@ -117,7 +117,7 @@ All other control instruction are represented verbatim. \end{array} .. note:: - The side condition stating that the :ref:`identifier context ` :math:`I'` must be empty in the rule for |CALLINDIRECT| enforces that no identifier can be bound in any |Tparam| declaration appearing in the type annotation. + The side condition stating that the :ref:`identifier context ` :math:`I'` must only contain unnamed entries in the rule for |CALLINDIRECT| enforces that no identifier can be bound in any |Tparam| declaration appearing in the type annotation. Abbreviations