@@ -297,7 +297,7 @@ canon    ::= 0x00 0x00 f:<core:funcidx> opts:<opts> ft:<typeidx> => (canon lift
297297           | 0x05                                                => (canon task.cancel (core func)) 🔀 
298298           | 0x0a 0x7f i:<u32>                                   => (canon context.get i32 i (core func)) 🔀 
299299           | 0x0b 0x7f i:<u32>                                   => (canon context.set i32 i (core func)) 🔀 
300-            | 0x0c cancel?:<cancel?>                              => (canon yield cancel? (core func)) 🔀 
300+            | 0x0c cancel?:<cancel?>                              => (canon thread. yield cancel? (core func)) 🔀 
301301           | 0x06 async?:<async?>                                => (canon subtask.cancel async? (core func)) 🔀 
302302           | 0x0d                                                => (canon subtask.drop (core func)) 🔀 
303303           | 0x0e t:<typeidx>                                    => (canon stream.new t (core func)) 🔀 
@@ -322,13 +322,21 @@ canon    ::= 0x00 0x00 f:<core:funcidx> opts:<opts> ft:<typeidx> => (canon lift
322322           | 0x21 cancel?:<cancel?> m:<core:memidx>              => (canon waitable-set.poll cancel? (memory m) (core func)) 🔀 
323323           | 0x22                                                => (canon waitable-set.drop (core func)) 🔀 
324324           | 0x23                                                => (canon waitable.join (core func)) 🔀 
325-            | 0x40 ft:<typeidx>                                   => (canon thread.spawn_ref ft (core func)) 🧵 
326-            | 0x41 ft:<typeidx> tbl:<core:tableidx>               => (canon thread.spawn_indirect ft tbl (core func)) 🧵 
327-            | 0x42                                                => (canon thread.available_parallelism (core func)) 🧵 
325+            | 0x26                                                => (canon thread.index (core func)) 🧵 
326+            | 0x27 ft:<typeidx> tbl:<core:tableidx>               => (canon thread.new-indirect ft tbl (core func)) 🧵 
327+            | 0x28 cancel?:<cancel?>                              => (canon thread.switch-to cancel? (core func)) 🧵 
328+            | 0x29 cancel?:<cancel?>                              => (canon thread.suspend cancel? (core func)) 🧵 
329+            | 0x2a                                                => (canon thread.resume-later (core func)) 🧵 
330+            | 0x2b cancel?:<cancel?>                              => (canon thread.yield-to cancel? (core func)) 🧵 
331+            | 0x40 shared?:<sh?> ft:<typeidx>                     => (canon thread.spawn-ref shared? ft (core func)) 🧵② 
332+            | 0x41 shared?:<sh?> ft:<typeidx> tbl:<core:tableidx> => (canon thread.spawn-indirect shared? ft tbl (core func)) 🧵② 
333+            | 0x42 shared?:<sh?>                                  => (canon thread.available-parallelism shared? (core func)) 🧵② 
328334async?   ::= 0x00                                                => 
329335           | 0x01                                                => async 
330336cancel?  ::= 0x00                                                => 
331337           | 0x01                                                => cancellable 🚟 
338+ sh?      ::= 0x00                                                => 
339+            | 0x01                                                => shared 🧵② 
332340opts     ::= opt*:vec(<canonopt>)                                => opt* 
333341canonopt ::= 0x00                                                => string-encoding=utf8 
334342           | 0x01                                                => string-encoding=utf16 
@@ -512,6 +520,8 @@ named once.
512520  repurposed.
513521*  Most built-ins should have a ` <canonopt>* `  immediate instead of an ad hoc
514522  subset of ` canonopt ` s.
523+ *  Add optional ` shared `  immediate to all canonical definitions (explicitly or
524+   via ` <canonopt> ` ) when shared-everything-threads (🧵②) is added.
515525
516526
517527[ `core:byte` ] : https://webassembly.github.io/spec/core/binary/values.html#binary-byte 
0 commit comments