You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: document/core/appendix/properties.rst
+1-5Lines changed: 1 addition & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,11 +29,7 @@ Contexts
29
29
In order to check :ref:`rolled up <aux-roll-rectype>` recursive types,
30
30
the :ref:`context <context>` is locally extended with an additional component that records the :ref:`sub type <syntax-subtype>` corresponding to each :ref:`recursive type index <syntax-rectypeidx>` within the current :ref:`recursive type <syntax-rectype>`:
31
31
32
-
.. math::
33
-
\begin{array}{llll}
34
-
\production{context} & C &::=&
35
-
\{~ \dots, \CRECS ~ \subtype^\ast ~\} \\
36
-
\end{array}
32
+
$${syntax: context/sem}
37
33
38
34
39
35
.. index:: value type, reference type, heap type, bottom type, sub type, recursive type, recursive type index
Copy file name to clipboardExpand all lines: document/core/valid/conventions.rst
+5-2Lines changed: 5 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -218,7 +218,7 @@ Validity of an individual definition is specified relative to a *context*,
218
218
which collects relevant information about the surrounding :ref:`module <syntax-module>` and the definitions in scope:
219
219
220
220
* *Types*: the list of :ref:`types <syntax-type>` defined in the current module.
221
-
* *Recursive Types*: the list of :ref:`sub types <syntax-subtype>` in the current group of recursive types.
221
+
..* *Recursive Types*: the list of :ref:`sub types <syntax-subtype>` in the current group of recursive types.
222
222
* *Functions*: the list of :ref:`functions <syntax-func>` declared in the current module, represented by a :ref:`defined type <syntax-deftype>` that :ref:`expands <aux-expand-deftype>` to their :ref:`function type <syntax-functype>`.
223
223
* *Tables*: the list of :ref:`tables <syntax-table>` declared in the current module, represented by their :ref:`table type <syntax-tabletype>`.
224
224
* *Memories*: the list of :ref:`memories <syntax-mem>` declared in the current module, represented by their :ref:`memory type <syntax-memtype>`.
@@ -238,7 +238,10 @@ The label stack is the only part of the context that changes as validation of an
238
238
239
239
More concretely, contexts are defined as :ref:`records <notation-record>` ${:C} with abstract syntax:
240
240
241
-
$${syntax: context}
241
+
$${syntax: context/syn}
242
+
243
+
.. note::
244
+
The definition of contexts is :ref:`extended <context-ext>` with additional fields for the purpose of proving :ref:`type soundness <soundness>`.
Copy file name to clipboardExpand all lines: document/core/valid/instructions.rst
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -33,7 +33,7 @@ Two degrees of polymorphism can be distinguished:
33
33
the entire (or most of the) :ref:`instruction type <syntax-instrtype>` ${instrtype: t_1* -> t_2*} of the instruction is unconstrained.
34
34
That is the case for all :ref:`control instructions <valid-instr-control>` that perform an *unconditional control transfer*, such as ${:UNREACHABLE}, ${:BR}, or ${:RETURN}.
35
35
36
-
In both cases, the unconstrained types or type sequences can be chosen arbitrarily, as long as they meet the constraints imposed for the surrounding parts of the program.
36
+
In both cases, the unconstrained types or type sequences can be chosen arbitrarily, as long as they are valid in the current :ref:`context <context>` and meet the constraints imposed for the surrounding parts of the program.
37
37
38
38
.. note::
39
39
For example, the ${:SELECT} instruction is valid with type ${instrtype: t t I32 -> t}, for any possible :ref:`number type <syntax-numtype>` ${:t}.
0 commit comments