@@ -214,7 +214,7 @@ label' ::= len:<u32> l:<label> => l (if len = |l|)
214
214
valtype ::= i:<typeidx> => i
215
215
| pvt:<primvaltype> => pvt
216
216
resourcetype ::= 0x3f 0x7f f?:<funcidx>? => (resource (rep i32) (dtor f)?)
217
- | 0x3e 0x7f f:<funcidx> cb?:<funcidx>? => (resource (rep i32) (dtor async f (callback cb)?)) 🚝
217
+ | 0x3e 0x7f f:<funcidx> cb?:<funcidx>? => (resource (rep i32) (dtor async f (callback cb)?)) 🧵
218
218
functype ::= 0x40 ps:<paramlist> rs:<resultlist> => (func ps rs)
219
219
paramlist ::= lt*:vec(<labelvaltype>) => (param lt)*
220
220
resultlist ::= 0x00 t:<valtype> => (result t)
@@ -288,14 +288,13 @@ canon ::= 0x00 0x00 f:<core:funcidx> opts:<opts> ft:<typeidx> => (canon lift
288
288
| 0x01 0x00 f:<funcidx> opts:<opts> => (canon lower f opts (core func))
289
289
| 0x02 rt:<typeidx> => (canon resource.new rt (core func))
290
290
| 0x03 rt:<typeidx> => (canon resource.drop rt (core func))
291
- | 0x07 rt:<typeidx> => (canon resource.drop rt async (core func)) 🚝
291
+ | 0x07 rt:<typeidx> => (canon resource.drop rt async (core func)) 🧵
292
292
| 0x04 rt:<typeidx> => (canon resource.rep rt (core func))
293
293
| 0x08 => (canon backpressure.set (core func)) 🔀
294
294
| 0x09 rs:<resultlist> opts:<opts> => (canon task.return rs opts (core func)) 🔀
295
295
| 0x05 => (canon task.cancel (core func)) 🔀
296
296
| 0x0a 0x7f i:<u32> => (canon context.get i32 i (core func)) 🔀
297
297
| 0x0b 0x7f i:<u32> => (canon context.set i32 i (core func)) 🔀
298
- | 0x0c cancel?:<cancel?> => (canon yield cancel? (core func)) 🔀
299
298
| 0x06 async?:<async?> => (canon subtask.cancel async? (core func)) 🔀
300
299
| 0x0d => (canon subtask.drop (core func)) 🔀
301
300
| 0x0e t:<typeidx> => (canon stream.new t (core func)) 🔀
@@ -320,13 +319,20 @@ canon ::= 0x00 0x00 f:<core:funcidx> opts:<opts> ft:<typeidx> => (canon lift
320
319
| 0x21 cancel?:<cancel?> m:<core:memidx> => (canon waitable-set.poll cancel? (memory m) (core func)) 🔀
321
320
| 0x22 => (canon waitable-set.drop (core func)) 🔀
322
321
| 0x23 => (canon waitable.join (core func)) 🔀
323
- | 0x40 ft:<typeidx> => (canon thread.spawn_ref ft (core func)) 🧵
324
- | 0x41 ft:<typeidx> tbl:<core:tableidx> => (canon thread.spawn_indirect ft tbl (core func)) 🧵
325
- | 0x42 => (canon thread.available_parallelism (core func)) 🧵
322
+ | 0x24 => (canon thread.index (core func)) 🧵
323
+ | 0x25 ft:<typeidx> tbl:<core:tableidx> => (canon thread.new_indirect ft tbl (core func)) 🧵
324
+ | 0x26 cancel?:<cancel?> => (canon thread.switch-to cancel? (core func)) 🧵
325
+ | 0x27 cancel?:<cancel?> => (canon thread.suspend cancel? (core func)) 🧵
326
+ | 0x28 => (canon thread.resume-later (core func)) 🧵
327
+ | 0x29 cancel?:<cancel?> => (canon thread.yield-to cancel? (core func)) 🧵
328
+ | 0x0c cancel?:<cancel?> => (canon thread.yield cancel? (core func)) 🔀
329
+ | 0x40 ft:<typeidx> => (canon thread.spawn_ref ft (core func)) 🧵②
330
+ | 0x41 ft:<typeidx> tbl:<core:tableidx> => (canon thread.spawn_indirect ft tbl (core func)) 🧵②
331
+ | 0x42 => (canon thread.available-parallelism (core func)) 🧵②
326
332
async? ::= 0x00 =>
327
333
| 0x01 => async
328
334
cancel? ::= 0x00 =>
329
- | 0x01 => cancellable 🚟
335
+ | 0x01 => cancellable 🧵
330
336
opts ::= opt*:vec(<canonopt>) => opt*
331
337
canonopt ::= 0x00 => string-encoding=utf8
332
338
| 0x01 => string-encoding=utf16
@@ -509,6 +515,8 @@ named once.
509
515
repurposed.
510
516
* Most built-ins should have a ` <canonopt>* ` immediate instead of an ad hoc
511
517
subset of ` canonopt ` s.
518
+ * Add optional ` shared ` immediate to all canonical definitions (explicitly or
519
+ via ` <canonopt> ` )
512
520
513
521
514
522
[ `core:byte` ] : https://webassembly.github.io/spec/core/binary/values.html#binary-byte
0 commit comments