@@ -297,7 +297,7 @@ canon ::= 0x00 0x00 f:<core:funcidx> opts:<opts> ft:<typeidx> => (canon lift
297
297
| 0x05 => (canon task.cancel (core func)) 🔀
298
298
| 0x0a 0x7f i:<u32> => (canon context.get i32 i (core func)) 🔀
299
299
| 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)) 🔀
301
301
| 0x06 async?:<async?> => (canon subtask.cancel async? (core func)) 🔀
302
302
| 0x0d => (canon subtask.drop (core func)) 🔀
303
303
| 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
322
322
| 0x21 cancel?:<cancel?> m:<core:memidx> => (canon waitable-set.poll cancel? (memory m) (core func)) 🔀
323
323
| 0x22 => (canon waitable-set.drop (core func)) 🔀
324
324
| 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)) 🧵②
328
334
async? ::= 0x00 =>
329
335
| 0x01 => async
330
336
cancel? ::= 0x00 =>
331
337
| 0x01 => cancellable 🚟
338
+ sh? ::= 0x00 =>
339
+ | 0x01 => shared 🧵②
332
340
opts ::= opt*:vec(<canonopt>) => opt*
333
341
canonopt ::= 0x00 => string-encoding=utf8
334
342
| 0x01 => string-encoding=utf16
@@ -512,6 +520,8 @@ named once.
512
520
repurposed.
513
521
* Most built-ins should have a ` <canonopt>* ` immediate instead of an ad hoc
514
522
subset of ` canonopt ` s.
523
+ * Add optional ` shared ` immediate to all canonical definitions (explicitly or
524
+ via ` <canonopt> ` ) when shared-everything-threads (🧵②) is added.
515
525
516
526
517
527
[ `core:byte` ] : https://webassembly.github.io/spec/core/binary/values.html#binary-byte
0 commit comments