diff --git a/document/core/appendix/changes.rst b/document/core/appendix/changes.rst index 0efcee2ae..8d0973260 100644 --- a/document/core/appendix/changes.rst +++ b/document/core/appendix/changes.rst @@ -661,6 +661,54 @@ mirroring the role of custom sections in the binary format. [#proposal-annot]_ * Defined :ref:`custom annotation ` :math:`\text{(@custom~"\dots")}` to represent arbitrary :ref:`custom sections ` in the text format +.. index:: descriptor type, describes, descriptor, exact, exact type use, exact defined type, structure type, reference type, heap type, external type, function, import, instruction +.. _extension-custom-descriptors: + +Custom Descriptors +.................. + +Added custom descriptors for :ref:`structure types ` and :ref:`exact ` concrete :ref:`heap types `. [#proposal-custom-descriptors]_ + +* Extended :ref:`sub types ` with :ref:`descriptor types ` (:math:`\TDESCRIBES~\typeuse` and :math:`\TDESCRIPTOR~\typeuse` clauses) associating :ref:`structure types ` with custom descriptor types + +* Extended concrete :ref:`heap types ` with :ref:`exact ` :ref:`type uses ` :math:`\EXACT~\typeuse` and corresponding :ref:`subtyping ` rules + +* Extended function :ref:`external types ` with optional exactness (:math:`\XTFUNC~\EXACT^?~\typeuse`) and refined :ref:`function validation ` to classify defined functions with :ref:`exact defined types ` + +* Refined result types of :ref:`reference `, :ref:`structure `, and :ref:`array ` allocation instructions to produce :ref:`exact ` references: + + - |REFFUNC| (for defined functions and exact function imports) + - |STRUCTNEW| + - |STRUCTNEWDEFAULT| + - |ARRAYNEW| + - |ARRAYNEWDEFAULT| + - |ARRAYNEWFIXED| + - |ARRAYNEWDATA| + - |ARRAYNEWELEM| + +* Relaxed :ref:`validation ` of :ref:`branch-on-cast instructions ` so the target type need not be a subtype of the operand type: + + - |BRONCAST| + - |BRONCASTFAIL| + +* New :ref:`structure instructions `: + + - |STRUCTNEWDESC| + - |STRUCTNEWDEFAULTDESC| + +* New :ref:`reference ` and :ref:`control ` instructions: + + - |REFGETDESC| + - |REFCASTDESCEQ| + - |BRONCASTDESCEQ| + - |BRONCASTDESCEQFAIL| + +* Extended set of :ref:`constant instructions ` with: + + - |STRUCTNEWDESC| + - |STRUCTNEWDEFAULTDESC| + + .. [#proposal-extconst] https://github.com/WebAssembly/spec/tree/main/proposals/extended-const/ @@ -687,3 +735,6 @@ mirroring the role of custom sections in the binary format. [#proposal-annot]_ .. [#proposal-annot] https://github.com/WebAssembly/spec/tree/main/proposals/annotations/ + +.. [#proposal-custom-descriptors] + https://github.com/WebAssembly/spec/tree/main/proposals/custom-descriptors/