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
Added new conversion instructions that avoid trapping when converting a floating-point number to an integer [#proposal-cvtsat]_.
29
+
30
+
* New :ref:`numeric instructions <syntax-instr-numeric>`: :math:`\K{i}\X{nn}\K{.}\TRUNC\K{\_sat\_f}\X{mm}\K{\_}\sx`
31
+
32
+
33
+
.. index:: block, function, value type, result type
34
+
35
+
Multiple values
36
+
...............
37
+
38
+
Generalized the result type of blocks and functions to allow for multiple values; in addition, introduced the ability to have block parameters [#proposal-multivalue]_.
39
+
40
+
* :ref:`Function types <syntax-functype>` allow more than one result
41
+
42
+
* :ref:`Block types <syntax-blocktype>` can be arbitrary function types
43
+
44
+
45
+
.. index:: value type, reference, reference type, instruction, element segment
46
+
47
+
Reference types
48
+
...............
49
+
50
+
Added |FUNCREF| and |EXTERNREF| as new value types and respective instructions [#proposal-reftype]_.
51
+
52
+
* New :ref:`value types <syntax-valtype>`: :ref:`reference types <syntax-reftype>` |FUNCREF| and |EXTERNREF|
53
+
54
+
* New :ref:`reference instructions <syntax-instr-ref>`: |REFNULL|, |REFFUNC|, |REFISNULL|
55
+
56
+
* Enrich :ref:`parametric instruction <syntax-instr-parametric>`: |SELECT| with optional type immediate
57
+
58
+
* New :ref:`declarative <syntax-elemmode>` form of :ref:`element segment <syntax-elem>`
59
+
60
+
61
+
.. index:: reference, instruction, table, table type
62
+
63
+
Table instructions
64
+
..................
65
+
66
+
Added instructions to directly access and modify tables [#proposal-reftype]_.
67
+
68
+
* :ref:`Table types <syntax-tabletype>` allow any :ref:`reference type <syntax-reftype>` as element type
69
+
70
+
* New :ref:`table instructions <syntax-instr-table>`: |TABLEGET|, |TABLESET|, |TABLESIZE|, |TABLEGROW|
71
+
72
+
73
+
.. index:: table, instruction, table index, element segment
74
+
75
+
Multiple tables
76
+
...............
77
+
78
+
Added the ability to use multiple tables per module [#proposal-reftype]_.
79
+
80
+
* :ref:`Modules <syntax-module>` may :ref:`define <syntax-table>`, :ref:`import <syntax-import>`, and :ref:`export <syntax-export>` multiple tables
81
+
82
+
* :ref:`Table instructions <syntax-instr-table>` take a :ref:`table index <syntax-tableidx>` immediate: |TABLEGET|, |TABLESET|, |TABLESIZE|, |TABLEGROW|, |CALLINDIRECT|
83
+
84
+
* :ref:`Element segments <syntax-elem>` take a :ref:`table index <syntax-tableidx>`
85
+
86
+
87
+
.. index:: instruction, table, memory, data segment, element segment
88
+
89
+
Bulk memory and table instructions
90
+
..................................
91
+
92
+
Added instructions that modify ranges of memory or table entries [#proposal-reftype]_ [#proposal-bulk]_
93
+
94
+
* New :ref:`memory instructions <syntax-instr-memory>`: |MEMORYFILL|, |MEMORYINIT|, |MEMORYCOPY|, |DATADROP|
95
+
96
+
* New :ref:`table instructions <syntax-instr-table>`: |TABLEFILL|, |TABLEINIT|, |TABLECOPY|, |ELEMDROP|
97
+
98
+
* New :ref:`passive <syntax-datamode>` form of :ref:`data segment <syntax-data>`
99
+
100
+
* New :ref:`passive <syntax-elemmode>` form of :ref:`element segment <syntax-elem>`
101
+
102
+
* New :ref:`data count section <binary-datacountsec>` in binary format
103
+
104
+
* Active data and element segments boundaries are no longer checked at compile time but may trap instead
Copy file name to clipboardExpand all lines: document/core/appendix/properties.rst
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -360,7 +360,8 @@ Module instances are classified by *module contexts*, which are regular :ref:`co
360
360
361
361
* Let :math:`\globaltype^\ast` be the concatenation of all :math:`\globaltype_i` in order.
362
362
363
-
* Then the module instance is valid with :ref:`context <context>` :math:`\{\CTYPES~\functype^\ast, \CFUNCS~{\functype'}^\ast, \CTABLES~\tabletype^\ast, \CMEMS~\memtype^\ast, \CGLOBALS~\globaltype^\ast\}`.
363
+
* | Then the module instance is valid with :ref:`context <context>`
0 commit comments