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
{{ message }}
This repository was archived by the owner on Apr 25, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: document/core/valid/instructions.rst
+12-3Lines changed: 12 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -1415,20 +1415,29 @@ Control Instructions
1415
1415
:math:`\TRY~\blocktype~\instr^\ast~\DELEGATE~l`
1416
1416
...............................................
1417
1417
1418
-
.. todo::
1419
-
Add prose.
1418
+
* The label :math:`C.\CLABELS[l]` must be defined in the context.
1419
+
1420
+
* The :ref:`block type <syntax-blocktype>` must be :ref:`valid <valid-blocktype>` as some :ref:`function type <syntax-functype>` :math:`[t_1^\ast] \to [t_2^\ast]`.
1421
+
1422
+
* Let :math:`C'` be the same :ref:`context <context>` as :math:`C`, but with the :ref:`result type <syntax-resulttype>` :math:`[t_2^\ast]` prepended to the |CLABELS| vector.
1423
+
1424
+
* Under context :math:`C'`,
1425
+
the instruction sequence :math:`\instr^\ast` must be :ref:`valid <valid-instr-seq>` with type :math:`[t_1^\ast] \to [t_2^\ast]`.
1420
1426
1421
1427
.. math::
1422
1428
\frac{
1423
1429
C \vdashblocktype\blocktype : [t_1^\ast] \to [t_2^\ast]
C \vdashinstrseq\TRY~\blocktype~\instr^\ast~\DELEGATE~l : [t_1^\ast]\to[t_2^\ast]
1430
1436
}
1431
1437
1438
+
.. note::
1439
+
The :ref:`label index <syntax-labelidx>` space in the :ref:`context <context>` :math:`C` contains the most recent label first, so that :math:`C.\CLABELS[l]` performs a relative lookup as expected.
0 commit comments