Skip to content

Commit 9ec5829

Browse files
committed
Add note about future handle type lifting/lowering options
1 parent 0d65079 commit 9ec5829

File tree

1 file changed

+14
-8
lines changed

1 file changed

+14
-8
lines changed

design/mvp/Explainer.md

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -628,14 +628,20 @@ contain the opaque address of a resource and avoid copying the resource when
628628
passed across component boundaries. By way of metaphor to operating systems,
629629
handles are analogous to file descriptors, which are stored in a table and may
630630
only be used indirectly by untrusted user-mode processes via their integer
631-
index in the table. In the Component Model, handles are lifted-from and
632-
lowered-into `i32` values that index an encapsulated per-component-instance
633-
*handle table* that is maintained by the canonical function definitions
634-
described [below](#canonical-definitions). The uniqueness and dropping
635-
conditions mentioned above are enforced at runtime by the Component Model
636-
through these canonical definitions. The `typeidx` immediate of a handle type
637-
must refer to a `resource` type (described below) that statically classifies
638-
the particular kinds of resources the handle can point to.
631+
index in the table.
632+
633+
In the Component Model, handles are lifted-from and lowered-into `i32` values
634+
that index an encapsulated per-component-instance *handle table* that is
635+
maintained by the canonical function definitions described
636+
[below](#canonical-definitions). In the future, handles could be
637+
backwards-compatibly lifted and lowered from [reference types] (via the
638+
addition of a new `canonopt`, as introduced [below](#canonical-abi)).
639+
640+
The uniqueness and dropping conditions mentioned above are enforced at runtime
641+
by the Component Model through these canonical definitions. The `typeidx`
642+
immediate of a handle type must refer to a `resource` type (described below)
643+
that statically classifies the particular kinds of resources the handle can
644+
point to.
639645

640646
#### Specialized value types
641647

0 commit comments

Comments
 (0)