wasmtime 36.0.0 → 36.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2302) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +88 -86
  3. data/Cargo.toml +1 -1
  4. data/ext/Cargo.toml +3 -3
  5. data/ext/cargo-vendor/addr2line-0.24.2/.cargo-checksum.json +1 -1
  6. data/ext/cargo-vendor/addr2line-0.25.0/.cargo-checksum.json +1 -1
  7. data/ext/cargo-vendor/adler2-2.0.0/.cargo-checksum.json +1 -1
  8. data/ext/cargo-vendor/aho-corasick-1.1.3/.cargo-checksum.json +1 -1
  9. data/ext/cargo-vendor/allocator-api2-0.2.21/.cargo-checksum.json +1 -1
  10. data/ext/cargo-vendor/ambient-authority-0.0.2/.cargo-checksum.json +1 -1
  11. data/ext/cargo-vendor/android_system_properties-0.1.5/.cargo-checksum.json +1 -1
  12. data/ext/cargo-vendor/anyhow-1.0.98/.cargo-checksum.json +1 -1
  13. data/ext/cargo-vendor/arbitrary-1.4.1/.cargo-checksum.json +1 -1
  14. data/ext/cargo-vendor/async-timer-1.0.0-beta.15/.cargo-checksum.json +1 -1
  15. data/ext/cargo-vendor/async-trait-0.1.88/.cargo-checksum.json +1 -1
  16. data/ext/cargo-vendor/backtrace-0.3.75/.cargo-checksum.json +1 -1
  17. data/ext/cargo-vendor/base64-0.22.1/.cargo-checksum.json +1 -1
  18. data/ext/cargo-vendor/bindgen-0.69.5/.cargo-checksum.json +1 -1
  19. data/ext/cargo-vendor/bitflags-2.9.1/.cargo-checksum.json +1 -1
  20. data/ext/cargo-vendor/block-buffer-0.10.4/.cargo-checksum.json +1 -1
  21. data/ext/cargo-vendor/bumpalo-3.17.0/.cargo-checksum.json +1 -1
  22. data/ext/cargo-vendor/byteorder-1.5.0/.cargo-checksum.json +1 -1
  23. data/ext/cargo-vendor/bytes-1.10.1/.cargo-checksum.json +1 -1
  24. data/ext/cargo-vendor/cap-fs-ext-3.4.6/.cargo-checksum.json +1 -0
  25. data/ext/cargo-vendor/cap-fs-ext-3.4.6/.cargo_vcs_info.json +6 -0
  26. data/ext/cargo-vendor/cap-fs-ext-3.4.6/Cargo.lock +794 -0
  27. data/ext/cargo-vendor/cap-fs-ext-3.4.6/Cargo.toml +104 -0
  28. data/ext/cargo-vendor/cap-fs-ext-3.4.6/Cargo.toml.orig +41 -0
  29. data/ext/cargo-vendor/cap-net-ext-3.4.6/.cargo-checksum.json +1 -0
  30. data/ext/cargo-vendor/cap-net-ext-3.4.6/.cargo_vcs_info.json +6 -0
  31. data/ext/cargo-vendor/cap-net-ext-3.4.6/Cargo.lock +249 -0
  32. data/ext/cargo-vendor/cap-net-ext-3.4.6/Cargo.toml +48 -0
  33. data/ext/cargo-vendor/cap-net-ext-3.4.6/Cargo.toml.orig +19 -0
  34. data/ext/cargo-vendor/cap-primitives-3.4.6/.cargo-checksum.json +1 -0
  35. data/ext/cargo-vendor/cap-primitives-3.4.6/.cargo_vcs_info.json +6 -0
  36. data/ext/cargo-vendor/cap-primitives-3.4.6/Cargo.lock +275 -0
  37. data/ext/cargo-vendor/cap-primitives-3.4.6/Cargo.toml +96 -0
  38. data/ext/cargo-vendor/cap-primitives-3.4.6/Cargo.toml.orig +47 -0
  39. data/ext/cargo-vendor/cap-primitives-3.4.6/src/fs/manually/open.rs +562 -0
  40. data/ext/cargo-vendor/cap-primitives-3.4.6/src/fs/via_parent/open_parent.rs +126 -0
  41. data/ext/cargo-vendor/cap-primitives-3.4.6/src/rustix/linux/fs/stat_impl.rs +56 -0
  42. data/ext/cargo-vendor/cap-rand-3.4.6/.cargo-checksum.json +1 -0
  43. data/ext/cargo-vendor/cap-rand-3.4.6/.cargo_vcs_info.json +6 -0
  44. data/ext/cargo-vendor/cap-rand-3.4.6/Cargo.lock +140 -0
  45. data/ext/cargo-vendor/cap-rand-3.4.6/Cargo.toml +48 -0
  46. data/ext/cargo-vendor/cap-rand-3.4.6/Cargo.toml.orig +21 -0
  47. data/ext/cargo-vendor/cap-std-3.4.6/.cargo-checksum.json +1 -0
  48. data/ext/cargo-vendor/cap-std-3.4.6/.cargo_vcs_info.json +6 -0
  49. data/ext/cargo-vendor/cap-std-3.4.6/Cargo.lock +248 -0
  50. data/ext/cargo-vendor/cap-std-3.4.6/Cargo.toml +77 -0
  51. data/ext/cargo-vendor/cap-std-3.4.6/Cargo.toml.orig +32 -0
  52. data/ext/cargo-vendor/cap-std-3.4.6/src/net/tcp_listener.rs +248 -0
  53. data/ext/cargo-vendor/cap-std-3.4.6/src/os/unix/net/unix_listener.rs +156 -0
  54. data/ext/cargo-vendor/cap-time-ext-3.4.6/.cargo-checksum.json +1 -0
  55. data/ext/cargo-vendor/cap-time-ext-3.4.6/.cargo_vcs_info.json +6 -0
  56. data/ext/cargo-vendor/cap-time-ext-3.4.6/Cargo.lock +474 -0
  57. data/ext/cargo-vendor/cap-time-ext-3.4.6/Cargo.toml +58 -0
  58. data/ext/cargo-vendor/cap-time-ext-3.4.6/Cargo.toml.orig +26 -0
  59. data/ext/cargo-vendor/cc-1.2.25/.cargo-checksum.json +1 -1
  60. data/ext/cargo-vendor/cexpr-0.6.0/.cargo-checksum.json +1 -1
  61. data/ext/cargo-vendor/cfg-if-1.0.0/.cargo-checksum.json +1 -1
  62. data/ext/cargo-vendor/clang-sys-1.8.1/.cargo-checksum.json +1 -1
  63. data/ext/cargo-vendor/cobs-0.2.3/.cargo-checksum.json +1 -1
  64. data/ext/cargo-vendor/core-foundation-sys-0.8.7/.cargo-checksum.json +1 -1
  65. data/ext/cargo-vendor/cpp_demangle-0.4.4/.cargo-checksum.json +1 -1
  66. data/ext/cargo-vendor/cpufeatures-0.2.17/.cargo-checksum.json +1 -1
  67. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.19/.cargo-checksum.json +1 -0
  68. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.19/.cargo_vcs_info.json +6 -0
  69. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.19/Cargo.lock +133 -0
  70. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.19/Cargo.toml +97 -0
  71. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.19/Cargo.toml.orig +25 -0
  72. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.19/.cargo-checksum.json +1 -0
  73. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.19/.cargo_vcs_info.json +6 -0
  74. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.19/Cargo.lock +16 -0
  75. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.19/Cargo.toml +72 -0
  76. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.19/Cargo.toml.orig +13 -0
  77. data/ext/cargo-vendor/cranelift-bforest-0.123.19/.cargo-checksum.json +1 -0
  78. data/ext/cargo-vendor/cranelift-bforest-0.123.19/.cargo_vcs_info.json +6 -0
  79. data/ext/cargo-vendor/cranelift-bforest-0.123.19/Cargo.lock +25 -0
  80. data/ext/cargo-vendor/cranelift-bforest-0.123.19/Cargo.toml +78 -0
  81. data/ext/cargo-vendor/cranelift-bforest-0.123.19/Cargo.toml.orig +19 -0
  82. data/ext/cargo-vendor/cranelift-bitset-0.123.19/.cargo-checksum.json +1 -0
  83. data/ext/cargo-vendor/cranelift-bitset-0.123.19/.cargo_vcs_info.json +6 -0
  84. data/ext/cargo-vendor/cranelift-bitset-0.123.19/Cargo.lock +73 -0
  85. data/ext/cargo-vendor/cranelift-bitset-0.123.19/Cargo.toml +93 -0
  86. data/ext/cargo-vendor/cranelift-bitset-0.123.19/Cargo.toml.orig +22 -0
  87. data/ext/cargo-vendor/cranelift-codegen-0.123.19/.cargo-checksum.json +1 -0
  88. data/ext/cargo-vendor/cranelift-codegen-0.123.19/.cargo_vcs_info.json +6 -0
  89. data/ext/cargo-vendor/cranelift-codegen-0.123.19/Cargo.lock +1279 -0
  90. data/ext/cargo-vendor/cranelift-codegen-0.123.19/Cargo.toml +251 -0
  91. data/ext/cargo-vendor/cranelift-codegen-0.123.19/Cargo.toml.orig +130 -0
  92. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/ir/dfg.rs +1853 -0
  93. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/isa/aarch64/inst/emit.rs +3638 -0
  94. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/isa/aarch64/inst/mod.rs +3059 -0
  95. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/isa/aarch64/inst.isle +5141 -0
  96. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/isa/aarch64/lower/isle.rs +855 -0
  97. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/isa/x64/inst.isle +4085 -0
  98. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/isa/x64/lower.isle +5059 -0
  99. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/lib.rs +123 -0
  100. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/opts/icmp.isle +299 -0
  101. data/ext/cargo-vendor/cranelift-codegen-0.123.19/src/timing.rs +336 -0
  102. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.19/.cargo-checksum.json +1 -0
  103. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.19/.cargo_vcs_info.json +6 -0
  104. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.19/Cargo.lock +110 -0
  105. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.19/Cargo.toml +89 -0
  106. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.19/Cargo.toml.orig +26 -0
  107. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.19/.cargo-checksum.json +1 -0
  108. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.19/.cargo_vcs_info.json +6 -0
  109. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.19/Cargo.lock +7 -0
  110. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.19/Cargo.toml +34 -0
  111. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.19/Cargo.toml.orig +14 -0
  112. data/ext/cargo-vendor/cranelift-control-0.123.19/.cargo-checksum.json +1 -0
  113. data/ext/cargo-vendor/cranelift-control-0.123.19/.cargo_vcs_info.json +6 -0
  114. data/ext/cargo-vendor/cranelift-control-0.123.19/Cargo.lock +16 -0
  115. data/ext/cargo-vendor/cranelift-control-0.123.19/Cargo.toml +45 -0
  116. data/ext/cargo-vendor/cranelift-control-0.123.19/Cargo.toml.orig +25 -0
  117. data/ext/cargo-vendor/cranelift-entity-0.123.19/.cargo-checksum.json +1 -0
  118. data/ext/cargo-vendor/cranelift-entity-0.123.19/.cargo_vcs_info.json +6 -0
  119. data/ext/cargo-vendor/cranelift-entity-0.123.19/Cargo.lock +77 -0
  120. data/ext/cargo-vendor/cranelift-entity-0.123.19/Cargo.toml +94 -0
  121. data/ext/cargo-vendor/cranelift-entity-0.123.19/Cargo.toml.orig +24 -0
  122. data/ext/cargo-vendor/cranelift-frontend-0.123.19/.cargo-checksum.json +1 -0
  123. data/ext/cargo-vendor/cranelift-frontend-0.123.19/.cargo_vcs_info.json +6 -0
  124. data/ext/cargo-vendor/cranelift-frontend-0.123.19/Cargo.lock +531 -0
  125. data/ext/cargo-vendor/cranelift-frontend-0.123.19/Cargo.toml +116 -0
  126. data/ext/cargo-vendor/cranelift-frontend-0.123.19/Cargo.toml.orig +32 -0
  127. data/ext/cargo-vendor/cranelift-isle-0.123.19/.cargo-checksum.json +1 -0
  128. data/ext/cargo-vendor/cranelift-isle-0.123.19/.cargo_vcs_info.json +6 -0
  129. data/ext/cargo-vendor/cranelift-isle-0.123.19/Cargo.lock +249 -0
  130. data/ext/cargo-vendor/cranelift-isle-0.123.19/Cargo.toml +88 -0
  131. data/ext/cargo-vendor/cranelift-isle-0.123.19/Cargo.toml.orig +26 -0
  132. data/ext/cargo-vendor/cranelift-native-0.123.19/.cargo-checksum.json +1 -0
  133. data/ext/cargo-vendor/cranelift-native-0.123.19/.cargo_vcs_info.json +6 -0
  134. data/ext/cargo-vendor/cranelift-native-0.123.19/Cargo.lock +305 -0
  135. data/ext/cargo-vendor/cranelift-native-0.123.19/Cargo.toml +54 -0
  136. data/ext/cargo-vendor/cranelift-native-0.123.19/Cargo.toml.orig +24 -0
  137. data/ext/cargo-vendor/cranelift-srcgen-0.123.19/.cargo-checksum.json +1 -0
  138. data/ext/cargo-vendor/cranelift-srcgen-0.123.19/.cargo_vcs_info.json +6 -0
  139. data/ext/cargo-vendor/cranelift-srcgen-0.123.19/Cargo.lock +7 -0
  140. data/ext/cargo-vendor/cranelift-srcgen-0.123.19/Cargo.toml +69 -0
  141. data/ext/cargo-vendor/cranelift-srcgen-0.123.19/Cargo.toml.orig +14 -0
  142. data/ext/cargo-vendor/crc32fast-1.4.2/.cargo-checksum.json +1 -1
  143. data/ext/cargo-vendor/crossbeam-deque-0.8.6/.cargo-checksum.json +1 -1
  144. data/ext/cargo-vendor/crossbeam-epoch-0.9.18/.cargo-checksum.json +1 -1
  145. data/ext/cargo-vendor/crossbeam-utils-0.8.21/.cargo-checksum.json +1 -1
  146. data/ext/cargo-vendor/crypto-common-0.1.6/.cargo-checksum.json +1 -1
  147. data/ext/cargo-vendor/debugid-0.8.0/.cargo-checksum.json +1 -1
  148. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.1/.cargo-checksum.json +1 -1
  149. data/ext/cargo-vendor/digest-0.10.7/.cargo-checksum.json +1 -1
  150. data/ext/cargo-vendor/directories-next-2.0.0/.cargo-checksum.json +1 -1
  151. data/ext/cargo-vendor/dirs-sys-next-0.1.2/.cargo-checksum.json +1 -1
  152. data/ext/cargo-vendor/displaydoc-0.2.5/.cargo-checksum.json +1 -1
  153. data/ext/cargo-vendor/either-1.15.0/.cargo-checksum.json +1 -1
  154. data/ext/cargo-vendor/embedded-io-0.4.0/.cargo-checksum.json +1 -1
  155. data/ext/cargo-vendor/embedded-io-0.6.1/.cargo-checksum.json +1 -1
  156. data/ext/cargo-vendor/encoding_rs-0.8.35/.cargo-checksum.json +1 -1
  157. data/ext/cargo-vendor/equivalent-1.0.2/.cargo-checksum.json +1 -1
  158. data/ext/cargo-vendor/errno-0.3.12/.cargo-checksum.json +1 -1
  159. data/ext/cargo-vendor/error-code-3.3.2/.cargo-checksum.json +1 -1
  160. data/ext/cargo-vendor/fallible-iterator-0.3.0/.cargo-checksum.json +1 -1
  161. data/ext/cargo-vendor/fd-lock-4.0.4/.cargo-checksum.json +1 -1
  162. data/ext/cargo-vendor/foldhash-0.1.5/.cargo-checksum.json +1 -1
  163. data/ext/cargo-vendor/form_urlencoded-1.2.1/.cargo-checksum.json +1 -1
  164. data/ext/cargo-vendor/fs-set-times-0.20.3/.cargo-checksum.json +1 -1
  165. data/ext/cargo-vendor/futures-0.3.31/.cargo-checksum.json +1 -1
  166. data/ext/cargo-vendor/futures-channel-0.3.31/.cargo-checksum.json +1 -1
  167. data/ext/cargo-vendor/futures-core-0.3.31/.cargo-checksum.json +1 -1
  168. data/ext/cargo-vendor/futures-io-0.3.31/.cargo-checksum.json +1 -1
  169. data/ext/cargo-vendor/futures-sink-0.3.31/.cargo-checksum.json +1 -1
  170. data/ext/cargo-vendor/futures-task-0.3.31/.cargo-checksum.json +1 -1
  171. data/ext/cargo-vendor/futures-util-0.3.31/.cargo-checksum.json +1 -1
  172. data/ext/cargo-vendor/fxhash-0.2.1/.cargo-checksum.json +1 -1
  173. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/.cargo-checksum.json +1 -1
  174. data/ext/cargo-vendor/generic-array-0.14.7/.cargo-checksum.json +1 -1
  175. data/ext/cargo-vendor/getrandom-0.2.16/.cargo-checksum.json +1 -1
  176. data/ext/cargo-vendor/getrandom-0.3.3/.cargo-checksum.json +1 -1
  177. data/ext/cargo-vendor/gimli-0.31.1/.cargo-checksum.json +1 -1
  178. data/ext/cargo-vendor/gimli-0.32.2/.cargo-checksum.json +1 -1
  179. data/ext/cargo-vendor/glob-0.3.2/.cargo-checksum.json +1 -1
  180. data/ext/cargo-vendor/hashbrown-0.15.3/.cargo-checksum.json +1 -1
  181. data/ext/cargo-vendor/heck-0.5.0/.cargo-checksum.json +1 -1
  182. data/ext/cargo-vendor/iana-time-zone-0.1.63/.cargo-checksum.json +1 -1
  183. data/ext/cargo-vendor/iana-time-zone-haiku-0.1.2/.cargo-checksum.json +1 -1
  184. data/ext/cargo-vendor/icu_collections-2.0.0/.cargo-checksum.json +1 -1
  185. data/ext/cargo-vendor/icu_locale_core-2.0.0/.cargo-checksum.json +1 -1
  186. data/ext/cargo-vendor/icu_normalizer-2.0.0/.cargo-checksum.json +1 -1
  187. data/ext/cargo-vendor/icu_normalizer_data-2.0.0/.cargo-checksum.json +1 -1
  188. data/ext/cargo-vendor/icu_properties-2.0.1/.cargo-checksum.json +1 -1
  189. data/ext/cargo-vendor/icu_properties_data-2.0.1/.cargo-checksum.json +1 -1
  190. data/ext/cargo-vendor/icu_provider-2.0.0/.cargo-checksum.json +1 -1
  191. data/ext/cargo-vendor/id-arena-2.2.1/.cargo-checksum.json +1 -1
  192. data/ext/cargo-vendor/idna-1.0.3/.cargo-checksum.json +1 -1
  193. data/ext/cargo-vendor/idna_adapter-1.2.1/.cargo-checksum.json +1 -1
  194. data/ext/cargo-vendor/indexmap-2.9.0/.cargo-checksum.json +1 -1
  195. data/ext/cargo-vendor/io-extras-0.18.4/.cargo-checksum.json +1 -1
  196. data/ext/cargo-vendor/io-lifetimes-2.0.4/.cargo-checksum.json +1 -1
  197. data/ext/cargo-vendor/io-uring-0.7.9/.cargo-checksum.json +1 -1
  198. data/ext/cargo-vendor/ipnet-2.11.0/.cargo-checksum.json +1 -1
  199. data/ext/cargo-vendor/itertools-0.12.1/.cargo-checksum.json +1 -1
  200. data/ext/cargo-vendor/itertools-0.14.0/.cargo-checksum.json +1 -1
  201. data/ext/cargo-vendor/itoa-1.0.15/.cargo-checksum.json +1 -1
  202. data/ext/cargo-vendor/ittapi-0.4.0/.cargo-checksum.json +1 -1
  203. data/ext/cargo-vendor/ittapi-sys-0.4.0/.cargo-checksum.json +1 -1
  204. data/ext/cargo-vendor/jobserver-0.1.33/.cargo-checksum.json +1 -1
  205. data/ext/cargo-vendor/js-sys-0.3.77/.cargo-checksum.json +1 -1
  206. data/ext/cargo-vendor/lazy_static-1.5.0/.cargo-checksum.json +1 -1
  207. data/ext/cargo-vendor/lazycell-1.3.0/.cargo-checksum.json +1 -1
  208. data/ext/cargo-vendor/leb128-0.2.5/.cargo-checksum.json +1 -1
  209. data/ext/cargo-vendor/leb128fmt-0.1.0/.cargo-checksum.json +1 -1
  210. data/ext/cargo-vendor/libc-0.2.172/.cargo-checksum.json +1 -1
  211. data/ext/cargo-vendor/libloading-0.8.8/.cargo-checksum.json +1 -1
  212. data/ext/cargo-vendor/libm-0.2.15/.cargo-checksum.json +1 -1
  213. data/ext/cargo-vendor/libredox-0.1.3/.cargo-checksum.json +1 -1
  214. data/ext/cargo-vendor/linux-raw-sys-0.4.15/.cargo-checksum.json +1 -1
  215. data/ext/cargo-vendor/linux-raw-sys-0.9.4/.cargo-checksum.json +1 -1
  216. data/ext/cargo-vendor/litemap-0.8.0/.cargo-checksum.json +1 -1
  217. data/ext/cargo-vendor/log-0.4.27/.cargo-checksum.json +1 -1
  218. data/ext/cargo-vendor/mach2-0.4.2/.cargo-checksum.json +1 -1
  219. data/ext/cargo-vendor/magnus-0.7.1/.cargo-checksum.json +1 -1
  220. data/ext/cargo-vendor/magnus-macros-0.6.0/.cargo-checksum.json +1 -1
  221. data/ext/cargo-vendor/maybe-owned-0.3.4/.cargo-checksum.json +1 -1
  222. data/ext/cargo-vendor/memchr-2.7.4/.cargo-checksum.json +1 -1
  223. data/ext/cargo-vendor/memfd-0.6.4/.cargo-checksum.json +1 -1
  224. data/ext/cargo-vendor/minimal-lexical-0.2.1/.cargo-checksum.json +1 -1
  225. data/ext/cargo-vendor/miniz_oxide-0.8.8/.cargo-checksum.json +1 -1
  226. data/ext/cargo-vendor/mio-1.0.4/.cargo-checksum.json +1 -1
  227. data/ext/cargo-vendor/nom-7.1.3/.cargo-checksum.json +1 -1
  228. data/ext/cargo-vendor/object-0.36.7/.cargo-checksum.json +1 -1
  229. data/ext/cargo-vendor/object-0.37.3/.cargo-checksum.json +1 -1
  230. data/ext/cargo-vendor/once_cell-1.21.3/.cargo-checksum.json +1 -1
  231. data/ext/cargo-vendor/percent-encoding-2.3.1/.cargo-checksum.json +1 -1
  232. data/ext/cargo-vendor/pin-project-lite-0.2.16/.cargo-checksum.json +1 -1
  233. data/ext/cargo-vendor/pin-utils-0.1.0/.cargo-checksum.json +1 -1
  234. data/ext/cargo-vendor/pkg-config-0.3.32/.cargo-checksum.json +1 -1
  235. data/ext/cargo-vendor/postcard-1.1.1/.cargo-checksum.json +1 -1
  236. data/ext/cargo-vendor/potential_utf-0.1.2/.cargo-checksum.json +1 -1
  237. data/ext/cargo-vendor/ppv-lite86-0.2.21/.cargo-checksum.json +1 -1
  238. data/ext/cargo-vendor/proc-macro2-1.0.95/.cargo-checksum.json +1 -1
  239. data/ext/cargo-vendor/pulley-interpreter-36.0.19/.cargo-checksum.json +1 -0
  240. data/ext/cargo-vendor/pulley-interpreter-36.0.19/.cargo_vcs_info.json +6 -0
  241. data/ext/cargo-vendor/pulley-interpreter-36.0.19/Cargo.lock +426 -0
  242. data/ext/cargo-vendor/pulley-interpreter-36.0.19/Cargo.toml +143 -0
  243. data/ext/cargo-vendor/pulley-interpreter-36.0.19/src/lib.rs +1419 -0
  244. data/ext/cargo-vendor/pulley-macros-36.0.19/.cargo-checksum.json +1 -0
  245. data/ext/cargo-vendor/pulley-macros-36.0.19/.cargo_vcs_info.json +6 -0
  246. data/ext/cargo-vendor/pulley-macros-36.0.19/Cargo.lock +47 -0
  247. data/ext/cargo-vendor/pulley-macros-36.0.19/Cargo.toml +42 -0
  248. data/ext/cargo-vendor/quote-1.0.40/.cargo-checksum.json +1 -1
  249. data/ext/cargo-vendor/r-efi-5.2.0/.cargo-checksum.json +1 -1
  250. data/ext/cargo-vendor/rand-0.8.5/.cargo-checksum.json +1 -1
  251. data/ext/cargo-vendor/rand_chacha-0.3.1/.cargo-checksum.json +1 -1
  252. data/ext/cargo-vendor/rand_core-0.6.4/.cargo-checksum.json +1 -1
  253. data/ext/cargo-vendor/rand_pcg-0.3.1/.cargo-checksum.json +1 -1
  254. data/ext/cargo-vendor/rayon-1.10.0/.cargo-checksum.json +1 -1
  255. data/ext/cargo-vendor/rayon-core-1.12.1/.cargo-checksum.json +1 -1
  256. data/ext/cargo-vendor/rb-sys-0.9.117/.cargo-checksum.json +1 -1
  257. data/ext/cargo-vendor/rb-sys-build-0.9.117/.cargo-checksum.json +1 -1
  258. data/ext/cargo-vendor/rb-sys-env-0.1.2/.cargo-checksum.json +1 -1
  259. data/ext/cargo-vendor/rb-sys-env-0.2.2/.cargo-checksum.json +1 -1
  260. data/ext/cargo-vendor/redox_users-0.4.6/.cargo-checksum.json +1 -1
  261. data/ext/cargo-vendor/regalloc2-0.12.2/.cargo-checksum.json +1 -1
  262. data/ext/cargo-vendor/regex-1.11.1/.cargo-checksum.json +1 -1
  263. data/ext/cargo-vendor/regex-automata-0.4.9/.cargo-checksum.json +1 -1
  264. data/ext/cargo-vendor/regex-syntax-0.8.5/.cargo-checksum.json +1 -1
  265. data/ext/cargo-vendor/rustc-demangle-0.1.24/.cargo-checksum.json +1 -1
  266. data/ext/cargo-vendor/rustc-hash-1.1.0/.cargo-checksum.json +1 -1
  267. data/ext/cargo-vendor/rustc-hash-2.1.1/.cargo-checksum.json +1 -1
  268. data/ext/cargo-vendor/rustix-0.38.44/.cargo-checksum.json +1 -1
  269. data/ext/cargo-vendor/rustix-1.0.7/.cargo-checksum.json +1 -1
  270. data/ext/cargo-vendor/rustix-linux-procfs-0.1.1/.cargo-checksum.json +1 -1
  271. data/ext/cargo-vendor/rustversion-1.0.21/.cargo-checksum.json +1 -1
  272. data/ext/cargo-vendor/ryu-1.0.20/.cargo-checksum.json +1 -1
  273. data/ext/cargo-vendor/semver-1.0.26/.cargo-checksum.json +1 -1
  274. data/ext/cargo-vendor/seq-macro-0.3.6/.cargo-checksum.json +1 -1
  275. data/ext/cargo-vendor/serde-1.0.219/.cargo-checksum.json +1 -1
  276. data/ext/cargo-vendor/serde_derive-1.0.219/.cargo-checksum.json +1 -1
  277. data/ext/cargo-vendor/serde_json-1.0.140/.cargo-checksum.json +1 -1
  278. data/ext/cargo-vendor/serde_spanned-0.6.8/.cargo-checksum.json +1 -1
  279. data/ext/cargo-vendor/sha2-0.10.9/.cargo-checksum.json +1 -1
  280. data/ext/cargo-vendor/shell-words-1.1.0/.cargo-checksum.json +1 -1
  281. data/ext/cargo-vendor/shlex-1.3.0/.cargo-checksum.json +1 -1
  282. data/ext/cargo-vendor/slab-0.4.10/.cargo-checksum.json +1 -1
  283. data/ext/cargo-vendor/smallvec-1.15.0/.cargo-checksum.json +1 -1
  284. data/ext/cargo-vendor/socket2-0.6.0/.cargo-checksum.json +1 -1
  285. data/ext/cargo-vendor/stable_deref_trait-1.2.0/.cargo-checksum.json +1 -1
  286. data/ext/cargo-vendor/static_assertions-1.1.0/.cargo-checksum.json +1 -1
  287. data/ext/cargo-vendor/syn-2.0.101/.cargo-checksum.json +1 -1
  288. data/ext/cargo-vendor/synstructure-0.13.2/.cargo-checksum.json +1 -1
  289. data/ext/cargo-vendor/system-interface-0.27.3/.cargo-checksum.json +1 -1
  290. data/ext/cargo-vendor/target-lexicon-0.13.2/.cargo-checksum.json +1 -1
  291. data/ext/cargo-vendor/termcolor-1.4.1/.cargo-checksum.json +1 -1
  292. data/ext/cargo-vendor/thiserror-1.0.69/.cargo-checksum.json +1 -1
  293. data/ext/cargo-vendor/thiserror-2.0.12/.cargo-checksum.json +1 -1
  294. data/ext/cargo-vendor/thiserror-impl-1.0.69/.cargo-checksum.json +1 -1
  295. data/ext/cargo-vendor/thiserror-impl-2.0.12/.cargo-checksum.json +1 -1
  296. data/ext/cargo-vendor/tinystr-0.8.1/.cargo-checksum.json +1 -1
  297. data/ext/cargo-vendor/tokio-1.47.1/.cargo-checksum.json +1 -1
  298. data/ext/cargo-vendor/toml-0.8.22/.cargo-checksum.json +1 -1
  299. data/ext/cargo-vendor/toml_datetime-0.6.9/.cargo-checksum.json +1 -1
  300. data/ext/cargo-vendor/toml_edit-0.22.26/.cargo-checksum.json +1 -1
  301. data/ext/cargo-vendor/toml_write-0.1.1/.cargo-checksum.json +1 -1
  302. data/ext/cargo-vendor/tracing-0.1.41/.cargo-checksum.json +1 -1
  303. data/ext/cargo-vendor/tracing-attributes-0.1.28/.cargo-checksum.json +1 -1
  304. data/ext/cargo-vendor/tracing-core-0.1.33/.cargo-checksum.json +1 -1
  305. data/ext/cargo-vendor/typenum-1.18.0/.cargo-checksum.json +1 -1
  306. data/ext/cargo-vendor/unicode-ident-1.0.18/.cargo-checksum.json +1 -1
  307. data/ext/cargo-vendor/unicode-width-0.2.0/.cargo-checksum.json +1 -1
  308. data/ext/cargo-vendor/unicode-xid-0.2.6/.cargo-checksum.json +1 -1
  309. data/ext/cargo-vendor/url-2.5.4/.cargo-checksum.json +1 -1
  310. data/ext/cargo-vendor/utf8_iter-1.0.4/.cargo-checksum.json +1 -1
  311. data/ext/cargo-vendor/uuid-1.17.0/.cargo-checksum.json +1 -1
  312. data/ext/cargo-vendor/version_check-0.9.5/.cargo-checksum.json +1 -1
  313. data/ext/cargo-vendor/wasi-0.11.0+wasi-snapshot-preview1/.cargo-checksum.json +1 -1
  314. data/ext/cargo-vendor/wasi-0.14.2+wasi-0.2.4/.cargo-checksum.json +1 -1
  315. data/ext/cargo-vendor/wasm-bindgen-0.2.100/.cargo-checksum.json +1 -1
  316. data/ext/cargo-vendor/wasm-bindgen-backend-0.2.100/.cargo-checksum.json +1 -1
  317. data/ext/cargo-vendor/wasm-bindgen-macro-0.2.100/.cargo-checksum.json +1 -1
  318. data/ext/cargo-vendor/wasm-bindgen-macro-support-0.2.100/.cargo-checksum.json +1 -1
  319. data/ext/cargo-vendor/wasm-bindgen-shared-0.2.100/.cargo-checksum.json +1 -1
  320. data/ext/cargo-vendor/wasm-encoder-0.236.0/.cargo-checksum.json +1 -1
  321. data/ext/cargo-vendor/wasmparser-0.236.0/.cargo-checksum.json +1 -1
  322. data/ext/cargo-vendor/wasmprinter-0.236.0/.cargo-checksum.json +1 -1
  323. data/ext/cargo-vendor/wasmtime-36.0.19/.cargo-checksum.json +1 -0
  324. data/ext/cargo-vendor/wasmtime-36.0.19/.cargo_vcs_info.json +6 -0
  325. data/ext/cargo-vendor/wasmtime-36.0.19/Cargo.lock +2171 -0
  326. data/ext/cargo-vendor/wasmtime-36.0.19/Cargo.toml +542 -0
  327. data/ext/cargo-vendor/wasmtime-36.0.19/Cargo.toml.orig +408 -0
  328. data/ext/cargo-vendor/wasmtime-36.0.19/src/lib.rs +436 -0
  329. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/concurrent.rs +4658 -0
  330. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/func/options.rs +660 -0
  331. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/func/typed.rs +2881 -0
  332. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/func.rs +937 -0
  333. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/instance.rs +1051 -0
  334. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/linker.rs +909 -0
  335. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/resource_table.rs +407 -0
  336. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/resources.rs +1182 -0
  337. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/store.rs +308 -0
  338. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/component/values.rs +1171 -0
  339. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/coredump.rs +350 -0
  340. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/externals/global.rs +429 -0
  341. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/externals/table.rs +572 -0
  342. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/externals/tag.rs +117 -0
  343. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/func.rs +2688 -0
  344. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/gc/enabled/arrayref.rs +1071 -0
  345. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/gc/enabled/exnref.rs +793 -0
  346. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/gc/enabled/structref.rs +866 -0
  347. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/instance.rs +1033 -0
  348. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/linker.rs +1575 -0
  349. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/memory.rs +1116 -0
  350. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/module/registry.rs +410 -0
  351. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/store.rs +2563 -0
  352. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/trampoline/table.rs +45 -0
  353. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/trampoline/tag.rs +50 -0
  354. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/vm/component/resources.rs +580 -0
  355. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/vm/component.rs +1011 -0
  356. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/vm/cow.rs +1109 -0
  357. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +1076 -0
  358. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/vm/memory.rs +749 -0
  359. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/vm/table.rs +1244 -0
  360. data/ext/cargo-vendor/wasmtime-36.0.19/src/runtime/vm.rs +539 -0
  361. data/ext/cargo-vendor/wasmtime-36.0.19/tests/pooling_alloc_near_oom.rs +119 -0
  362. data/ext/cargo-vendor/wasmtime-environ-36.0.19/.cargo-checksum.json +1 -0
  363. data/ext/cargo-vendor/wasmtime-environ-36.0.19/.cargo_vcs_info.json +6 -0
  364. data/ext/cargo-vendor/wasmtime-environ-36.0.19/Cargo.lock +650 -0
  365. data/ext/cargo-vendor/wasmtime-environ-36.0.19/Cargo.toml +233 -0
  366. data/ext/cargo-vendor/wasmtime-environ-36.0.19/src/fact/trampoline.rs +4025 -0
  367. data/ext/cargo-vendor/wasmtime-internal-asm-macros-36.0.19/.cargo-checksum.json +1 -0
  368. data/ext/cargo-vendor/wasmtime-internal-asm-macros-36.0.19/.cargo_vcs_info.json +6 -0
  369. data/ext/cargo-vendor/wasmtime-internal-asm-macros-36.0.19/Cargo.lock +16 -0
  370. data/ext/cargo-vendor/wasmtime-internal-asm-macros-36.0.19/Cargo.toml +35 -0
  371. data/ext/cargo-vendor/wasmtime-internal-cache-36.0.19/.cargo-checksum.json +1 -0
  372. data/ext/cargo-vendor/wasmtime-internal-cache-36.0.19/.cargo_vcs_info.json +6 -0
  373. data/ext/cargo-vendor/wasmtime-internal-cache-36.0.19/Cargo.lock +840 -0
  374. data/ext/cargo-vendor/wasmtime-internal-cache-36.0.19/Cargo.toml +127 -0
  375. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.19/.cargo-checksum.json +1 -0
  376. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.19/.cargo_vcs_info.json +6 -0
  377. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.19/Cargo.lock +285 -0
  378. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.19/Cargo.toml +145 -0
  379. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.19/tests/expanded/resources-export_concurrent.rs +798 -0
  380. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.19/tests/expanded/resources-import_concurrent.rs +1170 -0
  381. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.19/tests/expanded/unstable-features_concurrent.rs +479 -0
  382. data/ext/cargo-vendor/wasmtime-internal-component-util-36.0.19/.cargo-checksum.json +1 -0
  383. data/ext/cargo-vendor/wasmtime-internal-component-util-36.0.19/.cargo_vcs_info.json +6 -0
  384. data/ext/cargo-vendor/wasmtime-internal-component-util-36.0.19/Cargo.lock +7 -0
  385. data/ext/cargo-vendor/wasmtime-internal-component-util-36.0.19/Cargo.toml +38 -0
  386. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.19/.cargo-checksum.json +1 -0
  387. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.19/.cargo_vcs_info.json +6 -0
  388. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.19/Cargo.lock +697 -0
  389. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.19/Cargo.toml +181 -0
  390. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.19/src/lib.rs +482 -0
  391. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.19/src/translate/code_translator.rs +4152 -0
  392. data/ext/cargo-vendor/wasmtime-internal-fiber-36.0.19/.cargo-checksum.json +1 -0
  393. data/ext/cargo-vendor/wasmtime-internal-fiber-36.0.19/.cargo_vcs_info.json +6 -0
  394. data/ext/cargo-vendor/wasmtime-internal-fiber-36.0.19/Cargo.lock +353 -0
  395. data/ext/cargo-vendor/wasmtime-internal-fiber-36.0.19/Cargo.toml +110 -0
  396. data/ext/cargo-vendor/wasmtime-internal-jit-debug-36.0.19/.cargo-checksum.json +1 -0
  397. data/ext/cargo-vendor/wasmtime-internal-jit-debug-36.0.19/.cargo_vcs_info.json +6 -0
  398. data/ext/cargo-vendor/wasmtime-internal-jit-debug-36.0.19/Cargo.lock +203 -0
  399. data/ext/cargo-vendor/wasmtime-internal-jit-debug-36.0.19/Cargo.toml +109 -0
  400. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-36.0.19/.cargo-checksum.json +1 -0
  401. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-36.0.19/.cargo_vcs_info.json +6 -0
  402. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-36.0.19/Cargo.lock +104 -0
  403. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-36.0.19/Cargo.toml +90 -0
  404. data/ext/cargo-vendor/wasmtime-internal-math-36.0.19/.cargo-checksum.json +1 -0
  405. data/ext/cargo-vendor/wasmtime-internal-math-36.0.19/.cargo_vcs_info.json +6 -0
  406. data/ext/cargo-vendor/wasmtime-internal-math-36.0.19/Cargo.lock +16 -0
  407. data/ext/cargo-vendor/wasmtime-internal-math-36.0.19/Cargo.toml +77 -0
  408. data/ext/cargo-vendor/wasmtime-internal-slab-36.0.19/.cargo-checksum.json +1 -0
  409. data/ext/cargo-vendor/wasmtime-internal-slab-36.0.19/.cargo_vcs_info.json +6 -0
  410. data/ext/cargo-vendor/wasmtime-internal-slab-36.0.19/Cargo.lock +7 -0
  411. data/ext/cargo-vendor/wasmtime-internal-slab-36.0.19/Cargo.toml +69 -0
  412. data/ext/cargo-vendor/wasmtime-internal-unwinder-36.0.19/.cargo-checksum.json +1 -0
  413. data/ext/cargo-vendor/wasmtime-internal-unwinder-36.0.19/.cargo_vcs_info.json +6 -0
  414. data/ext/cargo-vendor/wasmtime-internal-unwinder-36.0.19/Cargo.lock +328 -0
  415. data/ext/cargo-vendor/wasmtime-internal-unwinder-36.0.19/Cargo.toml +105 -0
  416. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-36.0.19/.cargo-checksum.json +1 -0
  417. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-36.0.19/.cargo_vcs_info.json +6 -0
  418. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-36.0.19/Cargo.lock +47 -0
  419. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-36.0.19/Cargo.toml +43 -0
  420. data/ext/cargo-vendor/wasmtime-internal-winch-36.0.19/.cargo-checksum.json +1 -0
  421. data/ext/cargo-vendor/wasmtime-internal-winch-36.0.19/.cargo_vcs_info.json +6 -0
  422. data/ext/cargo-vendor/wasmtime-internal-winch-36.0.19/Cargo.lock +634 -0
  423. data/ext/cargo-vendor/wasmtime-internal-winch-36.0.19/Cargo.toml +127 -0
  424. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.19/.cargo-checksum.json +1 -0
  425. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.19/.cargo_vcs_info.json +6 -0
  426. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.19/Cargo.lock +193 -0
  427. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.19/Cargo.toml +89 -0
  428. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.19/src/lib.rs +3467 -0
  429. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/.cargo-checksum.json +1 -0
  430. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/.cargo_vcs_info.json +6 -0
  431. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/Cargo.lock +2512 -0
  432. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/Cargo.toml +269 -0
  433. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/Cargo.toml.orig +86 -0
  434. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/cli/file.rs +150 -0
  435. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/cli/stdout.rs +99 -0
  436. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/ctx.rs +570 -0
  437. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/create_dir.rs +14 -0
  438. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/dir_entry.rs +67 -0
  439. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/dir_options.rs +34 -0
  440. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/errors.rs +14 -0
  441. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/file_type.rs +124 -0
  442. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/follow_symlinks.rs +16 -0
  443. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/hard_link.rs +19 -0
  444. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/manually/canonical_path.rs +55 -0
  445. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/manually/cow_component.rs +44 -0
  446. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/manually/mod.rs +13 -0
  447. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/manually/open.rs +510 -0
  448. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/manually/read_link_one.rs +36 -0
  449. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/maybe_owned_file.rs +75 -0
  450. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/metadata.rs +241 -0
  451. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/mod.rs +86 -0
  452. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/open.rs +14 -0
  453. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/open_dir.rs +49 -0
  454. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/open_options.rs +327 -0
  455. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/open_unchecked_error.rs +37 -0
  456. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/read_dir.rs +38 -0
  457. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/read_link.rs +36 -0
  458. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/remove_dir.rs +14 -0
  459. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/remove_file.rs +14 -0
  460. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rename.rs +19 -0
  461. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/freebsd/fs/check.rs +40 -0
  462. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/freebsd/fs/mod.rs +13 -0
  463. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/freebsd/fs/open_impl.rs +29 -0
  464. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/freebsd/fs/remove_dir_impl.rs +16 -0
  465. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/freebsd/fs/remove_file_impl.rs +12 -0
  466. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/freebsd/fs/set_times_impl.rs +46 -0
  467. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/freebsd/fs/stat_impl.rs +22 -0
  468. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/freebsd/mod.rs +1 -0
  469. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/create_dir_unchecked.rs +19 -0
  470. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/cvt.rs +19 -0
  471. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/dir_entry_inner.rs +41 -0
  472. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/dir_options_ext.rs +14 -0
  473. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/dir_utils.rs +198 -0
  474. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/errors.rs +21 -0
  475. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/file_type_ext.rs +114 -0
  476. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/hard_link_unchecked.rs +24 -0
  477. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/is_same_file.rs +33 -0
  478. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/metadata_ext.rs +181 -0
  479. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/mod.rs +87 -0
  480. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/oflags.rs +101 -0
  481. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/open_options_ext.rs +20 -0
  482. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/open_unchecked.rs +57 -0
  483. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/read_dir_inner.rs +87 -0
  484. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/read_link_unchecked.rs +19 -0
  485. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/remove_dir_unchecked.rs +9 -0
  486. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/remove_file_unchecked.rs +9 -0
  487. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/rename_unchecked.rs +14 -0
  488. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/set_times_impl.rs +52 -0
  489. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/stat_unchecked.rs +79 -0
  490. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/symlink_unchecked.rs +13 -0
  491. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/fs/times.rs +57 -0
  492. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/linux/fs/file_metadata.rs +27 -0
  493. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/linux/fs/mod.rs +21 -0
  494. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/linux/fs/open_impl.rs +126 -0
  495. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/linux/fs/procfs.rs +43 -0
  496. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/linux/fs/set_times_impl.rs +44 -0
  497. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/linux/fs/stat_impl.rs +58 -0
  498. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/linux/mod.rs +6 -0
  499. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/rustix/mod.rs +9 -0
  500. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/set_times.rs +33 -0
  501. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/stat.rs +13 -0
  502. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/symlink.rs +64 -0
  503. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/cap_basics.rs +244 -0
  504. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/file_type_ext.rs +39 -0
  505. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/fs.rs +1239 -0
  506. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/fs_additional.rs +1360 -0
  507. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/helpers/mod.rs +152 -0
  508. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/metadata_ext.rs +90 -0
  509. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/mod.rs +19 -0
  510. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/paths_containing_nul.rs +77 -0
  511. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/readdir.rs +79 -0
  512. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/rename.rs +238 -0
  513. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/rename_directory.rs +33 -0
  514. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/reopendir.rs +72 -0
  515. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/set_times.rs +156 -0
  516. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/symlinks.rs +568 -0
  517. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/sys_common/io.rs +6 -0
  518. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/sys_common/mod.rs +96 -0
  519. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/sys_common/symlink_junction.rs +144 -0
  520. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/windows_open.rs +208 -0
  521. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/tests/windows_symlinks.rs +84 -0
  522. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/create_dir.rs +21 -0
  523. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/hard_link.rs +26 -0
  524. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/mod.rs +31 -0
  525. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/open_parent.rs +126 -0
  526. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/read_link.rs +21 -0
  527. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/remove_dir.rs +14 -0
  528. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/remove_file.rs +14 -0
  529. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/rename.rs +68 -0
  530. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/set_times_nofollow.rs +19 -0
  531. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/via_parent/symlink.rs +48 -0
  532. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/create_dir_unchecked.rs +18 -0
  533. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/create_file_at_w.rs +280 -0
  534. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/dir_entry_inner.rs +31 -0
  535. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/dir_options_ext.rs +8 -0
  536. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/dir_utils.rs +190 -0
  537. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/errors.rs +22 -0
  538. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/file_type_ext.rs +92 -0
  539. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/get_path.rs +31 -0
  540. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/hard_link_unchecked.rs +16 -0
  541. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/metadata_ext.rs +65 -0
  542. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/mod.rs +66 -0
  543. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/oflags.rs +48 -0
  544. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/open_impl.rs +66 -0
  545. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/open_options_ext.rs +111 -0
  546. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/open_unchecked.rs +215 -0
  547. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/read_dir_inner.rs +41 -0
  548. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/read_link_impl.rs +20 -0
  549. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/read_link_unchecked.rs +14 -0
  550. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/remove_dir_unchecked.rs +10 -0
  551. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/remove_file_unchecked.rs +10 -0
  552. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/rename_unchecked.rs +16 -0
  553. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/set_times_impl.rs +52 -0
  554. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/stat_unchecked.rs +36 -0
  555. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/fs/symlink_unchecked.rs +25 -0
  556. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem/primitives/windows/mod.rs +4 -0
  557. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/filesystem.rs +34 -0
  558. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/lib.rs +64 -0
  559. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/p2/filesystem.rs +576 -0
  560. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/p2/host/filesystem.rs +1348 -0
  561. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/p2/host/random.rs +43 -0
  562. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/p2/host/udp.rs +713 -0
  563. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/p2/pipe.rs +890 -0
  564. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/p2/tcp.rs +970 -0
  565. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/preview0.rs +987 -0
  566. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/preview1.rs +2701 -0
  567. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/src/random.rs +109 -0
  568. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/tests/all/p2/async_.rs +514 -0
  569. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/tests/all/p2/mod.rs +126 -0
  570. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/tests/all/p2/preview1.rs +337 -0
  571. data/ext/cargo-vendor/wasmtime-wasi-36.0.19/tests/all/p2/sync.rs +426 -0
  572. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.19/.cargo-checksum.json +1 -0
  573. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.19/.cargo_vcs_info.json +6 -0
  574. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.19/Cargo.lock +1208 -0
  575. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.19/Cargo.toml +104 -0
  576. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.19/src/impls.rs +292 -0
  577. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.19/src/streams.rs +294 -0
  578. data/ext/cargo-vendor/wast-236.0.0/.cargo-checksum.json +1 -1
  579. data/ext/cargo-vendor/wast-35.0.2/.cargo-checksum.json +1 -1
  580. data/ext/cargo-vendor/wat-1.236.0/.cargo-checksum.json +1 -1
  581. data/ext/cargo-vendor/web-time-1.1.0/.cargo-checksum.json +1 -1
  582. data/ext/cargo-vendor/wiggle-36.0.19/.cargo-checksum.json +1 -0
  583. data/ext/cargo-vendor/wiggle-36.0.19/.cargo_vcs_info.json +6 -0
  584. data/ext/cargo-vendor/wiggle-36.0.19/Cargo.lock +1168 -0
  585. data/ext/cargo-vendor/wiggle-36.0.19/Cargo.toml +138 -0
  586. data/ext/cargo-vendor/wiggle-generate-36.0.19/.cargo-checksum.json +1 -0
  587. data/ext/cargo-vendor/wiggle-generate-36.0.19/.cargo_vcs_info.json +6 -0
  588. data/ext/cargo-vendor/wiggle-generate-36.0.19/Cargo.lock +115 -0
  589. data/ext/cargo-vendor/wiggle-generate-36.0.19/Cargo.toml +101 -0
  590. data/ext/cargo-vendor/wiggle-generate-36.0.19/src/module_trait.rs +96 -0
  591. data/ext/cargo-vendor/wiggle-generate-36.0.19/src/wasmtime.rs +176 -0
  592. data/ext/cargo-vendor/wiggle-macro-36.0.19/.cargo-checksum.json +1 -0
  593. data/ext/cargo-vendor/wiggle-macro-36.0.19/.cargo_vcs_info.json +6 -0
  594. data/ext/cargo-vendor/wiggle-macro-36.0.19/Cargo.lock +127 -0
  595. data/ext/cargo-vendor/wiggle-macro-36.0.19/Cargo.toml +97 -0
  596. data/ext/cargo-vendor/winapi-0.3.9/.cargo-checksum.json +1 -1
  597. data/ext/cargo-vendor/winapi-i686-pc-windows-gnu-0.4.0/.cargo-checksum.json +1 -1
  598. data/ext/cargo-vendor/winapi-util-0.1.9/.cargo-checksum.json +1 -1
  599. data/ext/cargo-vendor/winapi-x86_64-pc-windows-gnu-0.4.0/.cargo-checksum.json +1 -1
  600. data/ext/cargo-vendor/winch-codegen-36.0.19/.cargo-checksum.json +1 -0
  601. data/ext/cargo-vendor/winch-codegen-36.0.19/.cargo_vcs_info.json +6 -0
  602. data/ext/cargo-vendor/winch-codegen-36.0.19/Cargo.lock +606 -0
  603. data/ext/cargo-vendor/winch-codegen-36.0.19/Cargo.toml +132 -0
  604. data/ext/cargo-vendor/winch-codegen-36.0.19/src/codegen/bounds.rs +249 -0
  605. data/ext/cargo-vendor/winch-codegen-36.0.19/src/codegen/env.rs +429 -0
  606. data/ext/cargo-vendor/winch-codegen-36.0.19/src/codegen/error.rs +207 -0
  607. data/ext/cargo-vendor/winch-codegen-36.0.19/src/codegen/mod.rs +1645 -0
  608. data/ext/cargo-vendor/winch-codegen-36.0.19/src/isa/aarch64/asm.rs +1328 -0
  609. data/ext/cargo-vendor/winch-codegen-36.0.19/src/isa/aarch64/masm.rs +1617 -0
  610. data/ext/cargo-vendor/winch-codegen-36.0.19/src/isa/x64/masm.rs +3603 -0
  611. data/ext/cargo-vendor/winch-codegen-36.0.19/src/masm.rs +2339 -0
  612. data/ext/cargo-vendor/winch-codegen-36.0.19/src/visitor.rs +4653 -0
  613. data/ext/cargo-vendor/windows-core-0.61.2/.cargo-checksum.json +1 -1
  614. data/ext/cargo-vendor/windows-implement-0.60.0/.cargo-checksum.json +1 -1
  615. data/ext/cargo-vendor/windows-interface-0.59.1/.cargo-checksum.json +1 -1
  616. data/ext/cargo-vendor/windows-link-0.1.3/.cargo-checksum.json +1 -1
  617. data/ext/cargo-vendor/windows-result-0.3.4/.cargo-checksum.json +1 -1
  618. data/ext/cargo-vendor/windows-strings-0.4.2/.cargo-checksum.json +1 -1
  619. data/ext/cargo-vendor/windows-sys-0.59.0/.cargo-checksum.json +1 -1
  620. data/ext/cargo-vendor/windows-sys-0.60.2/.cargo-checksum.json +1 -1
  621. data/ext/cargo-vendor/windows-targets-0.52.6/.cargo-checksum.json +1 -1
  622. data/ext/cargo-vendor/windows-targets-0.53.3/.cargo-checksum.json +1 -1
  623. data/ext/cargo-vendor/windows_aarch64_gnullvm-0.52.6/.cargo-checksum.json +1 -1
  624. data/ext/cargo-vendor/windows_aarch64_gnullvm-0.53.0/.cargo-checksum.json +1 -1
  625. data/ext/cargo-vendor/windows_aarch64_msvc-0.52.6/.cargo-checksum.json +1 -1
  626. data/ext/cargo-vendor/windows_aarch64_msvc-0.53.0/.cargo-checksum.json +1 -1
  627. data/ext/cargo-vendor/windows_i686_gnu-0.52.6/.cargo-checksum.json +1 -1
  628. data/ext/cargo-vendor/windows_i686_gnu-0.53.0/.cargo-checksum.json +1 -1
  629. data/ext/cargo-vendor/windows_i686_gnullvm-0.52.6/.cargo-checksum.json +1 -1
  630. data/ext/cargo-vendor/windows_i686_gnullvm-0.53.0/.cargo-checksum.json +1 -1
  631. data/ext/cargo-vendor/windows_i686_msvc-0.52.6/.cargo-checksum.json +1 -1
  632. data/ext/cargo-vendor/windows_i686_msvc-0.53.0/.cargo-checksum.json +1 -1
  633. data/ext/cargo-vendor/windows_x86_64_gnu-0.52.6/.cargo-checksum.json +1 -1
  634. data/ext/cargo-vendor/windows_x86_64_gnu-0.53.0/.cargo-checksum.json +1 -1
  635. data/ext/cargo-vendor/windows_x86_64_gnullvm-0.52.6/.cargo-checksum.json +1 -1
  636. data/ext/cargo-vendor/windows_x86_64_gnullvm-0.53.0/.cargo-checksum.json +1 -1
  637. data/ext/cargo-vendor/windows_x86_64_msvc-0.52.6/.cargo-checksum.json +1 -1
  638. data/ext/cargo-vendor/windows_x86_64_msvc-0.53.0/.cargo-checksum.json +1 -1
  639. data/ext/cargo-vendor/winnow-0.7.10/.cargo-checksum.json +1 -1
  640. data/ext/cargo-vendor/winx-0.36.4/.cargo-checksum.json +1 -1
  641. data/ext/cargo-vendor/wit-bindgen-rt-0.39.0/.cargo-checksum.json +1 -1
  642. data/ext/cargo-vendor/wit-parser-0.236.0/.cargo-checksum.json +1 -1
  643. data/ext/cargo-vendor/witx-0.9.1/.cargo-checksum.json +1 -1
  644. data/ext/cargo-vendor/writeable-0.6.1/.cargo-checksum.json +1 -1
  645. data/ext/cargo-vendor/yoke-0.8.0/.cargo-checksum.json +1 -1
  646. data/ext/cargo-vendor/yoke-derive-0.8.0/.cargo-checksum.json +1 -1
  647. data/ext/cargo-vendor/zerocopy-0.8.25/.cargo-checksum.json +1 -1
  648. data/ext/cargo-vendor/zerocopy-derive-0.8.25/.cargo-checksum.json +1 -1
  649. data/ext/cargo-vendor/zerofrom-0.1.6/.cargo-checksum.json +1 -1
  650. data/ext/cargo-vendor/zerofrom-derive-0.1.6/.cargo-checksum.json +1 -1
  651. data/ext/cargo-vendor/zerotrie-0.2.2/.cargo-checksum.json +1 -1
  652. data/ext/cargo-vendor/zerovec-0.11.2/.cargo-checksum.json +1 -1
  653. data/ext/cargo-vendor/zerovec-derive-0.11.1/.cargo-checksum.json +1 -1
  654. data/ext/cargo-vendor/zstd-0.13.3/.cargo-checksum.json +1 -1
  655. data/ext/cargo-vendor/zstd-safe-7.2.4/.cargo-checksum.json +1 -1
  656. data/ext/cargo-vendor/zstd-sys-2.0.15+zstd.1.5.7/.cargo-checksum.json +1 -1
  657. data/ext/src/ruby_api/component/convert.rs +1 -1
  658. data/ext/src/ruby_api/convert.rs +35 -27
  659. data/ext/src/ruby_api/engine.rs +1 -1
  660. data/ext/src/ruby_api/externref.rs +93 -0
  661. data/ext/src/ruby_api/func.rs +35 -20
  662. data/ext/src/ruby_api/global.rs +13 -26
  663. data/ext/src/ruby_api/instance.rs +1 -4
  664. data/ext/src/ruby_api/mod.rs +1 -0
  665. data/ext/src/ruby_api/params.rs +12 -6
  666. data/ext/src/ruby_api/store.rs +20 -7
  667. data/ext/src/ruby_api/table.rs +45 -44
  668. data/lib/wasmtime/version.rb +1 -1
  669. metadata +1748 -1634
  670. data/ext/cargo-vendor/cap-fs-ext-3.4.4/.cargo-checksum.json +0 -1
  671. data/ext/cargo-vendor/cap-fs-ext-3.4.4/.cargo_vcs_info.json +0 -6
  672. data/ext/cargo-vendor/cap-fs-ext-3.4.4/Cargo.lock +0 -802
  673. data/ext/cargo-vendor/cap-fs-ext-3.4.4/Cargo.toml +0 -104
  674. data/ext/cargo-vendor/cap-fs-ext-3.4.4/Cargo.toml.orig +0 -41
  675. data/ext/cargo-vendor/cap-net-ext-3.4.4/.cargo-checksum.json +0 -1
  676. data/ext/cargo-vendor/cap-net-ext-3.4.4/.cargo_vcs_info.json +0 -6
  677. data/ext/cargo-vendor/cap-net-ext-3.4.4/Cargo.lock +0 -234
  678. data/ext/cargo-vendor/cap-net-ext-3.4.4/Cargo.toml +0 -48
  679. data/ext/cargo-vendor/cap-net-ext-3.4.4/Cargo.toml.orig +0 -19
  680. data/ext/cargo-vendor/cap-primitives-3.4.4/.cargo-checksum.json +0 -1
  681. data/ext/cargo-vendor/cap-primitives-3.4.4/.cargo_vcs_info.json +0 -6
  682. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.lock +0 -260
  683. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.toml +0 -96
  684. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.toml.orig +0 -47
  685. data/ext/cargo-vendor/cap-primitives-3.4.4/src/fs/manually/open.rs +0 -573
  686. data/ext/cargo-vendor/cap-primitives-3.4.4/src/fs/via_parent/open_parent.rs +0 -126
  687. data/ext/cargo-vendor/cap-primitives-3.4.4/src/rustix/linux/fs/stat_impl.rs +0 -55
  688. data/ext/cargo-vendor/cap-rand-3.4.4/.cargo-checksum.json +0 -1
  689. data/ext/cargo-vendor/cap-rand-3.4.4/.cargo_vcs_info.json +0 -6
  690. data/ext/cargo-vendor/cap-rand-3.4.4/Cargo.lock +0 -140
  691. data/ext/cargo-vendor/cap-rand-3.4.4/Cargo.toml +0 -48
  692. data/ext/cargo-vendor/cap-rand-3.4.4/Cargo.toml.orig +0 -21
  693. data/ext/cargo-vendor/cap-std-3.4.4/.cargo-checksum.json +0 -1
  694. data/ext/cargo-vendor/cap-std-3.4.4/.cargo_vcs_info.json +0 -6
  695. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.lock +0 -233
  696. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.toml +0 -77
  697. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.toml.orig +0 -32
  698. data/ext/cargo-vendor/cap-std-3.4.4/src/net/tcp_listener.rs +0 -248
  699. data/ext/cargo-vendor/cap-std-3.4.4/src/os/unix/net/unix_listener.rs +0 -156
  700. data/ext/cargo-vendor/cap-time-ext-3.4.4/.cargo-checksum.json +0 -1
  701. data/ext/cargo-vendor/cap-time-ext-3.4.4/.cargo_vcs_info.json +0 -6
  702. data/ext/cargo-vendor/cap-time-ext-3.4.4/Cargo.lock +0 -471
  703. data/ext/cargo-vendor/cap-time-ext-3.4.4/Cargo.toml +0 -58
  704. data/ext/cargo-vendor/cap-time-ext-3.4.4/Cargo.toml.orig +0 -26
  705. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.2/.cargo-checksum.json +0 -1
  706. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.2/.cargo_vcs_info.json +0 -6
  707. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.2/Cargo.lock +0 -133
  708. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.2/Cargo.toml +0 -97
  709. data/ext/cargo-vendor/cranelift-assembler-x64-0.123.2/Cargo.toml.orig +0 -25
  710. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.2/.cargo-checksum.json +0 -1
  711. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.2/.cargo_vcs_info.json +0 -6
  712. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.2/Cargo.lock +0 -16
  713. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.2/Cargo.toml +0 -72
  714. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.123.2/Cargo.toml.orig +0 -13
  715. data/ext/cargo-vendor/cranelift-bforest-0.123.2/.cargo-checksum.json +0 -1
  716. data/ext/cargo-vendor/cranelift-bforest-0.123.2/.cargo_vcs_info.json +0 -6
  717. data/ext/cargo-vendor/cranelift-bforest-0.123.2/Cargo.lock +0 -25
  718. data/ext/cargo-vendor/cranelift-bforest-0.123.2/Cargo.toml +0 -78
  719. data/ext/cargo-vendor/cranelift-bforest-0.123.2/Cargo.toml.orig +0 -19
  720. data/ext/cargo-vendor/cranelift-bitset-0.123.2/.cargo-checksum.json +0 -1
  721. data/ext/cargo-vendor/cranelift-bitset-0.123.2/.cargo_vcs_info.json +0 -6
  722. data/ext/cargo-vendor/cranelift-bitset-0.123.2/Cargo.lock +0 -73
  723. data/ext/cargo-vendor/cranelift-bitset-0.123.2/Cargo.toml +0 -93
  724. data/ext/cargo-vendor/cranelift-bitset-0.123.2/Cargo.toml.orig +0 -22
  725. data/ext/cargo-vendor/cranelift-codegen-0.123.0/.cargo-checksum.json +0 -1
  726. data/ext/cargo-vendor/cranelift-codegen-0.123.0/.cargo_vcs_info.json +0 -6
  727. data/ext/cargo-vendor/cranelift-codegen-0.123.0/Cargo.lock +0 -1279
  728. data/ext/cargo-vendor/cranelift-codegen-0.123.0/Cargo.toml +0 -251
  729. data/ext/cargo-vendor/cranelift-codegen-0.123.0/Cargo.toml.orig +0 -130
  730. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/ir/dfg.rs +0 -1884
  731. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/isa/aarch64/inst/emit.rs +0 -3634
  732. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/isa/aarch64/inst/mod.rs +0 -3071
  733. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/isa/aarch64/inst.isle +0 -5137
  734. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/isa/aarch64/lower/isle.rs +0 -855
  735. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/isa/x64/inst.isle +0 -4074
  736. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/isa/x64/lower.isle +0 -5055
  737. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/lib.rs +0 -123
  738. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/opts/icmp.isle +0 -292
  739. data/ext/cargo-vendor/cranelift-codegen-0.123.0/src/timing.rs +0 -305
  740. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.0/.cargo-checksum.json +0 -1
  741. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.0/.cargo_vcs_info.json +0 -6
  742. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.0/Cargo.lock +0 -110
  743. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.0/Cargo.toml +0 -89
  744. data/ext/cargo-vendor/cranelift-codegen-meta-0.123.0/Cargo.toml.orig +0 -26
  745. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.2/.cargo-checksum.json +0 -1
  746. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.2/.cargo_vcs_info.json +0 -6
  747. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.2/Cargo.lock +0 -7
  748. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.2/Cargo.toml +0 -34
  749. data/ext/cargo-vendor/cranelift-codegen-shared-0.123.2/Cargo.toml.orig +0 -14
  750. data/ext/cargo-vendor/cranelift-control-0.123.2/.cargo-checksum.json +0 -1
  751. data/ext/cargo-vendor/cranelift-control-0.123.2/.cargo_vcs_info.json +0 -6
  752. data/ext/cargo-vendor/cranelift-control-0.123.2/Cargo.lock +0 -16
  753. data/ext/cargo-vendor/cranelift-control-0.123.2/Cargo.toml +0 -45
  754. data/ext/cargo-vendor/cranelift-control-0.123.2/Cargo.toml.orig +0 -25
  755. data/ext/cargo-vendor/cranelift-entity-0.123.2/.cargo-checksum.json +0 -1
  756. data/ext/cargo-vendor/cranelift-entity-0.123.2/.cargo_vcs_info.json +0 -6
  757. data/ext/cargo-vendor/cranelift-entity-0.123.2/Cargo.lock +0 -77
  758. data/ext/cargo-vendor/cranelift-entity-0.123.2/Cargo.toml +0 -94
  759. data/ext/cargo-vendor/cranelift-entity-0.123.2/Cargo.toml.orig +0 -24
  760. data/ext/cargo-vendor/cranelift-frontend-0.123.0/.cargo-checksum.json +0 -1
  761. data/ext/cargo-vendor/cranelift-frontend-0.123.0/.cargo_vcs_info.json +0 -6
  762. data/ext/cargo-vendor/cranelift-frontend-0.123.0/Cargo.lock +0 -531
  763. data/ext/cargo-vendor/cranelift-frontend-0.123.0/Cargo.toml +0 -116
  764. data/ext/cargo-vendor/cranelift-frontend-0.123.0/Cargo.toml.orig +0 -32
  765. data/ext/cargo-vendor/cranelift-isle-0.123.0/.cargo-checksum.json +0 -1
  766. data/ext/cargo-vendor/cranelift-isle-0.123.0/.cargo_vcs_info.json +0 -6
  767. data/ext/cargo-vendor/cranelift-isle-0.123.0/Cargo.lock +0 -249
  768. data/ext/cargo-vendor/cranelift-isle-0.123.0/Cargo.toml +0 -88
  769. data/ext/cargo-vendor/cranelift-isle-0.123.0/Cargo.toml.orig +0 -26
  770. data/ext/cargo-vendor/cranelift-native-0.123.0/.cargo-checksum.json +0 -1
  771. data/ext/cargo-vendor/cranelift-native-0.123.0/.cargo_vcs_info.json +0 -6
  772. data/ext/cargo-vendor/cranelift-native-0.123.0/Cargo.lock +0 -305
  773. data/ext/cargo-vendor/cranelift-native-0.123.0/Cargo.toml +0 -54
  774. data/ext/cargo-vendor/cranelift-native-0.123.0/Cargo.toml.orig +0 -24
  775. data/ext/cargo-vendor/cranelift-srcgen-0.123.2/.cargo-checksum.json +0 -1
  776. data/ext/cargo-vendor/cranelift-srcgen-0.123.2/.cargo_vcs_info.json +0 -6
  777. data/ext/cargo-vendor/cranelift-srcgen-0.123.2/Cargo.lock +0 -7
  778. data/ext/cargo-vendor/cranelift-srcgen-0.123.2/Cargo.toml +0 -69
  779. data/ext/cargo-vendor/cranelift-srcgen-0.123.2/Cargo.toml.orig +0 -14
  780. data/ext/cargo-vendor/ittapi-sys-0.4.0/c-library/.gitignore +0 -2
  781. data/ext/cargo-vendor/ittapi-sys-0.4.0/c-library/src/ittnotify_refcol/.gitignore +0 -2
  782. data/ext/cargo-vendor/pulley-interpreter-36.0.0/.cargo-checksum.json +0 -1
  783. data/ext/cargo-vendor/pulley-interpreter-36.0.0/.cargo_vcs_info.json +0 -6
  784. data/ext/cargo-vendor/pulley-interpreter-36.0.0/Cargo.lock +0 -426
  785. data/ext/cargo-vendor/pulley-interpreter-36.0.0/Cargo.toml +0 -143
  786. data/ext/cargo-vendor/pulley-interpreter-36.0.0/src/lib.rs +0 -1419
  787. data/ext/cargo-vendor/pulley-macros-36.0.0/.cargo-checksum.json +0 -1
  788. data/ext/cargo-vendor/pulley-macros-36.0.0/.cargo_vcs_info.json +0 -6
  789. data/ext/cargo-vendor/pulley-macros-36.0.0/Cargo.lock +0 -47
  790. data/ext/cargo-vendor/pulley-macros-36.0.0/Cargo.toml +0 -42
  791. data/ext/cargo-vendor/regex-1.11.1/record/old-bench-log/.gitignore +0 -1
  792. data/ext/cargo-vendor/unicode-ident-1.0.18/tests/fst/.gitignore +0 -1
  793. data/ext/cargo-vendor/wasmparser-0.236.0/benches/.gitignore +0 -1
  794. data/ext/cargo-vendor/wasmtime-36.0.0/.cargo-checksum.json +0 -1
  795. data/ext/cargo-vendor/wasmtime-36.0.0/.cargo_vcs_info.json +0 -6
  796. data/ext/cargo-vendor/wasmtime-36.0.0/Cargo.lock +0 -2171
  797. data/ext/cargo-vendor/wasmtime-36.0.0/Cargo.toml +0 -537
  798. data/ext/cargo-vendor/wasmtime-36.0.0/Cargo.toml.orig +0 -404
  799. data/ext/cargo-vendor/wasmtime-36.0.0/src/lib.rs +0 -436
  800. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/concurrent.rs +0 -4657
  801. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/func/options.rs +0 -619
  802. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/func/typed.rs +0 -2881
  803. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/func.rs +0 -936
  804. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/instance.rs +0 -1035
  805. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/linker.rs +0 -902
  806. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/resource_table.rs +0 -353
  807. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/resources.rs +0 -1180
  808. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/store.rs +0 -143
  809. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/component/values.rs +0 -1146
  810. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/coredump.rs +0 -344
  811. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/externals/global.rs +0 -426
  812. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/externals/table.rs +0 -564
  813. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/externals/tag.rs +0 -112
  814. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/func.rs +0 -2684
  815. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/gc/enabled/arrayref.rs +0 -1066
  816. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/gc/enabled/exnref.rs +0 -788
  817. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/gc/enabled/structref.rs +0 -861
  818. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/instance.rs +0 -959
  819. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/linker.rs +0 -1539
  820. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/memory.rs +0 -1113
  821. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/module/registry.rs +0 -358
  822. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/store.rs +0 -2543
  823. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/trampoline/table.rs +0 -43
  824. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/trampoline/tag.rs +0 -41
  825. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/vm/component/resources.rs +0 -512
  826. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/vm/component.rs +0 -1011
  827. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/vm/cow.rs +0 -1167
  828. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +0 -1020
  829. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/vm/memory.rs +0 -772
  830. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/vm/table.rs +0 -1232
  831. data/ext/cargo-vendor/wasmtime-36.0.0/src/runtime/vm.rs +0 -518
  832. data/ext/cargo-vendor/wasmtime-environ-36.0.0/.cargo-checksum.json +0 -1
  833. data/ext/cargo-vendor/wasmtime-environ-36.0.0/.cargo_vcs_info.json +0 -6
  834. data/ext/cargo-vendor/wasmtime-environ-36.0.0/Cargo.lock +0 -650
  835. data/ext/cargo-vendor/wasmtime-environ-36.0.0/Cargo.toml +0 -233
  836. data/ext/cargo-vendor/wasmtime-environ-36.0.0/src/fact/trampoline.rs +0 -3996
  837. data/ext/cargo-vendor/wasmtime-internal-asm-macros-36.0.0/.cargo-checksum.json +0 -1
  838. data/ext/cargo-vendor/wasmtime-internal-asm-macros-36.0.0/.cargo_vcs_info.json +0 -6
  839. data/ext/cargo-vendor/wasmtime-internal-asm-macros-36.0.0/Cargo.lock +0 -16
  840. data/ext/cargo-vendor/wasmtime-internal-asm-macros-36.0.0/Cargo.toml +0 -35
  841. data/ext/cargo-vendor/wasmtime-internal-cache-36.0.0/.cargo-checksum.json +0 -1
  842. data/ext/cargo-vendor/wasmtime-internal-cache-36.0.0/.cargo_vcs_info.json +0 -6
  843. data/ext/cargo-vendor/wasmtime-internal-cache-36.0.0/Cargo.lock +0 -840
  844. data/ext/cargo-vendor/wasmtime-internal-cache-36.0.0/Cargo.toml +0 -127
  845. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.0/.cargo-checksum.json +0 -1
  846. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.0/.cargo_vcs_info.json +0 -6
  847. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.0/Cargo.lock +0 -285
  848. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.0/Cargo.toml +0 -145
  849. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.0/tests/expanded/resources-export_concurrent.rs +0 -798
  850. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.0/tests/expanded/resources-import_concurrent.rs +0 -1170
  851. data/ext/cargo-vendor/wasmtime-internal-component-macro-36.0.0/tests/expanded/unstable-features_concurrent.rs +0 -479
  852. data/ext/cargo-vendor/wasmtime-internal-component-util-36.0.0/.cargo-checksum.json +0 -1
  853. data/ext/cargo-vendor/wasmtime-internal-component-util-36.0.0/.cargo_vcs_info.json +0 -6
  854. data/ext/cargo-vendor/wasmtime-internal-component-util-36.0.0/Cargo.lock +0 -7
  855. data/ext/cargo-vendor/wasmtime-internal-component-util-36.0.0/Cargo.toml +0 -38
  856. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.0/.cargo-checksum.json +0 -1
  857. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.0/.cargo_vcs_info.json +0 -6
  858. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.0/Cargo.lock +0 -697
  859. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.0/Cargo.toml +0 -181
  860. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.0/src/lib.rs +0 -468
  861. data/ext/cargo-vendor/wasmtime-internal-cranelift-36.0.0/src/translate/code_translator.rs +0 -4140
  862. data/ext/cargo-vendor/wasmtime-internal-fiber-36.0.0/.cargo-checksum.json +0 -1
  863. data/ext/cargo-vendor/wasmtime-internal-fiber-36.0.0/.cargo_vcs_info.json +0 -6
  864. data/ext/cargo-vendor/wasmtime-internal-fiber-36.0.0/Cargo.lock +0 -353
  865. data/ext/cargo-vendor/wasmtime-internal-fiber-36.0.0/Cargo.toml +0 -110
  866. data/ext/cargo-vendor/wasmtime-internal-jit-debug-36.0.0/.cargo-checksum.json +0 -1
  867. data/ext/cargo-vendor/wasmtime-internal-jit-debug-36.0.0/.cargo_vcs_info.json +0 -6
  868. data/ext/cargo-vendor/wasmtime-internal-jit-debug-36.0.0/Cargo.lock +0 -203
  869. data/ext/cargo-vendor/wasmtime-internal-jit-debug-36.0.0/Cargo.toml +0 -109
  870. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-36.0.0/.cargo-checksum.json +0 -1
  871. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-36.0.0/.cargo_vcs_info.json +0 -6
  872. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-36.0.0/Cargo.lock +0 -104
  873. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-36.0.0/Cargo.toml +0 -90
  874. data/ext/cargo-vendor/wasmtime-internal-math-36.0.0/.cargo-checksum.json +0 -1
  875. data/ext/cargo-vendor/wasmtime-internal-math-36.0.0/.cargo_vcs_info.json +0 -6
  876. data/ext/cargo-vendor/wasmtime-internal-math-36.0.0/Cargo.lock +0 -16
  877. data/ext/cargo-vendor/wasmtime-internal-math-36.0.0/Cargo.toml +0 -77
  878. data/ext/cargo-vendor/wasmtime-internal-slab-36.0.0/.cargo-checksum.json +0 -1
  879. data/ext/cargo-vendor/wasmtime-internal-slab-36.0.0/.cargo_vcs_info.json +0 -6
  880. data/ext/cargo-vendor/wasmtime-internal-slab-36.0.0/Cargo.lock +0 -7
  881. data/ext/cargo-vendor/wasmtime-internal-slab-36.0.0/Cargo.toml +0 -69
  882. data/ext/cargo-vendor/wasmtime-internal-unwinder-36.0.0/.cargo-checksum.json +0 -1
  883. data/ext/cargo-vendor/wasmtime-internal-unwinder-36.0.0/.cargo_vcs_info.json +0 -6
  884. data/ext/cargo-vendor/wasmtime-internal-unwinder-36.0.0/Cargo.lock +0 -328
  885. data/ext/cargo-vendor/wasmtime-internal-unwinder-36.0.0/Cargo.toml +0 -105
  886. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-36.0.0/.cargo-checksum.json +0 -1
  887. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-36.0.0/.cargo_vcs_info.json +0 -6
  888. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-36.0.0/Cargo.lock +0 -47
  889. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-36.0.0/Cargo.toml +0 -43
  890. data/ext/cargo-vendor/wasmtime-internal-winch-36.0.0/.cargo-checksum.json +0 -1
  891. data/ext/cargo-vendor/wasmtime-internal-winch-36.0.0/.cargo_vcs_info.json +0 -6
  892. data/ext/cargo-vendor/wasmtime-internal-winch-36.0.0/Cargo.lock +0 -634
  893. data/ext/cargo-vendor/wasmtime-internal-winch-36.0.0/Cargo.toml +0 -127
  894. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.0/.cargo-checksum.json +0 -1
  895. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.0/.cargo_vcs_info.json +0 -6
  896. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.0/Cargo.lock +0 -193
  897. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.0/Cargo.toml +0 -89
  898. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-36.0.0/src/lib.rs +0 -3467
  899. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/.cargo-checksum.json +0 -1
  900. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/.cargo_vcs_info.json +0 -6
  901. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/Cargo.lock +0 -2510
  902. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/Cargo.toml +0 -252
  903. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/Cargo.toml.orig +0 -71
  904. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/cli/file.rs +0 -150
  905. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/cli/stdout.rs +0 -99
  906. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/ctx.rs +0 -536
  907. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/filesystem.rs +0 -32
  908. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/lib.rs +0 -46
  909. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/p2/filesystem.rs +0 -573
  910. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/p2/host/filesystem.rs +0 -1057
  911. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/p2/host/random.rs +0 -36
  912. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/p2/host/udp.rs +0 -711
  913. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/p2/pipe.rs +0 -885
  914. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/p2/tcp.rs +0 -970
  915. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/preview0.rs +0 -983
  916. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/preview1.rs +0 -2617
  917. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/src/random.rs +0 -102
  918. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/tests/all/p2/async_.rs +0 -401
  919. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/tests/all/p2/mod.rs +0 -88
  920. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/tests/all/p2/preview1.rs +0 -251
  921. data/ext/cargo-vendor/wasmtime-wasi-36.0.0/tests/all/p2/sync.rs +0 -335
  922. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.0/.cargo-checksum.json +0 -1
  923. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.0/.cargo_vcs_info.json +0 -6
  924. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.0/Cargo.lock +0 -1208
  925. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.0/Cargo.toml +0 -104
  926. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.0/src/impls.rs +0 -290
  927. data/ext/cargo-vendor/wasmtime-wasi-io-36.0.0/src/streams.rs +0 -312
  928. data/ext/cargo-vendor/wast-236.0.0/tests/.gitattributes +0 -1
  929. data/ext/cargo-vendor/wast-236.0.0/tests/.gitignore +0 -1
  930. data/ext/cargo-vendor/wiggle-36.0.0/.cargo-checksum.json +0 -1
  931. data/ext/cargo-vendor/wiggle-36.0.0/.cargo_vcs_info.json +0 -6
  932. data/ext/cargo-vendor/wiggle-36.0.0/Cargo.lock +0 -1168
  933. data/ext/cargo-vendor/wiggle-36.0.0/Cargo.toml +0 -138
  934. data/ext/cargo-vendor/wiggle-generate-36.0.0/.cargo-checksum.json +0 -1
  935. data/ext/cargo-vendor/wiggle-generate-36.0.0/.cargo_vcs_info.json +0 -6
  936. data/ext/cargo-vendor/wiggle-generate-36.0.0/Cargo.lock +0 -115
  937. data/ext/cargo-vendor/wiggle-generate-36.0.0/Cargo.toml +0 -101
  938. data/ext/cargo-vendor/wiggle-generate-36.0.0/src/module_trait.rs +0 -89
  939. data/ext/cargo-vendor/wiggle-generate-36.0.0/src/wasmtime.rs +0 -173
  940. data/ext/cargo-vendor/wiggle-macro-36.0.0/.cargo-checksum.json +0 -1
  941. data/ext/cargo-vendor/wiggle-macro-36.0.0/.cargo_vcs_info.json +0 -6
  942. data/ext/cargo-vendor/wiggle-macro-36.0.0/Cargo.lock +0 -127
  943. data/ext/cargo-vendor/wiggle-macro-36.0.0/Cargo.toml +0 -97
  944. data/ext/cargo-vendor/winch-codegen-36.0.0/.cargo-checksum.json +0 -1
  945. data/ext/cargo-vendor/winch-codegen-36.0.0/.cargo_vcs_info.json +0 -6
  946. data/ext/cargo-vendor/winch-codegen-36.0.0/Cargo.lock +0 -606
  947. data/ext/cargo-vendor/winch-codegen-36.0.0/Cargo.toml +0 -132
  948. data/ext/cargo-vendor/winch-codegen-36.0.0/src/codegen/bounds.rs +0 -233
  949. data/ext/cargo-vendor/winch-codegen-36.0.0/src/codegen/env.rs +0 -417
  950. data/ext/cargo-vendor/winch-codegen-36.0.0/src/codegen/error.rs +0 -197
  951. data/ext/cargo-vendor/winch-codegen-36.0.0/src/codegen/mod.rs +0 -1631
  952. data/ext/cargo-vendor/winch-codegen-36.0.0/src/isa/aarch64/asm.rs +0 -1301
  953. data/ext/cargo-vendor/winch-codegen-36.0.0/src/isa/aarch64/masm.rs +0 -1602
  954. data/ext/cargo-vendor/winch-codegen-36.0.0/src/isa/x64/masm.rs +0 -3578
  955. data/ext/cargo-vendor/winch-codegen-36.0.0/src/masm.rs +0 -2326
  956. data/ext/cargo-vendor/winch-codegen-36.0.0/src/visitor.rs +0 -4640
  957. data/ext/cargo-vendor/wit-parser-0.236.0/tests/.gitignore +0 -2
  958. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/COPYRIGHT +0 -0
  959. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/LICENSE-APACHE +0 -0
  960. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  961. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/LICENSE-MIT +0 -0
  962. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/README.md +0 -0
  963. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/build.rs +0 -0
  964. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/dir_entry_ext.rs +0 -0
  965. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/dir_ext.rs +0 -0
  966. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/file_type_ext.rs +0 -0
  967. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/is_file_read_write.rs +0 -0
  968. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/lib.rs +0 -0
  969. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/metadata_ext.rs +0 -0
  970. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/open_options_follow_ext.rs +0 -0
  971. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/open_options_maybe_dir_ext.rs +0 -0
  972. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/open_options_sync_ext.rs +0 -0
  973. /data/ext/cargo-vendor/{cap-fs-ext-3.4.4 → cap-fs-ext-3.4.6}/src/reopen.rs +0 -0
  974. /data/ext/cargo-vendor/{cap-net-ext-3.4.4 → cap-net-ext-3.4.6}/COPYRIGHT +0 -0
  975. /data/ext/cargo-vendor/{cap-net-ext-3.4.4 → cap-net-ext-3.4.6}/LICENSE-APACHE +0 -0
  976. /data/ext/cargo-vendor/{cap-net-ext-3.4.4 → cap-net-ext-3.4.6}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  977. /data/ext/cargo-vendor/{cap-net-ext-3.4.4 → cap-net-ext-3.4.6}/LICENSE-MIT +0 -0
  978. /data/ext/cargo-vendor/{cap-net-ext-3.4.4 → cap-net-ext-3.4.6}/README.md +0 -0
  979. /data/ext/cargo-vendor/{cap-net-ext-3.4.4 → cap-net-ext-3.4.6}/src/lib.rs +0 -0
  980. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/COPYRIGHT +0 -0
  981. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/LICENSE-APACHE +0 -0
  982. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  983. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/LICENSE-MIT +0 -0
  984. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/README.md +0 -0
  985. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/build.rs +0 -0
  986. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/access.rs +0 -0
  987. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/assert_same_file.rs +0 -0
  988. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/canonicalize.rs +0 -0
  989. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/copy.rs +0 -0
  990. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/create_dir.rs +0 -0
  991. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/dir_builder.rs +0 -0
  992. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/dir_entry.rs +0 -0
  993. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/dir_options.rs +0 -0
  994. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/errors.rs +0 -0
  995. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/file.rs +0 -0
  996. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/file_path_by_searching.rs +0 -0
  997. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/file_type.rs +0 -0
  998. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/follow_symlinks.rs +0 -0
  999. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/hard_link.rs +0 -0
  1000. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/is_file_read_write.rs +0 -0
  1001. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/manually/canonical_path.rs +0 -0
  1002. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/manually/canonicalize.rs +0 -0
  1003. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/manually/cow_component.rs +0 -0
  1004. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/manually/mod.rs +0 -0
  1005. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/manually/open_entry.rs +0 -0
  1006. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/manually/read_link_one.rs +0 -0
  1007. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/maybe_owned_file.rs +0 -0
  1008. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/metadata.rs +0 -0
  1009. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/mod.rs +0 -0
  1010. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/open.rs +0 -0
  1011. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/open_ambient.rs +0 -0
  1012. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/open_dir.rs +0 -0
  1013. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/open_options.rs +0 -0
  1014. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/open_unchecked_error.rs +0 -0
  1015. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/permissions.rs +0 -0
  1016. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/read_dir.rs +0 -0
  1017. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/read_link.rs +0 -0
  1018. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/remove_dir.rs +0 -0
  1019. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/remove_dir_all.rs +0 -0
  1020. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/remove_file.rs +0 -0
  1021. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/remove_open_dir.rs +0 -0
  1022. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/rename.rs +0 -0
  1023. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/reopen.rs +0 -0
  1024. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/set_permissions.rs +0 -0
  1025. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/set_times.rs +0 -0
  1026. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/stat.rs +0 -0
  1027. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/symlink.rs +0 -0
  1028. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/system_time_spec.rs +0 -0
  1029. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/access.rs +0 -0
  1030. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/create_dir.rs +0 -0
  1031. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/hard_link.rs +0 -0
  1032. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/mod.rs +0 -0
  1033. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/read_link.rs +0 -0
  1034. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/remove_dir.rs +0 -0
  1035. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/remove_file.rs +0 -0
  1036. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/rename.rs +0 -0
  1037. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/set_permissions.rs +0 -0
  1038. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/set_symlink_permissions.rs +0 -0
  1039. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/set_times_nofollow.rs +0 -0
  1040. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/fs/via_parent/symlink.rs +0 -0
  1041. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/lib.rs +0 -0
  1042. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/net/mod.rs +0 -0
  1043. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/net/pool.rs +0 -0
  1044. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/darwin/fs/file_path.rs +0 -0
  1045. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/darwin/fs/mod.rs +0 -0
  1046. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/darwin/mod.rs +0 -0
  1047. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/check.rs +0 -0
  1048. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/mod.rs +0 -0
  1049. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/open_entry_impl.rs +0 -0
  1050. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/open_impl.rs +0 -0
  1051. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/remove_dir_impl.rs +0 -0
  1052. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/remove_file_impl.rs +0 -0
  1053. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/set_permissions_impl.rs +0 -0
  1054. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/set_times_impl.rs +0 -0
  1055. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/fs/stat_impl.rs +0 -0
  1056. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/freebsd/mod.rs +0 -0
  1057. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/access_unchecked.rs +0 -0
  1058. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/copy_impl.rs +0 -0
  1059. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/create_dir_unchecked.rs +0 -0
  1060. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/cvt.rs +0 -0
  1061. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/dir_entry_inner.rs +0 -0
  1062. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/dir_options_ext.rs +0 -0
  1063. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/dir_utils.rs +0 -0
  1064. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/errors.rs +0 -0
  1065. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/file_path.rs +0 -0
  1066. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/file_type_ext.rs +0 -0
  1067. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/hard_link_unchecked.rs +0 -0
  1068. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/is_file_read_write_impl.rs +0 -0
  1069. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/is_root_dir.rs +0 -0
  1070. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/is_same_file.rs +0 -0
  1071. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/metadata_ext.rs +0 -0
  1072. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/mod.rs +0 -0
  1073. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/oflags.rs +0 -0
  1074. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/open_options_ext.rs +0 -0
  1075. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/open_unchecked.rs +0 -0
  1076. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/permissions_ext.rs +0 -0
  1077. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/read_dir_inner.rs +0 -0
  1078. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/read_link_unchecked.rs +0 -0
  1079. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/remove_dir_all_impl.rs +0 -0
  1080. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/remove_dir_unchecked.rs +0 -0
  1081. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/remove_file_unchecked.rs +0 -0
  1082. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/remove_open_dir_by_searching.rs +0 -0
  1083. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/rename_unchecked.rs +0 -0
  1084. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/reopen_impl.rs +0 -0
  1085. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/set_permissions_impl.rs +0 -0
  1086. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/set_symlink_permissions_unchecked.rs +0 -0
  1087. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/set_times_impl.rs +0 -0
  1088. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/stat_unchecked.rs +0 -0
  1089. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/symlink_unchecked.rs +0 -0
  1090. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/fs/times.rs +0 -0
  1091. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/canonicalize_impl.rs +0 -0
  1092. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/file_metadata.rs +0 -0
  1093. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/file_path.rs +0 -0
  1094. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/mod.rs +0 -0
  1095. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/open_entry_impl.rs +0 -0
  1096. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/open_impl.rs +0 -0
  1097. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/procfs.rs +0 -0
  1098. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/set_permissions_impl.rs +0 -0
  1099. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/fs/set_times_impl.rs +0 -0
  1100. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/linux/mod.rs +0 -0
  1101. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/rustix/mod.rs +0 -0
  1102. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/time/instant.rs +0 -0
  1103. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/time/mod.rs +0 -0
  1104. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/time/monotonic_clock.rs +0 -0
  1105. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/time/system_clock.rs +0 -0
  1106. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/time/system_time.rs +0 -0
  1107. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/access_unchecked.rs +0 -0
  1108. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/copy.rs +0 -0
  1109. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/create_dir_unchecked.rs +0 -0
  1110. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/create_file_at_w.rs +0 -0
  1111. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/dir_entry_inner.rs +0 -0
  1112. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/dir_options_ext.rs +0 -0
  1113. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/dir_utils.rs +0 -0
  1114. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/errors.rs +0 -0
  1115. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/file_type_ext.rs +0 -0
  1116. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/get_path.rs +0 -0
  1117. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/hard_link_unchecked.rs +0 -0
  1118. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/is_file_read_write_impl.rs +0 -0
  1119. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/is_same_file.rs +0 -0
  1120. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/metadata_ext.rs +0 -0
  1121. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/mod.rs +0 -0
  1122. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/oflags.rs +0 -0
  1123. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/open_impl.rs +0 -0
  1124. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/open_options_ext.rs +0 -0
  1125. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/open_unchecked.rs +0 -0
  1126. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/read_dir_inner.rs +0 -0
  1127. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/read_link_impl.rs +0 -0
  1128. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/read_link_unchecked.rs +0 -0
  1129. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/remove_dir_all_impl.rs +0 -0
  1130. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/remove_dir_unchecked.rs +0 -0
  1131. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/remove_file_unchecked.rs +0 -0
  1132. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/remove_open_dir_impl.rs +0 -0
  1133. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/rename_unchecked.rs +0 -0
  1134. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/reopen_impl.rs +0 -0
  1135. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/set_permissions_unchecked.rs +0 -0
  1136. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/set_symlink_permissions_unchecked.rs +0 -0
  1137. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/set_times_impl.rs +0 -0
  1138. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/stat_unchecked.rs +0 -0
  1139. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/fs/symlink_unchecked.rs +0 -0
  1140. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.6}/src/windows/mod.rs +0 -0
  1141. /data/ext/cargo-vendor/{cap-rand-3.4.4 → cap-rand-3.4.6}/COPYRIGHT +0 -0
  1142. /data/ext/cargo-vendor/{cap-rand-3.4.4 → cap-rand-3.4.6}/LICENSE-APACHE +0 -0
  1143. /data/ext/cargo-vendor/{cap-rand-3.4.4 → cap-rand-3.4.6}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  1144. /data/ext/cargo-vendor/{cap-rand-3.4.4 → cap-rand-3.4.6}/LICENSE-MIT +0 -0
  1145. /data/ext/cargo-vendor/{cap-rand-3.4.4 → cap-rand-3.4.6}/README.md +0 -0
  1146. /data/ext/cargo-vendor/{cap-rand-3.4.4 → cap-rand-3.4.6}/src/lib.rs +0 -0
  1147. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/COPYRIGHT +0 -0
  1148. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/LICENSE-APACHE +0 -0
  1149. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  1150. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/LICENSE-MIT +0 -0
  1151. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/README.md +0 -0
  1152. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/build.rs +0 -0
  1153. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs/dir.rs +0 -0
  1154. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs/dir_entry.rs +0 -0
  1155. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs/file.rs +0 -0
  1156. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs/mod.rs +0 -0
  1157. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs/read_dir.rs +0 -0
  1158. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs_utf8/dir.rs +0 -0
  1159. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs_utf8/dir_entry.rs +0 -0
  1160. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs_utf8/file.rs +0 -0
  1161. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs_utf8/mod.rs +0 -0
  1162. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/fs_utf8/read_dir.rs +0 -0
  1163. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/lib.rs +0 -0
  1164. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/net/incoming.rs +0 -0
  1165. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/net/mod.rs +0 -0
  1166. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/net/pool.rs +0 -0
  1167. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/net/tcp_stream.rs +0 -0
  1168. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/net/udp_socket.rs +0 -0
  1169. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/os/mod.rs +0 -0
  1170. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/os/unix/mod.rs +0 -0
  1171. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/os/unix/net/incoming.rs +0 -0
  1172. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/os/unix/net/mod.rs +0 -0
  1173. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/os/unix/net/unix_datagram.rs +0 -0
  1174. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/os/unix/net/unix_stream.rs +0 -0
  1175. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.6}/src/time/mod.rs +0 -0
  1176. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/COPYRIGHT +0 -0
  1177. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/LICENSE-APACHE +0 -0
  1178. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  1179. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/LICENSE-MIT +0 -0
  1180. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/README.md +0 -0
  1181. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/src/lib.rs +0 -0
  1182. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/src/monotonic_clock.rs +0 -0
  1183. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/src/system_clock.rs +0 -0
  1184. /data/ext/cargo-vendor/{cap-time-ext-3.4.4 → cap-time-ext-3.4.6}/src/timezone.rs +0 -0
  1185. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/README.md +0 -0
  1186. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/build.rs +0 -0
  1187. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/api.rs +0 -0
  1188. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/custom.rs +0 -0
  1189. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/evex.rs +0 -0
  1190. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/fixed.rs +0 -0
  1191. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/fuzz.rs +0 -0
  1192. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/gpr.rs +0 -0
  1193. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/imm.rs +0 -0
  1194. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/inst.rs +0 -0
  1195. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/lib.rs +0 -0
  1196. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/main.rs +0 -0
  1197. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/mem.rs +0 -0
  1198. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/rex.rs +0 -0
  1199. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/vex.rs +0 -0
  1200. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.123.2 → cranelift-assembler-x64-0.123.19}/src/xmm.rs +0 -0
  1201. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/README.md +0 -0
  1202. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/dsl/custom.rs +0 -0
  1203. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/dsl/encoding.rs +0 -0
  1204. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/dsl/features.rs +0 -0
  1205. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/dsl/format.rs +0 -0
  1206. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/dsl.rs +0 -0
  1207. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/generate/features.rs +0 -0
  1208. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/generate/format.rs +0 -0
  1209. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/generate/inst.rs +0 -0
  1210. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/generate/operand.rs +0 -0
  1211. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/generate.rs +0 -0
  1212. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/abs.rs +0 -0
  1213. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/add.rs +0 -0
  1214. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/align.rs +0 -0
  1215. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/and.rs +0 -0
  1216. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/atomic.rs +0 -0
  1217. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/avg.rs +0 -0
  1218. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/bitmanip.rs +0 -0
  1219. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/cmov.rs +0 -0
  1220. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/cmp.rs +0 -0
  1221. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/cvt.rs +0 -0
  1222. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/div.rs +0 -0
  1223. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/fma.rs +0 -0
  1224. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/jmp.rs +0 -0
  1225. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/lanes.rs +0 -0
  1226. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/max.rs +0 -0
  1227. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/min.rs +0 -0
  1228. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/misc.rs +0 -0
  1229. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/mov.rs +0 -0
  1230. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/mul.rs +0 -0
  1231. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/neg.rs +0 -0
  1232. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/nop.rs +0 -0
  1233. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/or.rs +0 -0
  1234. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/pack.rs +0 -0
  1235. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/pma.rs +0 -0
  1236. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/recip.rs +0 -0
  1237. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/round.rs +0 -0
  1238. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/setcc.rs +0 -0
  1239. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/shift.rs +0 -0
  1240. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/sqrt.rs +0 -0
  1241. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/stack.rs +0 -0
  1242. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/sub.rs +0 -0
  1243. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/unpack.rs +0 -0
  1244. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions/xor.rs +0 -0
  1245. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/instructions.rs +0 -0
  1246. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/lib.rs +0 -0
  1247. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.123.2 → cranelift-assembler-x64-meta-0.123.19}/src/main.rs +0 -0
  1248. /data/ext/cargo-vendor/{cranelift-bforest-0.123.2 → cranelift-bforest-0.123.19}/LICENSE +0 -0
  1249. /data/ext/cargo-vendor/{cranelift-bforest-0.123.2 → cranelift-bforest-0.123.19}/README.md +0 -0
  1250. /data/ext/cargo-vendor/{cranelift-bforest-0.123.2 → cranelift-bforest-0.123.19}/src/lib.rs +0 -0
  1251. /data/ext/cargo-vendor/{cranelift-bforest-0.123.2 → cranelift-bforest-0.123.19}/src/map.rs +0 -0
  1252. /data/ext/cargo-vendor/{cranelift-bforest-0.123.2 → cranelift-bforest-0.123.19}/src/node.rs +0 -0
  1253. /data/ext/cargo-vendor/{cranelift-bforest-0.123.2 → cranelift-bforest-0.123.19}/src/path.rs +0 -0
  1254. /data/ext/cargo-vendor/{cranelift-bforest-0.123.2 → cranelift-bforest-0.123.19}/src/pool.rs +0 -0
  1255. /data/ext/cargo-vendor/{cranelift-bforest-0.123.2 → cranelift-bforest-0.123.19}/src/set.rs +0 -0
  1256. /data/ext/cargo-vendor/{cranelift-bitset-0.123.2 → cranelift-bitset-0.123.19}/src/compound.rs +0 -0
  1257. /data/ext/cargo-vendor/{cranelift-bitset-0.123.2 → cranelift-bitset-0.123.19}/src/lib.rs +0 -0
  1258. /data/ext/cargo-vendor/{cranelift-bitset-0.123.2 → cranelift-bitset-0.123.19}/src/scalar.rs +0 -0
  1259. /data/ext/cargo-vendor/{cranelift-bitset-0.123.2 → cranelift-bitset-0.123.19}/tests/bitset.rs +0 -0
  1260. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/LICENSE +0 -0
  1261. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/README.md +0 -0
  1262. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/build.rs +0 -0
  1263. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/alias_analysis.rs +0 -0
  1264. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/binemit/mod.rs +0 -0
  1265. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/cfg_printer.rs +0 -0
  1266. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/constant_hash.rs +0 -0
  1267. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/context.rs +0 -0
  1268. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ctxhash.rs +0 -0
  1269. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/cursor.rs +0 -0
  1270. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/data_value.rs +0 -0
  1271. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/dbg.rs +0 -0
  1272. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/dominator_tree/simple.rs +0 -0
  1273. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/dominator_tree.rs +0 -0
  1274. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/egraph/cost.rs +0 -0
  1275. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/egraph/elaborate.rs +0 -0
  1276. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/egraph.rs +0 -0
  1277. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/flowgraph.rs +0 -0
  1278. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/incremental_cache.rs +0 -0
  1279. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/inline.rs +0 -0
  1280. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/inst_predicates.rs +0 -0
  1281. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/inst_specs.isle +0 -0
  1282. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/atomic_rmw_op.rs +0 -0
  1283. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/builder.rs +0 -0
  1284. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/condcodes.rs +0 -0
  1285. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/constant.rs +0 -0
  1286. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/dynamic_type.rs +0 -0
  1287. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/entities.rs +0 -0
  1288. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/exception_table.rs +0 -0
  1289. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/extfunc.rs +0 -0
  1290. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/extname.rs +0 -0
  1291. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/function.rs +0 -0
  1292. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/globalvalue.rs +0 -0
  1293. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/immediates.rs +0 -0
  1294. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/instructions.rs +0 -0
  1295. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/jumptable.rs +0 -0
  1296. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/known_symbol.rs +0 -0
  1297. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/layout.rs +0 -0
  1298. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/libcall.rs +0 -0
  1299. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/memflags.rs +0 -0
  1300. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/memtype.rs +0 -0
  1301. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/mod.rs +0 -0
  1302. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/pcc.rs +0 -0
  1303. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/progpoint.rs +0 -0
  1304. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/sourceloc.rs +0 -0
  1305. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/stackslot.rs +0 -0
  1306. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/trapcode.rs +0 -0
  1307. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/types.rs +0 -0
  1308. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ir/user_stack_maps.rs +0 -0
  1309. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/abi.rs +0 -0
  1310. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/inst/args.rs +0 -0
  1311. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  1312. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/inst/imms.rs +0 -0
  1313. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/inst/regs.rs +0 -0
  1314. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  1315. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/inst/unwind.rs +0 -0
  1316. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/inst_neon.isle +0 -0
  1317. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1318. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/lower.isle +0 -0
  1319. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/lower.rs +0 -0
  1320. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1321. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/mod.rs +0 -0
  1322. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/pcc.rs +0 -0
  1323. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/aarch64/settings.rs +0 -0
  1324. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/call_conv.rs +0 -0
  1325. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/mod.rs +0 -0
  1326. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley32.rs +0 -0
  1327. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley64.rs +0 -0
  1328. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/abi.rs +0 -0
  1329. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/inst/args.rs +0 -0
  1330. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/inst/emit.rs +0 -0
  1331. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/inst/mod.rs +0 -0
  1332. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/inst/regs.rs +0 -0
  1333. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/inst.isle +0 -0
  1334. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/lower/isle/generated_code.rs +0 -0
  1335. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/lower/isle.rs +0 -0
  1336. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/lower.isle +0 -0
  1337. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/lower.rs +0 -0
  1338. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/mod.rs +0 -0
  1339. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/pulley_shared/settings.rs +0 -0
  1340. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/abi.rs +0 -0
  1341. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/args.rs +0 -0
  1342. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/emit.rs +0 -0
  1343. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  1344. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/encode.rs +0 -0
  1345. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/imms.rs +0 -0
  1346. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/mod.rs +0 -0
  1347. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/regs.rs +0 -0
  1348. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  1349. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/unwind.rs +0 -0
  1350. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst/vector.rs +0 -0
  1351. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst.isle +0 -0
  1352. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/inst_vector.isle +0 -0
  1353. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1354. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/lower/isle.rs +0 -0
  1355. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/lower.isle +0 -0
  1356. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/lower.rs +0 -0
  1357. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/mod.rs +0 -0
  1358. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/riscv64/settings.rs +0 -0
  1359. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/abi.rs +0 -0
  1360. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst/args.rs +0 -0
  1361. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst/emit.rs +0 -0
  1362. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst/emit_tests.rs +0 -0
  1363. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst/imms.rs +0 -0
  1364. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst/mod.rs +0 -0
  1365. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst/regs.rs +0 -0
  1366. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1367. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst/unwind.rs +0 -0
  1368. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/inst.isle +0 -0
  1369. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1370. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/lower/isle.rs +0 -0
  1371. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/lower.isle +0 -0
  1372. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/lower.rs +0 -0
  1373. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/mod.rs +0 -0
  1374. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/s390x/settings.rs +0 -0
  1375. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/unwind/systemv.rs +0 -0
  1376. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/unwind/winarm64.rs +0 -0
  1377. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/unwind/winx64.rs +0 -0
  1378. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/unwind.rs +0 -0
  1379. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/winch.rs +0 -0
  1380. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/abi.rs +0 -0
  1381. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/args.rs +0 -0
  1382. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/emit.rs +0 -0
  1383. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/emit_state.rs +0 -0
  1384. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/emit_tests.rs +0 -0
  1385. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/external.rs +0 -0
  1386. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/mod.rs +0 -0
  1387. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/regs.rs +0 -0
  1388. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/stack_switch.rs +0 -0
  1389. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1390. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1391. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/inst/unwind.rs +0 -0
  1392. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1393. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/lower/isle.rs +0 -0
  1394. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/lower.rs +0 -0
  1395. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/mod.rs +0 -0
  1396. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/pcc.rs +0 -0
  1397. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isa/x64/settings.rs +0 -0
  1398. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/isle_prelude.rs +0 -0
  1399. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/legalizer/branch_to_trap.rs +0 -0
  1400. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/legalizer/globalvalue.rs +0 -0
  1401. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/legalizer/mod.rs +0 -0
  1402. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/loop_analysis.rs +0 -0
  1403. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/abi.rs +0 -0
  1404. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/blockorder.rs +0 -0
  1405. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/buffer.rs +0 -0
  1406. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/compile.rs +0 -0
  1407. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/helpers.rs +0 -0
  1408. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/inst_common.rs +0 -0
  1409. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/isle.rs +0 -0
  1410. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/lower.rs +0 -0
  1411. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/mod.rs +0 -0
  1412. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/pcc.rs +0 -0
  1413. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/reg.rs +0 -0
  1414. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/valueregs.rs +0 -0
  1415. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/machinst/vcode.rs +0 -0
  1416. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/nan_canonicalization.rs +0 -0
  1417. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/README.md +0 -0
  1418. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/arithmetic.isle +0 -0
  1419. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/bitops.isle +0 -0
  1420. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/cprop.isle +0 -0
  1421. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/div_const.rs +0 -0
  1422. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/extends.isle +0 -0
  1423. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/generated_code.rs +0 -0
  1424. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/remat.isle +0 -0
  1425. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/selects.isle +0 -0
  1426. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/shifts.isle +0 -0
  1427. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/skeleton.isle +0 -0
  1428. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/spaceship.isle +0 -0
  1429. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/spectre.isle +0 -0
  1430. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts/vector.isle +0 -0
  1431. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/opts.rs +0 -0
  1432. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/prelude.isle +0 -0
  1433. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/prelude_lower.isle +0 -0
  1434. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/prelude_opt.isle +0 -0
  1435. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/print_errors.rs +0 -0
  1436. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/ranges.rs +0 -0
  1437. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/remove_constant_phis.rs +0 -0
  1438. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/result.rs +0 -0
  1439. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/scoped_hash_map.rs +0 -0
  1440. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/settings.rs +0 -0
  1441. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/souper_harvest.rs +0 -0
  1442. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/take_and_replace.rs +0 -0
  1443. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/traversals.rs +0 -0
  1444. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/unreachable_code.rs +0 -0
  1445. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/value_label.rs +0 -0
  1446. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/verifier/mod.rs +0 -0
  1447. /data/ext/cargo-vendor/{cranelift-codegen-0.123.0 → cranelift-codegen-0.123.19}/src/write.rs +0 -0
  1448. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/LICENSE +0 -0
  1449. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/README.md +0 -0
  1450. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/cdsl/formats.rs +0 -0
  1451. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/cdsl/instructions.rs +0 -0
  1452. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/cdsl/isa.rs +0 -0
  1453. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/cdsl/mod.rs +0 -0
  1454. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/cdsl/operands.rs +0 -0
  1455. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/cdsl/settings.rs +0 -0
  1456. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/cdsl/types.rs +0 -0
  1457. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/cdsl/typevar.rs +0 -0
  1458. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/constant_hash.rs +0 -0
  1459. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/gen_asm.rs +0 -0
  1460. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/gen_inst.rs +0 -0
  1461. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/gen_isle.rs +0 -0
  1462. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/gen_settings.rs +0 -0
  1463. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/gen_types.rs +0 -0
  1464. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/isa/arm64.rs +0 -0
  1465. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/isa/mod.rs +0 -0
  1466. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/isa/pulley.rs +0 -0
  1467. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/isa/riscv64.rs +0 -0
  1468. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/isa/s390x.rs +0 -0
  1469. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/isa/x86.rs +0 -0
  1470. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/isle.rs +0 -0
  1471. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/lib.rs +0 -0
  1472. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/pulley.rs +0 -0
  1473. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/shared/entities.rs +0 -0
  1474. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/shared/formats.rs +0 -0
  1475. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/shared/immediates.rs +0 -0
  1476. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/shared/instructions.rs +0 -0
  1477. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/shared/mod.rs +0 -0
  1478. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/shared/settings.rs +0 -0
  1479. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/shared/types.rs +0 -0
  1480. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.123.0 → cranelift-codegen-meta-0.123.19}/src/unique_table.rs +0 -0
  1481. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.123.2 → cranelift-codegen-shared-0.123.19}/LICENSE +0 -0
  1482. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.123.2 → cranelift-codegen-shared-0.123.19}/README.md +0 -0
  1483. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.123.2 → cranelift-codegen-shared-0.123.19}/src/constant_hash.rs +0 -0
  1484. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.123.2 → cranelift-codegen-shared-0.123.19}/src/constants.rs +0 -0
  1485. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.123.2 → cranelift-codegen-shared-0.123.19}/src/lib.rs +0 -0
  1486. /data/ext/cargo-vendor/{cranelift-control-0.123.2 → cranelift-control-0.123.19}/LICENSE +0 -0
  1487. /data/ext/cargo-vendor/{cranelift-control-0.123.2 → cranelift-control-0.123.19}/README.md +0 -0
  1488. /data/ext/cargo-vendor/{cranelift-control-0.123.2 → cranelift-control-0.123.19}/src/chaos.rs +0 -0
  1489. /data/ext/cargo-vendor/{cranelift-control-0.123.2 → cranelift-control-0.123.19}/src/lib.rs +0 -0
  1490. /data/ext/cargo-vendor/{cranelift-control-0.123.2 → cranelift-control-0.123.19}/src/zero_sized.rs +0 -0
  1491. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/LICENSE +0 -0
  1492. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/README.md +0 -0
  1493. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/boxed_slice.rs +0 -0
  1494. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/iter.rs +0 -0
  1495. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/keys.rs +0 -0
  1496. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/lib.rs +0 -0
  1497. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/list.rs +0 -0
  1498. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/map.rs +0 -0
  1499. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/packed_option.rs +0 -0
  1500. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/primary.rs +0 -0
  1501. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/set.rs +0 -0
  1502. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/signed.rs +0 -0
  1503. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/sparse.rs +0 -0
  1504. /data/ext/cargo-vendor/{cranelift-entity-0.123.2 → cranelift-entity-0.123.19}/src/unsigned.rs +0 -0
  1505. /data/ext/cargo-vendor/{cranelift-frontend-0.123.0 → cranelift-frontend-0.123.19}/LICENSE +0 -0
  1506. /data/ext/cargo-vendor/{cranelift-frontend-0.123.0 → cranelift-frontend-0.123.19}/README.md +0 -0
  1507. /data/ext/cargo-vendor/{cranelift-frontend-0.123.0 → cranelift-frontend-0.123.19}/src/frontend/safepoints.rs +0 -0
  1508. /data/ext/cargo-vendor/{cranelift-frontend-0.123.0 → cranelift-frontend-0.123.19}/src/frontend.rs +0 -0
  1509. /data/ext/cargo-vendor/{cranelift-frontend-0.123.0 → cranelift-frontend-0.123.19}/src/lib.rs +0 -0
  1510. /data/ext/cargo-vendor/{cranelift-frontend-0.123.0 → cranelift-frontend-0.123.19}/src/ssa.rs +0 -0
  1511. /data/ext/cargo-vendor/{cranelift-frontend-0.123.0 → cranelift-frontend-0.123.19}/src/switch.rs +0 -0
  1512. /data/ext/cargo-vendor/{cranelift-frontend-0.123.0 → cranelift-frontend-0.123.19}/src/variable.rs +0 -0
  1513. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/README.md +0 -0
  1514. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/build.rs +0 -0
  1515. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/bad_converters.isle +0 -0
  1516. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1517. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1518. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/error1.isle +0 -0
  1519. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/extra_parens.isle +0 -0
  1520. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/impure_expression.isle +0 -0
  1521. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/impure_rhs.isle +0 -0
  1522. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1523. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/fail/multi_prio.isle +0 -0
  1524. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/borrows.isle +0 -0
  1525. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/borrows_main.rs +0 -0
  1526. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/iflets.isle +0 -0
  1527. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/iflets_main.rs +0 -0
  1528. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/multi_constructor.isle +0 -0
  1529. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/multi_constructor_main.rs +0 -0
  1530. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/multi_extractor.isle +0 -0
  1531. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/multi_extractor_main.rs +0 -0
  1532. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/test.isle +0 -0
  1533. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/link/test_main.rs +0 -0
  1534. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/bound_var.isle +0 -0
  1535. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/construct_and_extract.isle +0 -0
  1536. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/conversions.isle +0 -0
  1537. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/conversions_extern.isle +0 -0
  1538. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/let.isle +0 -0
  1539. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/nodebug.isle +0 -0
  1540. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1541. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/test2.isle +0 -0
  1542. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/test3.isle +0 -0
  1543. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/test4.isle +0 -0
  1544. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/tutorial.isle +0 -0
  1545. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/pass/veri_spec.isle +0 -0
  1546. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/run/iconst.isle +0 -0
  1547. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/run/iconst_main.rs +0 -0
  1548. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/run/let_shadowing.isle +0 -0
  1549. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/isle_examples/run/let_shadowing_main.rs +0 -0
  1550. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/ast.rs +0 -0
  1551. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/codegen.rs +0 -0
  1552. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/compile.rs +0 -0
  1553. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/disjointsets.rs +0 -0
  1554. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/error.rs +0 -0
  1555. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/files.rs +0 -0
  1556. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/lexer.rs +0 -0
  1557. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/lib.rs +0 -0
  1558. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/log.rs +0 -0
  1559. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/overlap.rs +0 -0
  1560. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/parser.rs +0 -0
  1561. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/printer.rs +0 -0
  1562. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/sema.rs +0 -0
  1563. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/serialize.rs +0 -0
  1564. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/stablemapset.rs +0 -0
  1565. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/src/trie_again.rs +0 -0
  1566. /data/ext/cargo-vendor/{cranelift-isle-0.123.0 → cranelift-isle-0.123.19}/tests/run_tests.rs +0 -0
  1567. /data/ext/cargo-vendor/{cranelift-native-0.123.0 → cranelift-native-0.123.19}/LICENSE +0 -0
  1568. /data/ext/cargo-vendor/{cranelift-native-0.123.0 → cranelift-native-0.123.19}/README.md +0 -0
  1569. /data/ext/cargo-vendor/{cranelift-native-0.123.0 → cranelift-native-0.123.19}/src/lib.rs +0 -0
  1570. /data/ext/cargo-vendor/{cranelift-native-0.123.0 → cranelift-native-0.123.19}/src/riscv.rs +0 -0
  1571. /data/ext/cargo-vendor/{cranelift-srcgen-0.123.2 → cranelift-srcgen-0.123.19}/src/error.rs +0 -0
  1572. /data/ext/cargo-vendor/{cranelift-srcgen-0.123.2 → cranelift-srcgen-0.123.19}/src/lib.rs +0 -0
  1573. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/CONTRIBUTING.md +0 -0
  1574. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/Cargo.toml.orig +0 -0
  1575. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/README.md +0 -0
  1576. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/examples/profiler-html.rs +0 -0
  1577. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/decode.rs +0 -0
  1578. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/disas.rs +0 -0
  1579. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/encode.rs +0 -0
  1580. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/imms.rs +0 -0
  1581. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/interp/debug.rs +0 -0
  1582. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/interp/match_loop.rs +0 -0
  1583. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/interp/tail_loop.rs +0 -0
  1584. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/interp.rs +0 -0
  1585. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/op.rs +0 -0
  1586. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/opcode.rs +0 -0
  1587. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/profile.rs +0 -0
  1588. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/profile_disabled.rs +0 -0
  1589. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/src/regs.rs +0 -0
  1590. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/tests/all/disas.rs +0 -0
  1591. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/tests/all/interp.rs +0 -0
  1592. /data/ext/cargo-vendor/{pulley-interpreter-36.0.0 → pulley-interpreter-36.0.19}/tests/all/main.rs +0 -0
  1593. /data/ext/cargo-vendor/{pulley-macros-36.0.0 → pulley-macros-36.0.19}/Cargo.toml.orig +0 -0
  1594. /data/ext/cargo-vendor/{pulley-macros-36.0.0 → pulley-macros-36.0.19}/src/interp_disable_if_cfg.rs +0 -0
  1595. /data/ext/cargo-vendor/{pulley-macros-36.0.0 → pulley-macros-36.0.19}/src/lib.rs +0 -0
  1596. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/LICENSE +0 -0
  1597. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/README.md +0 -0
  1598. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/build.rs +0 -0
  1599. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/proptest-regressions/runtime/vm/instance/allocator/pooling/memory_pool.txt +0 -0
  1600. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/compile/call_graph.rs +0 -0
  1601. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/compile/code_builder.rs +0 -0
  1602. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/compile/runtime.rs +0 -0
  1603. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/compile/scc.rs +0 -0
  1604. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/compile/stratify.rs +0 -0
  1605. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/compile.rs +0 -0
  1606. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/config.rs +0 -0
  1607. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/engine/serialization.rs +0 -0
  1608. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/engine.rs +0 -0
  1609. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/profiling_agent/jitdump.rs +0 -0
  1610. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/profiling_agent/perfmap.rs +0 -0
  1611. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/profiling_agent/pulley.rs +0 -0
  1612. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/profiling_agent/vtune.rs +0 -0
  1613. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/profiling_agent.rs +0 -0
  1614. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/code.rs +0 -0
  1615. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/code_memory.rs +0 -0
  1616. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/_0_hello_world.rs +0 -0
  1617. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/_1_world_imports.rs +0 -0
  1618. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/_2_world_exports.rs +0 -0
  1619. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/_3_interface_imports.rs +0 -0
  1620. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/_4_imported_resources.rs +0 -0
  1621. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/_5_all_world_export_kinds.rs +0 -0
  1622. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/_6_exported_resources.rs +0 -0
  1623. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/_7_async.rs +0 -0
  1624. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/bindgen_examples/mod.rs +0 -0
  1625. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/component.rs +0 -0
  1626. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/concurrent/abort.rs +0 -0
  1627. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/concurrent/error_contexts.rs +0 -0
  1628. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/concurrent/futures_and_streams/buffers.rs +0 -0
  1629. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/concurrent/futures_and_streams.rs +0 -0
  1630. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/concurrent/states.rs +0 -0
  1631. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/concurrent/table.rs +0 -0
  1632. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/concurrent/tls.rs +0 -0
  1633. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/concurrent_disabled.rs +0 -0
  1634. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/func/host.rs +0 -0
  1635. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/has_data.rs +0 -0
  1636. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/matching.rs +0 -0
  1637. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/mod.rs +0 -0
  1638. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/storage.rs +0 -0
  1639. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/component/types.rs +0 -0
  1640. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/debug.rs +0 -0
  1641. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/externals.rs +0 -0
  1642. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/fiber.rs +0 -0
  1643. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/func/typed.rs +0 -0
  1644. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled/anyref.rs +0 -0
  1645. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled/arrayref.rs +0 -0
  1646. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled/eqref.rs +0 -0
  1647. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled/exnref.rs +0 -0
  1648. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled/externref.rs +0 -0
  1649. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled/i31.rs +0 -0
  1650. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled/rooting.rs +0 -0
  1651. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled/structref.rs +0 -0
  1652. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/disabled.rs +0 -0
  1653. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/enabled/anyref.rs +0 -0
  1654. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/enabled/eqref.rs +0 -0
  1655. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/enabled/externref.rs +0 -0
  1656. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/enabled/i31.rs +0 -0
  1657. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/enabled/rooting.rs +0 -0
  1658. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/enabled.rs +0 -0
  1659. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/noextern.rs +0 -0
  1660. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc/none_ref.rs +0 -0
  1661. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/gc.rs +0 -0
  1662. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/instantiate.rs +0 -0
  1663. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/limits.rs +0 -0
  1664. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/module.rs +0 -0
  1665. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/profiling.rs +0 -0
  1666. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/resources.rs +0 -0
  1667. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/stack.rs +0 -0
  1668. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/store/async_.rs +0 -0
  1669. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/store/context.rs +0 -0
  1670. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/store/data.rs +0 -0
  1671. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/store/func_refs.rs +0 -0
  1672. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/store/gc.rs +0 -0
  1673. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/store/token.rs +0 -0
  1674. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/trampoline/func.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/trampoline/global.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/trampoline/memory.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/trampoline.rs +0 -0
  1678. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/trap.rs +0 -0
  1679. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/type_registry.rs +0 -0
  1680. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/types/matching.rs +0 -0
  1681. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/types.rs +0 -0
  1682. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/uninhabited.rs +0 -0
  1683. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/unix.rs +0 -0
  1684. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/v128.rs +0 -0
  1685. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/values.rs +0 -0
  1686. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/async_yield.rs +0 -0
  1687. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/byte_count.rs +0 -0
  1688. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/component/libcalls.rs +0 -0
  1689. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/const_expr.rs +0 -0
  1690. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/cow_disabled.rs +0 -0
  1691. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/debug_builtins.rs +0 -0
  1692. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/export.rs +0 -0
  1693. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/disabled.rs +0 -0
  1694. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled/arrayref.rs +0 -0
  1695. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled/data.rs +0 -0
  1696. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled/drc.rs +0 -0
  1697. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled/exnref.rs +0 -0
  1698. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled/externref.rs +0 -0
  1699. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled/free_list.rs +0 -0
  1700. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled/null.rs +0 -0
  1701. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled/structref.rs +0 -0
  1702. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/enabled.rs +0 -0
  1703. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/func_ref.rs +0 -0
  1704. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/gc_ref.rs +0 -0
  1705. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/gc_runtime.rs +0 -0
  1706. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/host_data.rs +0 -0
  1707. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc/i31.rs +0 -0
  1708. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/gc.rs +0 -0
  1709. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/helpers.c +0 -0
  1710. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/imports.rs +0 -0
  1711. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator/on_demand.rs +0 -0
  1712. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +0 -0
  1713. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +0 -0
  1714. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +0 -0
  1715. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +0 -0
  1716. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator/pooling/table_pool.rs +0 -0
  1717. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +0 -0
  1718. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator/pooling.rs +0 -0
  1719. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance/allocator.rs +0 -0
  1720. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/instance.rs +0 -0
  1721. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/interpreter.rs +0 -0
  1722. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/interpreter_disabled.rs +0 -0
  1723. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/libcalls.rs +0 -0
  1724. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/memory/malloc.rs +0 -0
  1725. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/memory/mmap.rs +0 -0
  1726. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/memory/shared_memory.rs +0 -0
  1727. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/memory/shared_memory_disabled.rs +0 -0
  1728. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/memory/static_.rs +0 -0
  1729. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/mmap.rs +0 -0
  1730. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/mmap_vec.rs +0 -0
  1731. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/module_id.rs +0 -0
  1732. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/mpk/disabled.rs +0 -0
  1733. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/mpk/enabled.rs +0 -0
  1734. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/mpk/mod.rs +0 -0
  1735. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/mpk/pkru.rs +0 -0
  1736. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/mpk/sys.rs +0 -0
  1737. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/parking_spot.rs +0 -0
  1738. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/provenance.rs +0 -0
  1739. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/send_sync_ptr.rs +0 -0
  1740. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/send_sync_unsafe_cell.rs +0 -0
  1741. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/stack_switching/stack/dummy.rs +0 -0
  1742. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/stack_switching/stack/unix/x86_64.rs +0 -0
  1743. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/stack_switching/stack/unix.rs +0 -0
  1744. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/stack_switching/stack.rs +0 -0
  1745. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/stack_switching.rs +0 -0
  1746. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/store_box.rs +0 -0
  1747. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/custom/capi.rs +0 -0
  1748. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/custom/mmap.rs +0 -0
  1749. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/custom/mod.rs +0 -0
  1750. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/custom/traphandlers.rs +0 -0
  1751. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/custom/unwind.rs +0 -0
  1752. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/custom/vm.rs +0 -0
  1753. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/miri/mmap.rs +0 -0
  1754. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/miri/mod.rs +0 -0
  1755. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/miri/traphandlers.rs +0 -0
  1756. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/miri/unwind.rs +0 -0
  1757. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/miri/vm.rs +0 -0
  1758. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/mod.rs +0 -0
  1759. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/unix/machports.rs +0 -0
  1760. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/unix/mmap.rs +0 -0
  1761. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/unix/mod.rs +0 -0
  1762. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/unix/signals.rs +0 -0
  1763. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/unix/traphandlers.rs +0 -0
  1764. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/unix/unwind.rs +0 -0
  1765. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/unix/vm.rs +0 -0
  1766. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/windows/mmap.rs +0 -0
  1767. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/windows/mod.rs +0 -0
  1768. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/windows/traphandlers.rs +0 -0
  1769. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/windows/unwind64.rs +0 -0
  1770. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/windows/vectored_exceptions.rs +0 -0
  1771. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/sys/windows/vm.rs +0 -0
  1772. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/traphandlers/backtrace.rs +0 -0
  1773. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/traphandlers/coredump_disabled.rs +0 -0
  1774. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/traphandlers/coredump_enabled.rs +0 -0
  1775. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/traphandlers/signals.rs +0 -0
  1776. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/traphandlers.rs +0 -0
  1777. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/vmcontext/vm_host_func_context.rs +0 -0
  1778. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/vm/vmcontext.rs +0 -0
  1779. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/wave/component.rs +0 -0
  1780. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/wave/core.rs +0 -0
  1781. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/wave.rs +0 -0
  1782. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime/windows.rs +0 -0
  1783. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/runtime.rs +0 -0
  1784. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/sync_nostd.rs +0 -0
  1785. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/src/sync_std.rs +0 -0
  1786. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/tests/custom_signal_handler.rs +0 -0
  1787. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/tests/host_segfault.rs +0 -0
  1788. /data/ext/cargo-vendor/{wasmtime-36.0.0 → wasmtime-36.0.19}/tests/unload-engine.rs +0 -0
  1789. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/Cargo.toml.orig +0 -0
  1790. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/LICENSE +0 -0
  1791. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/examples/factc.rs +0 -0
  1792. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/address_map.rs +0 -0
  1793. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/builtin.rs +0 -0
  1794. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/compile/address_map.rs +0 -0
  1795. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/compile/mod.rs +0 -0
  1796. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/compile/module_artifacts.rs +0 -0
  1797. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/compile/module_environ.rs +0 -0
  1798. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/compile/module_types.rs +0 -0
  1799. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/compile/stack_maps.rs +0 -0
  1800. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/compile/trap_encoding.rs +0 -0
  1801. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/artifacts.rs +0 -0
  1802. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/compiler.rs +0 -0
  1803. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/dfg.rs +0 -0
  1804. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/info.rs +0 -0
  1805. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/names.rs +0 -0
  1806. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/translate/adapt.rs +0 -0
  1807. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/translate/inline.rs +0 -0
  1808. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/translate.rs +0 -0
  1809. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/types.rs +0 -0
  1810. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/types_builder/resources.rs +0 -0
  1811. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/types_builder.rs +0 -0
  1812. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component/vmcomponent_offsets.rs +0 -0
  1813. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/component.rs +0 -0
  1814. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/demangling.rs +0 -0
  1815. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/error.rs +0 -0
  1816. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/ext.rs +0 -0
  1817. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/fact/core_types.rs +0 -0
  1818. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/fact/signature.rs +0 -0
  1819. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/fact/transcode.rs +0 -0
  1820. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/fact/traps.rs +0 -0
  1821. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/fact.rs +0 -0
  1822. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/gc/drc.rs +0 -0
  1823. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/gc/null.rs +0 -0
  1824. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/gc.rs +0 -0
  1825. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/hostcall.rs +0 -0
  1826. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/lib.rs +0 -0
  1827. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/module.rs +0 -0
  1828. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/module_artifacts.rs +0 -0
  1829. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/module_types.rs +0 -0
  1830. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/obj.rs +0 -0
  1831. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/prelude.rs +0 -0
  1832. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/ref_bits.rs +0 -0
  1833. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/scopevec.rs +0 -0
  1834. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/stack_map.rs +0 -0
  1835. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/stack_switching.rs +0 -0
  1836. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/trap_encoding.rs +0 -0
  1837. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/tunables.rs +0 -0
  1838. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/types.rs +0 -0
  1839. /data/ext/cargo-vendor/{wasmtime-environ-36.0.0 → wasmtime-environ-36.0.19}/src/vmoffsets.rs +0 -0
  1840. /data/ext/cargo-vendor/{wasmtime-internal-asm-macros-36.0.0 → wasmtime-internal-asm-macros-36.0.19}/Cargo.toml.orig +0 -0
  1841. /data/ext/cargo-vendor/{wasmtime-internal-asm-macros-36.0.0 → wasmtime-internal-asm-macros-36.0.19}/src/lib.rs +0 -0
  1842. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/Cargo.toml.orig +0 -0
  1843. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/LICENSE +0 -0
  1844. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/build.rs +0 -0
  1845. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/src/config/tests.rs +0 -0
  1846. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/src/config.rs +0 -0
  1847. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/src/lib.rs +0 -0
  1848. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/src/tests.rs +0 -0
  1849. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/src/worker/tests/system_time_stub.rs +0 -0
  1850. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/src/worker/tests.rs +0 -0
  1851. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/src/worker.rs +0 -0
  1852. /data/ext/cargo-vendor/{wasmtime-internal-cache-36.0.0 → wasmtime-internal-cache-36.0.19}/tests/cache_write_default_config.rs +0 -0
  1853. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/Cargo.toml.orig +0 -0
  1854. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/build.rs +0 -0
  1855. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/src/bindgen.rs +0 -0
  1856. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/src/component.rs +0 -0
  1857. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/src/lib.rs +0 -0
  1858. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/char.wit +0 -0
  1859. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/conventions.wit +0 -0
  1860. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/dead-code.wit +0 -0
  1861. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/direct-import.wit +0 -0
  1862. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/empty.wit +0 -0
  1863. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/flags.wit +0 -0
  1864. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/floats.wit +0 -0
  1865. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/function-new.wit +0 -0
  1866. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/host-world.wit +0 -0
  1867. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/integers.wit +0 -0
  1868. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/lists.wit +0 -0
  1869. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/many-arguments.wit +0 -0
  1870. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1871. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1872. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/multiversion/root.wit +0 -0
  1873. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/path1/world.wit +0 -0
  1874. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/path2/world.wit +0 -0
  1875. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/records.wit +0 -0
  1876. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/rename.wit +0 -0
  1877. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/resources-export.wit +0 -0
  1878. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/resources-import.wit +0 -0
  1879. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/share-types.wit +0 -0
  1880. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/simple-functions.wit +0 -0
  1881. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/simple-lists.wit +0 -0
  1882. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/simple-wasi.wit +0 -0
  1883. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/small-anonymous.wit +0 -0
  1884. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/smoke-default.wit +0 -0
  1885. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/smoke-export.wit +0 -0
  1886. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/smoke.wit +0 -0
  1887. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/strings.wit +0 -0
  1888. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/unstable-features.wit +0 -0
  1889. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/unversioned-foo.wit +0 -0
  1890. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/use-paths.wit +0 -0
  1891. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/variants.wit +0 -0
  1892. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/wat.wit +0 -0
  1893. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen/worlds-with-types.wit +0 -0
  1894. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen.rs +0 -0
  1895. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/codegen_no_std.rs +0 -0
  1896. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/char.rs +0 -0
  1897. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/char_async.rs +0 -0
  1898. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/char_concurrent.rs +0 -0
  1899. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/char_tracing_async.rs +0 -0
  1900. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/conventions.rs +0 -0
  1901. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/conventions_async.rs +0 -0
  1902. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/conventions_concurrent.rs +0 -0
  1903. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/conventions_tracing_async.rs +0 -0
  1904. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/dead-code.rs +0 -0
  1905. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/dead-code_async.rs +0 -0
  1906. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/dead-code_concurrent.rs +0 -0
  1907. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/dead-code_tracing_async.rs +0 -0
  1908. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/direct-import.rs +0 -0
  1909. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/direct-import_async.rs +0 -0
  1910. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/direct-import_concurrent.rs +0 -0
  1911. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/direct-import_tracing_async.rs +0 -0
  1912. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/empty.rs +0 -0
  1913. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/empty_async.rs +0 -0
  1914. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/empty_concurrent.rs +0 -0
  1915. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/empty_tracing_async.rs +0 -0
  1916. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/flags.rs +0 -0
  1917. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/flags_async.rs +0 -0
  1918. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/flags_concurrent.rs +0 -0
  1919. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/flags_tracing_async.rs +0 -0
  1920. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/floats.rs +0 -0
  1921. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/floats_async.rs +0 -0
  1922. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/floats_concurrent.rs +0 -0
  1923. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/floats_tracing_async.rs +0 -0
  1924. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/function-new.rs +0 -0
  1925. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/function-new_async.rs +0 -0
  1926. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/function-new_concurrent.rs +0 -0
  1927. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/function-new_tracing_async.rs +0 -0
  1928. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/host-world.rs +0 -0
  1929. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/host-world_async.rs +0 -0
  1930. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/host-world_concurrent.rs +0 -0
  1931. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/host-world_tracing_async.rs +0 -0
  1932. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/integers.rs +0 -0
  1933. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/integers_async.rs +0 -0
  1934. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/integers_concurrent.rs +0 -0
  1935. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/integers_tracing_async.rs +0 -0
  1936. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/lists.rs +0 -0
  1937. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/lists_async.rs +0 -0
  1938. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/lists_concurrent.rs +0 -0
  1939. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/lists_tracing_async.rs +0 -0
  1940. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/many-arguments.rs +0 -0
  1941. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/many-arguments_async.rs +0 -0
  1942. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/many-arguments_concurrent.rs +0 -0
  1943. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/many-arguments_tracing_async.rs +0 -0
  1944. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/multi-return.rs +0 -0
  1945. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/multiversion.rs +0 -0
  1946. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/multiversion_async.rs +0 -0
  1947. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/multiversion_concurrent.rs +0 -0
  1948. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/multiversion_tracing_async.rs +0 -0
  1949. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/path1.rs +0 -0
  1950. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/path1_async.rs +0 -0
  1951. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/path1_concurrent.rs +0 -0
  1952. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/path1_tracing_async.rs +0 -0
  1953. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/path2.rs +0 -0
  1954. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/path2_async.rs +0 -0
  1955. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/path2_concurrent.rs +0 -0
  1956. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/path2_tracing_async.rs +0 -0
  1957. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/records.rs +0 -0
  1958. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/records_async.rs +0 -0
  1959. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/records_concurrent.rs +0 -0
  1960. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/records_tracing_async.rs +0 -0
  1961. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/rename.rs +0 -0
  1962. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/rename_async.rs +0 -0
  1963. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/rename_concurrent.rs +0 -0
  1964. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/rename_tracing_async.rs +0 -0
  1965. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/resources-export.rs +0 -0
  1966. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/resources-export_async.rs +0 -0
  1967. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/resources-export_tracing_async.rs +0 -0
  1968. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/resources-import.rs +0 -0
  1969. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/resources-import_async.rs +0 -0
  1970. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/resources-import_tracing_async.rs +0 -0
  1971. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/share-types.rs +0 -0
  1972. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/share-types_async.rs +0 -0
  1973. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/share-types_concurrent.rs +0 -0
  1974. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/share-types_tracing_async.rs +0 -0
  1975. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-functions.rs +0 -0
  1976. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-functions_async.rs +0 -0
  1977. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-functions_concurrent.rs +0 -0
  1978. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-functions_tracing_async.rs +0 -0
  1979. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-lists.rs +0 -0
  1980. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-lists_async.rs +0 -0
  1981. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-lists_concurrent.rs +0 -0
  1982. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-lists_tracing_async.rs +0 -0
  1983. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-wasi.rs +0 -0
  1984. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-wasi_async.rs +0 -0
  1985. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-wasi_concurrent.rs +0 -0
  1986. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/simple-wasi_tracing_async.rs +0 -0
  1987. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/small-anonymous.rs +0 -0
  1988. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/small-anonymous_async.rs +0 -0
  1989. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/small-anonymous_concurrent.rs +0 -0
  1990. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/small-anonymous_tracing_async.rs +0 -0
  1991. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke-default.rs +0 -0
  1992. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke-default_async.rs +0 -0
  1993. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke-default_concurrent.rs +0 -0
  1994. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke-default_tracing_async.rs +0 -0
  1995. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke-export.rs +0 -0
  1996. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke-export_async.rs +0 -0
  1997. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke-export_concurrent.rs +0 -0
  1998. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke-export_tracing_async.rs +0 -0
  1999. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke.rs +0 -0
  2000. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke_async.rs +0 -0
  2001. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke_concurrent.rs +0 -0
  2002. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/smoke_tracing_async.rs +0 -0
  2003. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/strings.rs +0 -0
  2004. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/strings_async.rs +0 -0
  2005. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/strings_concurrent.rs +0 -0
  2006. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/strings_tracing_async.rs +0 -0
  2007. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/unstable-features.rs +0 -0
  2008. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/unstable-features_async.rs +0 -0
  2009. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/unstable-features_tracing_async.rs +0 -0
  2010. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/unversioned-foo.rs +0 -0
  2011. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/unversioned-foo_async.rs +0 -0
  2012. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/unversioned-foo_concurrent.rs +0 -0
  2013. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/unversioned-foo_tracing_async.rs +0 -0
  2014. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/use-paths.rs +0 -0
  2015. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/use-paths_async.rs +0 -0
  2016. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/use-paths_concurrent.rs +0 -0
  2017. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/use-paths_tracing_async.rs +0 -0
  2018. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/variants.rs +0 -0
  2019. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/variants_async.rs +0 -0
  2020. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/variants_concurrent.rs +0 -0
  2021. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/variants_tracing_async.rs +0 -0
  2022. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/wat.rs +0 -0
  2023. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/wat_async.rs +0 -0
  2024. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/wat_concurrent.rs +0 -0
  2025. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/wat_tracing_async.rs +0 -0
  2026. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/worlds-with-types.rs +0 -0
  2027. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/worlds-with-types_async.rs +0 -0
  2028. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/worlds-with-types_concurrent.rs +0 -0
  2029. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded/worlds-with-types_tracing_async.rs +0 -0
  2030. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-36.0.0 → wasmtime-internal-component-macro-36.0.19}/tests/expanded.rs +0 -0
  2031. /data/ext/cargo-vendor/{wasmtime-internal-component-util-36.0.0 → wasmtime-internal-component-util-36.0.19}/Cargo.toml.orig +0 -0
  2032. /data/ext/cargo-vendor/{wasmtime-internal-component-util-36.0.0 → wasmtime-internal-component-util-36.0.19}/src/lib.rs +0 -0
  2033. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/Cargo.toml.orig +0 -0
  2034. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/LICENSE +0 -0
  2035. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/SECURITY.md +0 -0
  2036. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/bounds_checks.rs +0 -0
  2037. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/builder.rs +0 -0
  2038. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/compiled_function.rs +0 -0
  2039. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/compiler/component.rs +0 -0
  2040. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/compiler.rs +0 -0
  2041. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/gc.rs +0 -0
  2042. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/address_transform.rs +0 -0
  2043. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/attr.rs +0 -0
  2044. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/debug_transform_logging.rs +0 -0
  2045. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/expression.rs +0 -0
  2046. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/line_program.rs +0 -0
  2047. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/mod.rs +0 -0
  2048. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/range_info_builder.rs +0 -0
  2049. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/refs.rs +0 -0
  2050. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/simulate.rs +0 -0
  2051. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/synthetic.rs +0 -0
  2052. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/unit.rs +0 -0
  2053. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/transform/utils.rs +0 -0
  2054. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug/write_debuginfo.rs +0 -0
  2055. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/debug.rs +0 -0
  2056. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/func_environ/gc/disabled.rs +0 -0
  2057. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/func_environ/gc/enabled/drc.rs +0 -0
  2058. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/func_environ/gc/enabled/null.rs +0 -0
  2059. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/func_environ/gc/enabled.rs +0 -0
  2060. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/func_environ/gc.rs +0 -0
  2061. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/func_environ.rs +0 -0
  2062. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/isa_builder.rs +0 -0
  2063. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/obj.rs +0 -0
  2064. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/translate/environ/mod.rs +0 -0
  2065. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/translate/environ/spec.rs +0 -0
  2066. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/translate/func_translator.rs +0 -0
  2067. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/translate/heap.rs +0 -0
  2068. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/translate/mod.rs +0 -0
  2069. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/translate/stack.rs +0 -0
  2070. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/translate/table.rs +0 -0
  2071. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-36.0.0 → wasmtime-internal-cranelift-36.0.19}/src/translate/translation_utils.rs +0 -0
  2072. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/Cargo.toml.orig +0 -0
  2073. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/LICENSE +0 -0
  2074. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/build.rs +0 -0
  2075. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/lib.rs +0 -0
  2076. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/miri.rs +0 -0
  2077. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/nostd.rs +0 -0
  2078. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/stackswitch/aarch64.rs +0 -0
  2079. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/stackswitch/arm.rs +0 -0
  2080. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/stackswitch/riscv64.rs +0 -0
  2081. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/stackswitch/s390x.S +0 -0
  2082. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/stackswitch/x86.rs +0 -0
  2083. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/stackswitch/x86_64.rs +0 -0
  2084. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/stackswitch.rs +0 -0
  2085. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/unix.rs +0 -0
  2086. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/windows.c +0 -0
  2087. /data/ext/cargo-vendor/{wasmtime-internal-fiber-36.0.0 → wasmtime-internal-fiber-36.0.19}/src/windows.rs +0 -0
  2088. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-36.0.0 → wasmtime-internal-jit-debug-36.0.19}/Cargo.toml.orig +0 -0
  2089. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-36.0.0 → wasmtime-internal-jit-debug-36.0.19}/README.md +0 -0
  2090. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-36.0.0 → wasmtime-internal-jit-debug-36.0.19}/build.rs +0 -0
  2091. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-36.0.0 → wasmtime-internal-jit-debug-36.0.19}/gdbjit.c +0 -0
  2092. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-36.0.0 → wasmtime-internal-jit-debug-36.0.19}/src/gdb_jit_int.rs +0 -0
  2093. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-36.0.0 → wasmtime-internal-jit-debug-36.0.19}/src/lib.rs +0 -0
  2094. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-36.0.0 → wasmtime-internal-jit-debug-36.0.19}/src/perf_jitdump.rs +0 -0
  2095. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-36.0.0 → wasmtime-internal-jit-icache-coherence-36.0.19}/Cargo.toml.orig +0 -0
  2096. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-36.0.0 → wasmtime-internal-jit-icache-coherence-36.0.19}/src/lib.rs +0 -0
  2097. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-36.0.0 → wasmtime-internal-jit-icache-coherence-36.0.19}/src/libc.rs +0 -0
  2098. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-36.0.0 → wasmtime-internal-jit-icache-coherence-36.0.19}/src/miri.rs +0 -0
  2099. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-36.0.0 → wasmtime-internal-jit-icache-coherence-36.0.19}/src/win.rs +0 -0
  2100. /data/ext/cargo-vendor/{wasmtime-internal-math-36.0.0 → wasmtime-internal-math-36.0.19}/Cargo.toml.orig +0 -0
  2101. /data/ext/cargo-vendor/{wasmtime-internal-math-36.0.0 → wasmtime-internal-math-36.0.19}/src/lib.rs +0 -0
  2102. /data/ext/cargo-vendor/{wasmtime-internal-slab-36.0.0 → wasmtime-internal-slab-36.0.19}/Cargo.toml.orig +0 -0
  2103. /data/ext/cargo-vendor/{wasmtime-internal-slab-36.0.0 → wasmtime-internal-slab-36.0.19}/src/lib.rs +0 -0
  2104. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/Cargo.toml.orig +0 -0
  2105. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/LICENSE +0 -0
  2106. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/README.md +0 -0
  2107. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/build.rs +0 -0
  2108. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/arch/aarch64.rs +0 -0
  2109. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/arch/mod.rs +0 -0
  2110. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/arch/riscv64.rs +0 -0
  2111. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/arch/s390x.rs +0 -0
  2112. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/arch/x86.rs +0 -0
  2113. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/exception_table.rs +0 -0
  2114. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/lib.rs +0 -0
  2115. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/stackwalk.rs +0 -0
  2116. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-36.0.0 → wasmtime-internal-unwinder-36.0.19}/src/throw.rs +0 -0
  2117. /data/ext/cargo-vendor/{wasmtime-internal-versioned-export-macros-36.0.0 → wasmtime-internal-versioned-export-macros-36.0.19}/Cargo.toml.orig +0 -0
  2118. /data/ext/cargo-vendor/{wasmtime-internal-versioned-export-macros-36.0.0 → wasmtime-internal-versioned-export-macros-36.0.19}/src/lib.rs +0 -0
  2119. /data/ext/cargo-vendor/{wasmtime-internal-winch-36.0.0 → wasmtime-internal-winch-36.0.19}/Cargo.toml.orig +0 -0
  2120. /data/ext/cargo-vendor/{wasmtime-internal-winch-36.0.0 → wasmtime-internal-winch-36.0.19}/LICENSE +0 -0
  2121. /data/ext/cargo-vendor/{wasmtime-internal-winch-36.0.0 → wasmtime-internal-winch-36.0.19}/src/builder.rs +0 -0
  2122. /data/ext/cargo-vendor/{wasmtime-internal-winch-36.0.0 → wasmtime-internal-winch-36.0.19}/src/compiler.rs +0 -0
  2123. /data/ext/cargo-vendor/{wasmtime-internal-winch-36.0.0 → wasmtime-internal-winch-36.0.19}/src/lib.rs +0 -0
  2124. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-36.0.0 → wasmtime-internal-wit-bindgen-36.0.19}/Cargo.toml.orig +0 -0
  2125. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-36.0.0 → wasmtime-internal-wit-bindgen-36.0.19}/src/config.rs +0 -0
  2126. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-36.0.0 → wasmtime-internal-wit-bindgen-36.0.19}/src/rust.rs +0 -0
  2127. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-36.0.0 → wasmtime-internal-wit-bindgen-36.0.19}/src/source.rs +0 -0
  2128. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-36.0.0 → wasmtime-internal-wit-bindgen-36.0.19}/src/types.rs +0 -0
  2129. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/LICENSE +0 -0
  2130. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/README.md +0 -0
  2131. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/cli/empty.rs +0 -0
  2132. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/cli/locked_async.rs +0 -0
  2133. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/cli/mem.rs +0 -0
  2134. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/cli/worker_thread_stdin.rs +0 -0
  2135. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/cli.rs +0 -0
  2136. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/clocks.rs +0 -0
  2137. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/error.rs +0 -0
  2138. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/bindings.rs +0 -0
  2139. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/clocks.rs +0 -0
  2140. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/env.rs +0 -0
  2141. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/exit.rs +0 -0
  2142. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/filesystem/sync.rs +0 -0
  2143. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/instance_network.rs +0 -0
  2144. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/io.rs +0 -0
  2145. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/mod.rs +0 -0
  2146. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/network.rs +0 -0
  2147. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/tcp.rs +0 -0
  2148. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/tcp_create_socket.rs +0 -0
  2149. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/host/udp_create_socket.rs +0 -0
  2150. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/ip_name_lookup.rs +0 -0
  2151. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/mod.rs +0 -0
  2152. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/network.rs +0 -0
  2153. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/poll.rs +0 -0
  2154. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/stdio.rs +0 -0
  2155. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/udp.rs +0 -0
  2156. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/cli/command.wit +0 -0
  2157. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/cli/environment.wit +0 -0
  2158. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/cli/exit.wit +0 -0
  2159. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/cli/imports.wit +0 -0
  2160. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/cli/run.wit +0 -0
  2161. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/cli/stdio.wit +0 -0
  2162. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/cli/terminal.wit +0 -0
  2163. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/clocks/monotonic-clock.wit +0 -0
  2164. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/clocks/timezone.wit +0 -0
  2165. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/clocks/wall-clock.wit +0 -0
  2166. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/clocks/world.wit +0 -0
  2167. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/filesystem/preopens.wit +0 -0
  2168. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/filesystem/types.wit +0 -0
  2169. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/filesystem/world.wit +0 -0
  2170. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/io/error.wit +0 -0
  2171. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/io/poll.wit +0 -0
  2172. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/io/streams.wit +0 -0
  2173. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/io/world.wit +0 -0
  2174. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/random/insecure-seed.wit +0 -0
  2175. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/random/insecure.wit +0 -0
  2176. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/random/random.wit +0 -0
  2177. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/random/world.wit +0 -0
  2178. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/sockets/instance-network.wit +0 -0
  2179. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/sockets/ip-name-lookup.wit +0 -0
  2180. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/sockets/network.wit +0 -0
  2181. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/sockets/tcp-create-socket.wit +0 -0
  2182. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/sockets/tcp.wit +0 -0
  2183. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/sockets/udp-create-socket.wit +0 -0
  2184. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/sockets/udp.wit +0 -0
  2185. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/deps/sockets/world.wit +0 -0
  2186. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/test.wit +0 -0
  2187. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/wit/world.wit +0 -0
  2188. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p2/write_stream.rs +0 -0
  2189. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/bindings.rs +0 -0
  2190. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/cli/host.rs +0 -0
  2191. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/cli/mod.rs +0 -0
  2192. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/clocks/host.rs +0 -0
  2193. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/clocks/mod.rs +0 -0
  2194. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/filesystem/mod.rs +0 -0
  2195. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/mod.rs +0 -0
  2196. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/random/host.rs +0 -0
  2197. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/random/mod.rs +0 -0
  2198. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/conv.rs +0 -0
  2199. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/host/ip_name_lookup.rs +0 -0
  2200. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/host/mod.rs +0 -0
  2201. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/host/types/mod.rs +0 -0
  2202. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/host/types/tcp.rs +0 -0
  2203. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/host/types/udp.rs +0 -0
  2204. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/mod.rs +0 -0
  2205. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/tcp.rs +0 -0
  2206. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/sockets/udp.rs +0 -0
  2207. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/cli/command.wit +0 -0
  2208. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/cli/environment.wit +0 -0
  2209. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/cli/exit.wit +0 -0
  2210. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/cli/imports.wit +0 -0
  2211. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/cli/run.wit +0 -0
  2212. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/cli/stdio.wit +0 -0
  2213. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/cli/terminal.wit +0 -0
  2214. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/clocks/monotonic-clock.wit +0 -0
  2215. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/clocks/timezone.wit +0 -0
  2216. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/clocks/wall-clock.wit +0 -0
  2217. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/clocks/world.wit +0 -0
  2218. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/filesystem/preopens.wit +0 -0
  2219. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/filesystem/types.wit +0 -0
  2220. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/filesystem/world.wit +0 -0
  2221. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/random/insecure-seed.wit +0 -0
  2222. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/random/insecure.wit +0 -0
  2223. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/random/random.wit +0 -0
  2224. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/random/world.wit +0 -0
  2225. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/sockets/ip-name-lookup.wit +0 -0
  2226. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/sockets/types.wit +0 -0
  2227. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/deps/sockets/world.wit +0 -0
  2228. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/p3/wit/package.wit +0 -0
  2229. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/runtime.rs +0 -0
  2230. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/sockets/mod.rs +0 -0
  2231. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/sockets/util.rs +0 -0
  2232. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/src/view.rs +0 -0
  2233. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/tests/all/main.rs +0 -0
  2234. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/tests/all/p2/api.rs +0 -0
  2235. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/tests/all/p3/mod.rs +0 -0
  2236. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/tests/process_stdin.rs +0 -0
  2237. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/witx/preview0/typenames.witx +0 -0
  2238. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/witx/preview0/wasi_unstable.witx +0 -0
  2239. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/witx/preview1/typenames.witx +0 -0
  2240. /data/ext/cargo-vendor/{wasmtime-wasi-36.0.0 → wasmtime-wasi-36.0.19}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  2241. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/Cargo.toml.orig +0 -0
  2242. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/src/bindings.rs +0 -0
  2243. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/src/lib.rs +0 -0
  2244. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/src/poll.rs +0 -0
  2245. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/wit/deps/io/error.wit +0 -0
  2246. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/wit/deps/io/poll.wit +0 -0
  2247. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/wit/deps/io/streams.wit +0 -0
  2248. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/wit/deps/io/world.wit +0 -0
  2249. /data/ext/cargo-vendor/{wasmtime-wasi-io-36.0.0 → wasmtime-wasi-io-36.0.19}/wit/world.wit +0 -0
  2250. /data/ext/cargo-vendor/{wiggle-36.0.0 → wiggle-36.0.19}/Cargo.toml.orig +0 -0
  2251. /data/ext/cargo-vendor/{wiggle-36.0.0 → wiggle-36.0.19}/LICENSE +0 -0
  2252. /data/ext/cargo-vendor/{wiggle-36.0.0 → wiggle-36.0.19}/README.md +0 -0
  2253. /data/ext/cargo-vendor/{wiggle-36.0.0 → wiggle-36.0.19}/src/error.rs +0 -0
  2254. /data/ext/cargo-vendor/{wiggle-36.0.0 → wiggle-36.0.19}/src/guest_type.rs +0 -0
  2255. /data/ext/cargo-vendor/{wiggle-36.0.0 → wiggle-36.0.19}/src/lib.rs +0 -0
  2256. /data/ext/cargo-vendor/{wiggle-36.0.0 → wiggle-36.0.19}/src/region.rs +0 -0
  2257. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/Cargo.toml.orig +0 -0
  2258. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/LICENSE +0 -0
  2259. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/README.md +0 -0
  2260. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/codegen_settings.rs +0 -0
  2261. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/config.rs +0 -0
  2262. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/funcs.rs +0 -0
  2263. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/lib.rs +0 -0
  2264. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/lifetimes.rs +0 -0
  2265. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/names.rs +0 -0
  2266. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/types/error.rs +0 -0
  2267. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/types/flags.rs +0 -0
  2268. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/types/handle.rs +0 -0
  2269. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/types/mod.rs +0 -0
  2270. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/types/record.rs +0 -0
  2271. /data/ext/cargo-vendor/{wiggle-generate-36.0.0 → wiggle-generate-36.0.19}/src/types/variant.rs +0 -0
  2272. /data/ext/cargo-vendor/{wiggle-macro-36.0.0 → wiggle-macro-36.0.19}/Cargo.toml.orig +0 -0
  2273. /data/ext/cargo-vendor/{wiggle-macro-36.0.0 → wiggle-macro-36.0.19}/LICENSE +0 -0
  2274. /data/ext/cargo-vendor/{wiggle-macro-36.0.0 → wiggle-macro-36.0.19}/build.rs +0 -0
  2275. /data/ext/cargo-vendor/{wiggle-macro-36.0.0 → wiggle-macro-36.0.19}/src/lib.rs +0 -0
  2276. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/Cargo.toml.orig +0 -0
  2277. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/LICENSE +0 -0
  2278. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/build.rs +0 -0
  2279. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/abi/local.rs +0 -0
  2280. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/abi/mod.rs +0 -0
  2281. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/codegen/builtin.rs +0 -0
  2282. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/codegen/call.rs +0 -0
  2283. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/codegen/context.rs +0 -0
  2284. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/codegen/control.rs +0 -0
  2285. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/codegen/phase.rs +0 -0
  2286. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/constant_pool.rs +0 -0
  2287. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/frame/mod.rs +0 -0
  2288. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/aarch64/abi.rs +0 -0
  2289. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/aarch64/address.rs +0 -0
  2290. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/aarch64/mod.rs +0 -0
  2291. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/aarch64/regs.rs +0 -0
  2292. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/mod.rs +0 -0
  2293. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/reg.rs +0 -0
  2294. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/x64/abi.rs +0 -0
  2295. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/x64/address.rs +0 -0
  2296. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/x64/asm.rs +0 -0
  2297. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/x64/mod.rs +0 -0
  2298. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/isa/x64/regs.rs +0 -0
  2299. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/lib.rs +0 -0
  2300. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/regalloc.rs +0 -0
  2301. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/regset.rs +0 -0
  2302. /data/ext/cargo-vendor/{winch-codegen-36.0.0 → winch-codegen-36.0.19}/src/stack.rs +0 -0
@@ -0,0 +1,4658 @@
1
+ //! Runtime support for the Component Model Async ABI.
2
+ //!
3
+ //! This module and its submodules provide host runtime support for Component
4
+ //! Model Async features such as async-lifted exports, async-lowered imports,
5
+ //! streams, futures, and related intrinsics. See [the Async
6
+ //! Explainer](https://github.com/WebAssembly/component-model/blob/main/design/mvp/Async.md)
7
+ //! for a high-level overview.
8
+ //!
9
+ //! At the core of this support is an event loop which schedules and switches
10
+ //! between guest tasks and any host tasks they create. Each
11
+ //! `ComponentInstance` will have at most one event loop running at any given
12
+ //! time, and that loop may be suspended and resumed by the host embedder using
13
+ //! e.g. `Instance::run_concurrent`. The `ComponentInstance::poll_until`
14
+ //! function contains the loop itself, while the
15
+ //! `ComponentInstance::concurrent_state` field holds its state.
16
+ //!
17
+ //! # Public API Overview
18
+ //!
19
+ //! ## Top-level API (e.g. kicking off host->guest calls and driving the event loop)
20
+ //!
21
+ //! - `[Typed]Func::call_concurrent`: Start a host->guest call to an
22
+ //! async-lifted or sync-lifted import, creating a guest task.
23
+ //!
24
+ //! - `Instance::run_concurrent`: Run the event loop for the specified instance,
25
+ //! allowing any and all tasks belonging to that instance to make progress.
26
+ //!
27
+ //! - `Instance::spawn`: Run a background task as part of the event loop for the
28
+ //! specified instance.
29
+ //!
30
+ //! - `Instance::{future,stream}`: Create a new Component Model `future` or
31
+ //! `stream`; the read end may be passed to the guest.
32
+ //!
33
+ //! - `{Future,Stream}Reader::read` and `{Future,Stream}Writer::write`: read
34
+ //! from or write to a future or stream, respectively.
35
+ //!
36
+ //! ## Host Task API (e.g. implementing concurrent host functions and background tasks)
37
+ //!
38
+ //! - `LinkerInstance::func_wrap_concurrent`: Register a concurrent host
39
+ //! function with the linker. That function will take an `Accessor` as its
40
+ //! first parameter, which provides access to the store and instance between
41
+ //! (but not across) await points.
42
+ //!
43
+ //! - `Accessor::with`: Access the store, its associated data, and the current
44
+ //! instance.
45
+ //!
46
+ //! - `Accessor::spawn`: Run a background task as part of the event loop for the
47
+ //! specified instance. This is equivalent to `Instance::spawn` but more
48
+ //! convenient to use in host functions.
49
+
50
+ use crate::component::func::{self, Func, Options};
51
+ use crate::component::{Component, ComponentInstanceId, HasData, HasSelf, Instance};
52
+ use crate::fiber::{self, StoreFiber, StoreFiberYield};
53
+ use crate::store::{StoreInner, StoreOpaque, StoreToken};
54
+ use crate::vm::component::{CallContext, InstanceFlags, ResourceTables};
55
+ use crate::vm::{SendSyncPtr, VMFuncRef, VMMemoryDefinition, VMStore};
56
+ use crate::{AsContext, AsContextMut, StoreContext, StoreContextMut, ValRaw};
57
+ use anyhow::{Context as _, Result, anyhow, bail};
58
+ use error_contexts::{GlobalErrorContextRefCount, LocalErrorContextRefCount};
59
+ use futures::channel::oneshot;
60
+ use futures::future::{self, Either, FutureExt};
61
+ use futures::stream::{FuturesUnordered, StreamExt};
62
+ use futures_and_streams::{FlatAbi, ReturnCode, StreamFutureState, TableIndex, TransmitHandle};
63
+ use states::StateTable;
64
+ use std::any::Any;
65
+ use std::borrow::ToOwned;
66
+ use std::boxed::Box;
67
+ use std::cell::UnsafeCell;
68
+ use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
69
+ use std::fmt;
70
+ use std::future::Future;
71
+ use std::marker::PhantomData;
72
+ use std::mem::{self, ManuallyDrop, MaybeUninit};
73
+ use std::ops::DerefMut;
74
+ use std::pin::{Pin, pin};
75
+ use std::ptr::{self, NonNull};
76
+ use std::slice;
77
+ use std::sync::Mutex;
78
+ use std::task::{Context, Poll, Waker};
79
+ use std::vec::Vec;
80
+ use table::{Table, TableDebug, TableError, TableId};
81
+ use wasmtime_environ::PrimaryMap;
82
+ use wasmtime_environ::component::{
83
+ CanonicalOptions, CanonicalOptionsDataModel, ExportIndex, MAX_FLAT_PARAMS, MAX_FLAT_RESULTS,
84
+ OptionsIndex, PREPARE_ASYNC_NO_RESULT, PREPARE_ASYNC_WITH_RESULT,
85
+ RuntimeComponentInstanceIndex, StringEncoding, TypeComponentGlobalErrorContextTableIndex,
86
+ TypeComponentLocalErrorContextTableIndex, TypeFutureTableIndex, TypeStreamTableIndex,
87
+ TypeTupleIndex,
88
+ };
89
+
90
+ pub use abort::AbortHandle;
91
+ pub use futures_and_streams::{
92
+ ErrorContext, FutureReader, FutureWriter, GuardedFutureReader, GuardedFutureWriter,
93
+ GuardedStreamReader, GuardedStreamWriter, ReadBuffer, StreamReader, StreamWriter, VecBuffer,
94
+ WriteBuffer,
95
+ };
96
+ pub(crate) use futures_and_streams::{
97
+ ResourcePair, lower_error_context_to_index, lower_future_to_index, lower_stream_to_index,
98
+ };
99
+
100
+ mod abort;
101
+ mod error_contexts;
102
+ mod futures_and_streams;
103
+ mod states;
104
+ mod table;
105
+ pub(crate) mod tls;
106
+
107
+ /// Constant defined in the Component Model spec to indicate that the async
108
+ /// intrinsic (e.g. `future.write`) has not yet completed.
109
+ const BLOCKED: u32 = 0xffff_ffff;
110
+
111
+ /// Corresponds to `CallState` in the upstream spec.
112
+ #[derive(Clone, Copy, Eq, PartialEq, Debug)]
113
+ pub enum Status {
114
+ Starting = 0,
115
+ Started = 1,
116
+ Returned = 2,
117
+ StartCancelled = 3,
118
+ ReturnCancelled = 4,
119
+ }
120
+
121
+ impl Status {
122
+ /// Packs this status and the optional `waitable` provided into a 32-bit
123
+ /// result that the canonical ABI requires.
124
+ ///
125
+ /// The low 4 bits are reserved for the status while the upper 28 bits are
126
+ /// the waitable, if present.
127
+ pub fn pack(self, waitable: Option<u32>) -> u32 {
128
+ assert!(matches!(self, Status::Returned) == waitable.is_none());
129
+ let waitable = waitable.unwrap_or(0);
130
+ assert!(waitable < (1 << 28));
131
+ (waitable << 4) | (self as u32)
132
+ }
133
+ }
134
+
135
+ /// Corresponds to `EventCode` in the Component Model spec, plus related payload
136
+ /// data.
137
+ #[derive(Clone, Copy, Debug)]
138
+ enum Event {
139
+ None,
140
+ Cancelled,
141
+ Subtask {
142
+ status: Status,
143
+ },
144
+ StreamRead {
145
+ code: ReturnCode,
146
+ pending: Option<(TypeStreamTableIndex, u32)>,
147
+ },
148
+ StreamWrite {
149
+ code: ReturnCode,
150
+ pending: Option<(TypeStreamTableIndex, u32)>,
151
+ },
152
+ FutureRead {
153
+ code: ReturnCode,
154
+ pending: Option<(TypeFutureTableIndex, u32)>,
155
+ },
156
+ FutureWrite {
157
+ code: ReturnCode,
158
+ pending: Option<(TypeFutureTableIndex, u32)>,
159
+ },
160
+ }
161
+
162
+ impl Event {
163
+ /// Lower this event to core Wasm integers for delivery to the guest.
164
+ ///
165
+ /// Note that the waitable handle, if any, is assumed to be lowered
166
+ /// separately.
167
+ fn parts(self) -> (u32, u32) {
168
+ const EVENT_NONE: u32 = 0;
169
+ const EVENT_SUBTASK: u32 = 1;
170
+ const EVENT_STREAM_READ: u32 = 2;
171
+ const EVENT_STREAM_WRITE: u32 = 3;
172
+ const EVENT_FUTURE_READ: u32 = 4;
173
+ const EVENT_FUTURE_WRITE: u32 = 5;
174
+ const EVENT_CANCELLED: u32 = 6;
175
+ match self {
176
+ Event::None => (EVENT_NONE, 0),
177
+ Event::Cancelled => (EVENT_CANCELLED, 0),
178
+ Event::Subtask { status } => (EVENT_SUBTASK, status as u32),
179
+ Event::StreamRead { code, .. } => (EVENT_STREAM_READ, code.encode()),
180
+ Event::StreamWrite { code, .. } => (EVENT_STREAM_WRITE, code.encode()),
181
+ Event::FutureRead { code, .. } => (EVENT_FUTURE_READ, code.encode()),
182
+ Event::FutureWrite { code, .. } => (EVENT_FUTURE_WRITE, code.encode()),
183
+ }
184
+ }
185
+ }
186
+
187
+ /// Corresponds to `CallbackCode` in the spec.
188
+ mod callback_code {
189
+ pub const EXIT: u32 = 0;
190
+ pub const YIELD: u32 = 1;
191
+ pub const WAIT: u32 = 2;
192
+ pub const POLL: u32 = 3;
193
+ }
194
+
195
+ /// A flag indicating that the callee is an async-lowered export.
196
+ ///
197
+ /// This may be passed to the `async-start` intrinsic from a fused adapter.
198
+ const START_FLAG_ASYNC_CALLEE: u32 = wasmtime_environ::component::START_FLAG_ASYNC_CALLEE as u32;
199
+
200
+ /// Provides access to either store data (via the `get` method) or the store
201
+ /// itself (via [`AsContext`]/[`AsContextMut`]), as well as the component
202
+ /// instance to which the current host task belongs.
203
+ ///
204
+ /// See [`Accessor::with`] for details.
205
+ pub struct Access<'a, T: 'static, D: HasData + ?Sized = HasSelf<T>> {
206
+ accessor: &'a Accessor<T, D>,
207
+ store: StoreContextMut<'a, T>,
208
+ }
209
+
210
+ impl<'a, T, D> Access<'a, T, D>
211
+ where
212
+ D: HasData + ?Sized,
213
+ T: 'static,
214
+ {
215
+ /// Get mutable access to the store data.
216
+ pub fn data_mut(&mut self) -> &mut T {
217
+ self.store.data_mut()
218
+ }
219
+
220
+ /// Get mutable access to the store data.
221
+ pub fn get(&mut self) -> D::Data<'_> {
222
+ let get_data = self.accessor.get_data;
223
+ get_data(self.data_mut())
224
+ }
225
+
226
+ /// Spawn a background task.
227
+ ///
228
+ /// See [`Accessor::spawn`] for details.
229
+ pub fn spawn(&mut self, task: impl AccessorTask<T, D, Result<()>>) -> AbortHandle
230
+ where
231
+ T: 'static,
232
+ {
233
+ self.accessor.instance.unwrap().spawn_with_accessor(
234
+ self.store.as_context_mut(),
235
+ self.accessor.clone_for_spawn(),
236
+ task,
237
+ )
238
+ }
239
+
240
+ /// Retrieve the component instance of the caller.
241
+ pub fn instance(&self) -> Instance {
242
+ self.accessor.instance()
243
+ }
244
+ }
245
+
246
+ impl<'a, T, D> AsContext for Access<'a, T, D>
247
+ where
248
+ D: HasData + ?Sized,
249
+ T: 'static,
250
+ {
251
+ type Data = T;
252
+
253
+ fn as_context(&self) -> StoreContext<'_, T> {
254
+ self.store.as_context()
255
+ }
256
+ }
257
+
258
+ impl<'a, T, D> AsContextMut for Access<'a, T, D>
259
+ where
260
+ D: HasData + ?Sized,
261
+ T: 'static,
262
+ {
263
+ fn as_context_mut(&mut self) -> StoreContextMut<'_, T> {
264
+ self.store.as_context_mut()
265
+ }
266
+ }
267
+
268
+ /// Provides scoped mutable access to store data in the context of a concurrent
269
+ /// host task future.
270
+ ///
271
+ /// This allows multiple host task futures to execute concurrently and access
272
+ /// the store between (but not across) `await` points.
273
+ ///
274
+ /// # Rationale
275
+ ///
276
+ /// This structure is sort of like `&mut T` plus a projection from `&mut T` to
277
+ /// `D::Data<'_>`. The problem this is solving, however, is that it does not
278
+ /// literally store these values. The basic problem is that when a concurrent
279
+ /// host future is being polled it has access to `&mut T` (and the whole
280
+ /// `Store`) but when it's not being polled it does not have access to these
281
+ /// values. This reflects how the store is only ever polling one future at a
282
+ /// time so the store is effectively being passed between futures.
283
+ ///
284
+ /// Rust's `Future` trait, however, has no means of passing a `Store`
285
+ /// temporarily between futures. The [`Context`](std::task::Context) type does
286
+ /// not have the ability to attach arbitrary information to it at this time.
287
+ /// This type, [`Accessor`], is used to bridge this expressivity gap.
288
+ ///
289
+ /// The [`Accessor`] type here represents the ability to acquire, temporarily in
290
+ /// a synchronous manner, the current store. The [`Accessor::with`] function
291
+ /// yields an [`Access`] which can be used to access [`StoreContextMut`], `&mut
292
+ /// T`, or `D::Data<'_>`. Note though that [`Accessor::with`] intentionally does
293
+ /// not take an `async` closure as its argument, instead it's a synchronous
294
+ /// closure which must complete during on run of `Future::poll`. This reflects
295
+ /// how the store is temporarily made available while a host future is being
296
+ /// polled.
297
+ ///
298
+ /// # Implementation
299
+ ///
300
+ /// This type does not actually store `&mut T` nor `StoreContextMut<T>`, and
301
+ /// this type additionally doesn't even have a lifetime parameter. This is
302
+ /// instead a representation of proof of the ability to acquire these while a
303
+ /// future is being polled. Wasmtime will, when it polls a host future,
304
+ /// configure ambient state such that the `Accessor` that a future closes over
305
+ /// will work and be able to access the store.
306
+ ///
307
+ /// This has a number of implications for users such as:
308
+ ///
309
+ /// * It's intentional that `Accessor` cannot be cloned, it needs to stay within
310
+ /// the lifetime of a single future.
311
+ /// * A futures is expected to, however, close over an `Accessor` and keep it
312
+ /// alive probably for the duration of the entire future.
313
+ /// * Different host futures will be given different `Accessor`s, and that's
314
+ /// intentional.
315
+ /// * The `Accessor` type is `Send` and `Sync` irrespective of `T` which
316
+ /// alleviates some otherwise required bounds to be written down.
317
+ ///
318
+ /// # Using `Accessor` in `Drop`
319
+ ///
320
+ /// The methods on `Accessor` are only expected to work in the context of
321
+ /// `Future::poll` and are not guaranteed to work in `Drop`. This is because a
322
+ /// host future can be dropped at any time throughout the system and Wasmtime
323
+ /// store context is not necessarily available at that time. It's recommended to
324
+ /// not use `Accessor` methods in anything connected to a `Drop` implementation
325
+ /// as they will panic and have unintended results. If you run into this though
326
+ /// feel free to file an issue on the Wasmtime repository.
327
+ pub struct Accessor<T: 'static, D = HasSelf<T>>
328
+ where
329
+ D: HasData + ?Sized,
330
+ {
331
+ token: StoreToken<T>,
332
+ get_data: fn(&mut T) -> D::Data<'_>,
333
+ instance: Option<Instance>,
334
+ }
335
+
336
+ /// A helper trait to take any type of accessor-with-data in functions.
337
+ ///
338
+ /// This trait is similar to [`AsContextMut`] except that it's used when
339
+ /// working with an [`Accessor`] instead of a [`StoreContextMut`]. The
340
+ /// [`Accessor`] is the main type used in concurrent settings and is passed to
341
+ /// functions such as [`Func::call_concurrent`] or [`FutureWriter::write`].
342
+ ///
343
+ /// This trait is implemented for [`Accessor`] and `&T` where `T` implements
344
+ /// this trait. This effectively means that regardless of the `D` in
345
+ /// `Accessor<T, D>` it can still be passed to a function which just needs a
346
+ /// store accessor.
347
+ ///
348
+ /// Acquiring an [`Accessor`] can be done through [`Instance::run_concurrent`]
349
+ /// for example or in a host function through
350
+ /// [`Linker::func_wrap_concurrent`](crate::component::Linker::func_wrap_concurrent).
351
+ pub trait AsAccessor {
352
+ /// The `T` in `Store<T>` that this accessor refers to.
353
+ type Data: 'static;
354
+
355
+ /// The `D` in `Accessor<T, D>`, or the projection out of
356
+ /// `Self::Data`.
357
+ type AccessorData: HasData + ?Sized;
358
+
359
+ /// Returns the accessor that this is referring to.
360
+ fn as_accessor(&self) -> &Accessor<Self::Data, Self::AccessorData>;
361
+ }
362
+
363
+ impl<T: AsAccessor + ?Sized> AsAccessor for &T {
364
+ type Data = T::Data;
365
+ type AccessorData = T::AccessorData;
366
+
367
+ fn as_accessor(&self) -> &Accessor<Self::Data, Self::AccessorData> {
368
+ T::as_accessor(self)
369
+ }
370
+ }
371
+
372
+ impl<T, D: HasData + ?Sized> AsAccessor for Accessor<T, D> {
373
+ type Data = T;
374
+ type AccessorData = D;
375
+
376
+ fn as_accessor(&self) -> &Accessor<T, D> {
377
+ self
378
+ }
379
+ }
380
+
381
+ // Note that it is intentional at this time that `Accessor` does not actually
382
+ // store `&mut T` or anything similar. This distinctly enables the `Accessor`
383
+ // structure to be both `Send` and `Sync` regardless of what `T` is (or `D` for
384
+ // that matter). This is used to ergonomically simplify bindings where the
385
+ // majority of the time `Accessor` is closed over in a future which then needs
386
+ // to be `Send` and `Sync`. To avoid needing to write `T: Send` everywhere (as
387
+ // you already have to write `T: 'static`...) it helps to avoid this.
388
+ //
389
+ // Note as well that `Accessor` doesn't actually store its data at all. Instead
390
+ // it's more of a "proof" of what can be accessed from TLS. API design around
391
+ // `Accessor` and functions like `Linker::func_wrap_concurrent` are
392
+ // intentionally made to ensure that `Accessor` is ideally only used in the
393
+ // context that TLS variables are actually set. For example host functions are
394
+ // given `&Accessor`, not `Accessor`, and this prevents them from persisting
395
+ // the value outside of a future. Within the future the TLS variables are all
396
+ // guaranteed to be set while the future is being polled.
397
+ //
398
+ // Finally though this is not an ironclad guarantee, but nor does it need to be.
399
+ // The TLS APIs are designed to panic or otherwise model usage where they're
400
+ // called recursively or similar. It's hoped that code cannot be constructed to
401
+ // actually hit this at runtime but this is not a safety requirement at this
402
+ // time.
403
+ const _: () = {
404
+ const fn assert<T: Send + Sync>() {}
405
+ assert::<Accessor<UnsafeCell<u32>>>();
406
+ };
407
+
408
+ impl<T> Accessor<T> {
409
+ /// Creates a new `Accessor` backed by the specified functions.
410
+ ///
411
+ /// - `get`: used to retrieve the store
412
+ ///
413
+ /// - `get_data`: used to "project" from the store's associated data to
414
+ /// another type (e.g. a field of that data or a wrapper around it).
415
+ ///
416
+ /// - `spawn`: used to queue spawned background tasks to be run later
417
+ ///
418
+ /// - `instance`: used to access the `Instance` to which this `Accessor`
419
+ /// (and the future which closes over it) belongs
420
+ pub(crate) fn new(token: StoreToken<T>, instance: Option<Instance>) -> Self {
421
+ Self {
422
+ token,
423
+ get_data: |x| x,
424
+ instance,
425
+ }
426
+ }
427
+ }
428
+
429
+ impl<T, D> Accessor<T, D>
430
+ where
431
+ D: HasData + ?Sized,
432
+ {
433
+ /// Run the specified closure, passing it mutable access to the store.
434
+ ///
435
+ /// This function is one of the main building blocks of the [`Accessor`]
436
+ /// type. This yields synchronous, blocking, access to store via an
437
+ /// [`Access`]. The [`Access`] implements [`AsContextMut`] in addition to
438
+ /// providing the ability to access `D` via [`Access::get`]. Note that the
439
+ /// `fun` here is given only temporary access to the store and `T`/`D`
440
+ /// meaning that the return value `R` here is not allowed to capture borrows
441
+ /// into the two. If access is needed to data within `T` or `D` outside of
442
+ /// this closure then it must be `clone`d out, for example.
443
+ ///
444
+ /// # Panics
445
+ ///
446
+ /// This function will panic if it is call recursively with any other
447
+ /// accessor already in scope. For example if `with` is called within `fun`,
448
+ /// then this function will panic. It is up to the embedder to ensure that
449
+ /// this does not happen.
450
+ pub fn with<R>(&self, fun: impl FnOnce(Access<'_, T, D>) -> R) -> R {
451
+ tls::get(|vmstore| {
452
+ fun(Access {
453
+ store: self.token.as_context_mut(vmstore),
454
+ accessor: self,
455
+ })
456
+ })
457
+ }
458
+
459
+ /// Changes this accessor to access `D2` instead of the current type
460
+ /// parameter `D`.
461
+ ///
462
+ /// This changes the underlying data access from `T` to `D2::Data<'_>`.
463
+ ///
464
+ /// Note that this is not a public or recommended API because it's easy to
465
+ /// cause panics with this by having two `Accessor` values live at the same
466
+ /// time. The returned `Accessor` does not refer to this `Accessor` meaning
467
+ /// that both can be used. You could, for example, call `Accessor::with`
468
+ /// simultaneously on both. That would cause a panic though.
469
+ ///
470
+ /// In short while there's nothing unsafe about this it's a footgun. It's
471
+ /// here for bindings generation where the provided accessor is transformed
472
+ /// into a new accessor and then this returned accessor is passed to
473
+ /// implementations.
474
+ ///
475
+ /// Note that one possible fix for this would be a lifetime parameter on
476
+ /// `Accessor` itself so the returned value could borrow from the original
477
+ /// value (or this could be `self`-by-value instead of `&mut self`) but in
478
+ /// attempting that it was found to be a bit too onerous in terms of
479
+ /// plumbing things around without a whole lot of benefit.
480
+ ///
481
+ /// In short, this works, but must be treated with care. The current main
482
+ /// user, bindings generation, treats this with care.
483
+ #[doc(hidden)]
484
+ pub fn with_data<D2: HasData>(&self, get_data: fn(&mut T) -> D2::Data<'_>) -> Accessor<T, D2> {
485
+ Accessor {
486
+ token: self.token,
487
+ get_data,
488
+ instance: self.instance,
489
+ }
490
+ }
491
+
492
+ /// Spawn a background task which will receive an `&Accessor<T, D>` and
493
+ /// run concurrently with any other tasks in progress for the current
494
+ /// instance.
495
+ ///
496
+ /// This is particularly useful for host functions which return a `stream`
497
+ /// or `future` such that the code to write to the write end of that
498
+ /// `stream` or `future` must run after the function returns.
499
+ ///
500
+ /// The returned [`AbortHandle`] may be used to cancel the task.
501
+ ///
502
+ /// # Panics
503
+ ///
504
+ /// Panics if called within a closure provided to the [`Accessor::with`]
505
+ /// function. This can only be called outside an active invocation of
506
+ /// [`Accessor::with`].
507
+ pub fn spawn(&self, task: impl AccessorTask<T, D, Result<()>>) -> AbortHandle
508
+ where
509
+ T: 'static,
510
+ {
511
+ let instance = self.instance.unwrap();
512
+ let accessor = self.clone_for_spawn();
513
+ self.with(|mut access| {
514
+ instance.spawn_with_accessor(access.as_context_mut(), accessor, task)
515
+ })
516
+ }
517
+
518
+ /// Retrieve the component instance of the caller.
519
+ pub fn instance(&self) -> Instance {
520
+ self.instance.unwrap()
521
+ }
522
+
523
+ fn clone_for_spawn(&self) -> Self {
524
+ Self {
525
+ token: self.token,
526
+ get_data: self.get_data,
527
+ instance: self.instance,
528
+ }
529
+ }
530
+ }
531
+
532
+ /// Represents a task which may be provided to `Accessor::spawn`,
533
+ /// `Accessor::forward`, or `Instance::spawn`.
534
+ // TODO: Replace this with `std::ops::AsyncFnOnce` when that becomes a viable
535
+ // option.
536
+ //
537
+ // `AsyncFnOnce` is still nightly-only in latest stable Rust version as of this
538
+ // writing (1.84.1), and even with 1.85.0-beta it's not possible to specify
539
+ // e.g. `Send` and `Sync` bounds on the `Future` type returned by an
540
+ // `AsyncFnOnce`. Also, using `F: Future<Output = Result<()>> + Send + Sync,
541
+ // FN: FnOnce(&Accessor<T>) -> F + Send + Sync + 'static` fails with a type
542
+ // mismatch error when we try to pass it an async closure (e.g. `async move |_|
543
+ // { ... }`). So this seems to be the best we can do for the time being.
544
+ pub trait AccessorTask<T, D, R>: Send + 'static
545
+ where
546
+ D: HasData + ?Sized,
547
+ {
548
+ /// Run the task.
549
+ fn run(self, accessor: &Accessor<T, D>) -> impl Future<Output = R> + Send;
550
+ }
551
+
552
+ /// Represents the state of a waitable handle.
553
+ #[derive(Debug)]
554
+ enum WaitableState {
555
+ /// Represents a host task handle.
556
+ HostTask,
557
+ /// Represents a guest task handle.
558
+ GuestTask,
559
+ /// Represents a stream handle.
560
+ Stream(TypeStreamTableIndex, StreamFutureState),
561
+ /// Represents a future handle.
562
+ Future(TypeFutureTableIndex, StreamFutureState),
563
+ /// Represents a waitable-set handle.
564
+ Set,
565
+ }
566
+
567
+ /// Represents parameter and result metadata for the caller side of a
568
+ /// guest->guest call orchestrated by a fused adapter.
569
+ enum CallerInfo {
570
+ /// Metadata for a call to an async-lowered import
571
+ Async {
572
+ params: Vec<ValRaw>,
573
+ has_result: bool,
574
+ },
575
+ /// Metadata for a call to an sync-lowered import
576
+ Sync {
577
+ params: Vec<ValRaw>,
578
+ result_count: u32,
579
+ },
580
+ }
581
+
582
+ /// Indicates how a guest task is waiting on a waitable set.
583
+ enum WaitMode {
584
+ /// The guest task is waiting using `task.wait`
585
+ Fiber(StoreFiber<'static>),
586
+ /// The guest task is waiting via a callback declared as part of an
587
+ /// async-lifted export.
588
+ Callback(RuntimeComponentInstanceIndex),
589
+ }
590
+
591
+ /// Represents the reason a fiber is suspending itself.
592
+ #[derive(Debug)]
593
+ enum SuspendReason {
594
+ /// The fiber is waiting for an event to be delivered to the specified
595
+ /// waitable set or task.
596
+ Waiting {
597
+ set: TableId<WaitableSet>,
598
+ task: TableId<GuestTask>,
599
+ },
600
+ /// The fiber has finished handling its most recent work item and is waiting
601
+ /// for another (or to be dropped if it is no longer needed).
602
+ NeedWork,
603
+ /// The fiber is yielding and should be resumed once other tasks have had a
604
+ /// chance to run.
605
+ Yielding { task: TableId<GuestTask> },
606
+ }
607
+
608
+ /// Represents a pending call into guest code for a given guest task.
609
+ enum GuestCallKind {
610
+ /// Indicates there's an event to deliver to the task, possibly related to a
611
+ /// waitable set the task has been waiting on or polling.
612
+ DeliverEvent {
613
+ /// The (sub-)component instance in which the task has most recently
614
+ /// been executing.
615
+ ///
616
+ /// Note that this might not be the same as the instance the guest task
617
+ /// started executing in given that one or more synchronous guest->guest
618
+ /// calls may have occurred involving multiple instances.
619
+ instance: RuntimeComponentInstanceIndex,
620
+ /// The waitable set the event belongs to, if any.
621
+ ///
622
+ /// If this is `None` the event will be waiting in the
623
+ /// `GuestTask::event` field for the task.
624
+ set: Option<TableId<WaitableSet>>,
625
+ },
626
+ /// Indicates that a new guest task call is pending and may be executed
627
+ /// using the specified closure.
628
+ Start(Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send + Sync>),
629
+ }
630
+
631
+ impl fmt::Debug for GuestCallKind {
632
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
633
+ match self {
634
+ Self::DeliverEvent { instance, set } => f
635
+ .debug_struct("DeliverEvent")
636
+ .field("instance", instance)
637
+ .field("set", set)
638
+ .finish(),
639
+ Self::Start(_) => f.debug_tuple("Start").finish(),
640
+ }
641
+ }
642
+ }
643
+
644
+ /// Represents a pending call into guest code for a given guest task.
645
+ #[derive(Debug)]
646
+ struct GuestCall {
647
+ task: TableId<GuestTask>,
648
+ kind: GuestCallKind,
649
+ }
650
+
651
+ impl GuestCall {
652
+ /// Returns whether or not the call is ready to run.
653
+ ///
654
+ /// A call will not be ready to run if either:
655
+ ///
656
+ /// - the (sub-)component instance to be called has already been entered and
657
+ /// cannot be reentered until an in-progress call completes
658
+ ///
659
+ /// - the call is for a not-yet started task and the (sub-)component
660
+ /// instance to be called has backpressure enabled
661
+ fn is_ready(&self, state: &mut ConcurrentState) -> Result<bool> {
662
+ let task_instance = state.get(self.task)?.instance;
663
+ let state = state.instance_state(task_instance);
664
+ let ready = match &self.kind {
665
+ GuestCallKind::DeliverEvent { .. } => !state.do_not_enter,
666
+ GuestCallKind::Start(_) => !(state.do_not_enter || state.backpressure),
667
+ };
668
+ log::trace!(
669
+ "call {self:?} ready? {ready} (do_not_enter: {}; backpressure: {})",
670
+ state.do_not_enter,
671
+ state.backpressure
672
+ );
673
+ Ok(ready)
674
+ }
675
+ }
676
+
677
+ /// Job to be run on a worker fiber.
678
+ enum WorkerItem {
679
+ GuestCall(GuestCall),
680
+ Function(Mutex<Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send>>),
681
+ }
682
+
683
+ /// Represents state related to an in-progress poll operation (e.g. `task.poll`
684
+ /// or `CallbackCode.POLL`).
685
+ #[derive(Debug)]
686
+ struct PollParams {
687
+ /// Identifies the polling task.
688
+ task: TableId<GuestTask>,
689
+ /// The waitable set being polled.
690
+ set: TableId<WaitableSet>,
691
+ /// The (sub-)component instance in which the task has most recently been
692
+ /// executing.
693
+ ///
694
+ /// Note that this might not be the same as the instance the guest task
695
+ /// started executing in given that one or more synchronous guest->guest
696
+ /// calls may have occurred involving multiple instances.
697
+ instance: RuntimeComponentInstanceIndex,
698
+ }
699
+
700
+ /// Represents a pending work item to be handled by the event loop for a given
701
+ /// component instance.
702
+ enum WorkItem {
703
+ /// A host task to be pushed to `ConcurrentState::futures`.
704
+ PushFuture(Mutex<HostTaskFuture>),
705
+ /// A fiber to resume.
706
+ ResumeFiber(StoreFiber<'static>),
707
+ /// A pending call into guest code for a given guest task.
708
+ GuestCall(GuestCall),
709
+ /// A pending `task.poll` or `CallbackCode.POLL` operation.
710
+ Poll(PollParams),
711
+ /// A job to run on a worker fiber.
712
+ WorkerFunction(Mutex<Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send>>),
713
+ }
714
+
715
+ impl fmt::Debug for WorkItem {
716
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
717
+ match self {
718
+ Self::PushFuture(_) => f.debug_tuple("PushFuture").finish(),
719
+ Self::ResumeFiber(_) => f.debug_tuple("ResumeFiber").finish(),
720
+ Self::GuestCall(call) => f.debug_tuple("GuestCall").field(call).finish(),
721
+ Self::Poll(params) => f.debug_tuple("Poll").field(params).finish(),
722
+ Self::WorkerFunction(_) => f.debug_tuple("WorkerFunction").finish(),
723
+ }
724
+ }
725
+ }
726
+
727
+ impl ConcurrentState {
728
+ fn instance_state(&mut self, instance: RuntimeComponentInstanceIndex) -> &mut InstanceState {
729
+ self.instance_states.entry(instance).or_default()
730
+ }
731
+
732
+ fn push<V: Send + Sync + 'static>(&mut self, value: V) -> Result<TableId<V>, TableError> {
733
+ self.table.push(value)
734
+ }
735
+
736
+ fn get<V: 'static>(&self, id: TableId<V>) -> Result<&V, TableError> {
737
+ self.table.get(id)
738
+ }
739
+
740
+ fn get_mut<V: 'static>(&mut self, id: TableId<V>) -> Result<&mut V, TableError> {
741
+ self.table.get_mut(id)
742
+ }
743
+
744
+ pub fn add_child<T, U>(
745
+ &mut self,
746
+ child: TableId<T>,
747
+ parent: TableId<U>,
748
+ ) -> Result<(), TableError> {
749
+ self.table.add_child(child, parent)
750
+ }
751
+
752
+ pub fn remove_child<T, U>(
753
+ &mut self,
754
+ child: TableId<T>,
755
+ parent: TableId<U>,
756
+ ) -> Result<(), TableError> {
757
+ self.table.remove_child(child, parent)
758
+ }
759
+
760
+ fn delete<V: 'static>(&mut self, id: TableId<V>) -> Result<V, TableError> {
761
+ self.table.delete(id)
762
+ }
763
+
764
+ fn push_future(&mut self, future: HostTaskFuture) {
765
+ // Note that we can't directly push to `ConcurrentState::futures` here
766
+ // since this may be called from a future that's being polled inside
767
+ // `Self::poll_until`, which temporarily removes the `FuturesUnordered`
768
+ // so it has exclusive access while polling it. Therefore, we push a
769
+ // work item to the "high priority" queue, which will actually push to
770
+ // `ConcurrentState::futures` later.
771
+ self.push_high_priority(WorkItem::PushFuture(Mutex::new(future)));
772
+ }
773
+
774
+ fn push_high_priority(&mut self, item: WorkItem) {
775
+ log::trace!("push high priority: {item:?}");
776
+ self.high_priority.push(item);
777
+ }
778
+
779
+ fn push_low_priority(&mut self, item: WorkItem) {
780
+ log::trace!("push low priority: {item:?}");
781
+ self.low_priority.push(item);
782
+ }
783
+
784
+ /// Determine whether the instance associated with the specified guest task
785
+ /// may be entered (i.e. is not already on the async call stack).
786
+ ///
787
+ /// This is an additional check on top of the "may_enter" instance flag;
788
+ /// it's needed because async-lifted exports with callback functions must
789
+ /// not call their own instances directly or indirectly, and due to the
790
+ /// "stackless" nature of callback-enabled guest tasks this may happen even
791
+ /// if there are no activation records on the stack (i.e. the "may_enter"
792
+ /// field is `true`) for that instance.
793
+ fn may_enter(&mut self, mut guest_task: TableId<GuestTask>) -> bool {
794
+ let guest_instance = self.get(guest_task).unwrap().instance;
795
+
796
+ // Walk the task tree back to the root, looking for potential
797
+ // reentrance.
798
+ //
799
+ // TODO: This could be optimized by maintaining a per-`GuestTask` bitset
800
+ // such that each bit represents and instance which has been entered by
801
+ // that task or an ancestor of that task, in which case this would be a
802
+ // constant time check.
803
+ loop {
804
+ match &self.get_mut(guest_task).unwrap().caller {
805
+ Caller::Host { .. } => break true,
806
+ Caller::Guest { task, instance } => {
807
+ if *instance == guest_instance {
808
+ break false;
809
+ } else {
810
+ guest_task = *task;
811
+ }
812
+ }
813
+ }
814
+ }
815
+ }
816
+
817
+ /// Handle the `CallbackCode` returned from an async-lifted export or its
818
+ /// callback.
819
+ ///
820
+ /// If `initial_call` is `true`, then the code was received from the
821
+ /// async-lifted export; otherwise, it was received from its callback.
822
+ fn handle_callback_code(
823
+ &mut self,
824
+ guest_task: TableId<GuestTask>,
825
+ runtime_instance: RuntimeComponentInstanceIndex,
826
+ code: u32,
827
+ initial_call: bool,
828
+ ) -> Result<()> {
829
+ let (code, set) = unpack_callback_code(code);
830
+
831
+ log::trace!("received callback code from {guest_task:?}: {code} (set: {set})");
832
+
833
+ let task = self.get_mut(guest_task)?;
834
+
835
+ if task.lift_result.is_some() {
836
+ if code == callback_code::EXIT {
837
+ return Err(anyhow!(crate::Trap::NoAsyncResult));
838
+ }
839
+ if initial_call {
840
+ // Notify any current or future waiters that this subtask has
841
+ // started.
842
+ Waitable::Guest(guest_task).set_event(
843
+ self,
844
+ Some(Event::Subtask {
845
+ status: Status::Started,
846
+ }),
847
+ )?;
848
+ }
849
+ }
850
+
851
+ let get_set = |instance: &mut Self, handle| {
852
+ if handle == 0 {
853
+ bail!("invalid waitable-set handle");
854
+ }
855
+
856
+ let (set, WaitableState::Set) =
857
+ instance.waitable_tables[runtime_instance].get_mut_by_index(handle)?
858
+ else {
859
+ bail!("invalid waitable-set handle");
860
+ };
861
+
862
+ Ok(TableId::<WaitableSet>::new(set))
863
+ };
864
+
865
+ match code {
866
+ callback_code::EXIT => {
867
+ let task = self.get_mut(guest_task)?;
868
+ match &task.caller {
869
+ Caller::Host {
870
+ remove_task_automatically,
871
+ ..
872
+ } => {
873
+ if *remove_task_automatically {
874
+ log::trace!("handle_callback_code will delete task {guest_task:?}");
875
+ Waitable::Guest(guest_task).delete_from(self)?;
876
+ }
877
+ }
878
+ Caller::Guest { .. } => {
879
+ task.exited = true;
880
+ task.callback = None;
881
+ }
882
+ }
883
+ }
884
+ callback_code::YIELD => {
885
+ // Push this task onto the "low priority" queue so it runs after
886
+ // any other tasks have had a chance to run.
887
+ let task = self.get_mut(guest_task)?;
888
+ assert!(task.event.is_none());
889
+ task.event = Some(Event::None);
890
+ self.push_low_priority(WorkItem::GuestCall(GuestCall {
891
+ task: guest_task,
892
+ kind: GuestCallKind::DeliverEvent {
893
+ instance: runtime_instance,
894
+ set: None,
895
+ },
896
+ }));
897
+ }
898
+ callback_code::WAIT | callback_code::POLL => {
899
+ let set = get_set(self, set)?;
900
+
901
+ if self.get_mut(guest_task)?.event.is_some() || !self.get_mut(set)?.ready.is_empty()
902
+ {
903
+ // An event is immediately available; deliver it ASAP.
904
+ self.push_high_priority(WorkItem::GuestCall(GuestCall {
905
+ task: guest_task,
906
+ kind: GuestCallKind::DeliverEvent {
907
+ instance: runtime_instance,
908
+ set: Some(set),
909
+ },
910
+ }));
911
+ } else {
912
+ // No event is immediately available.
913
+ match code {
914
+ callback_code::POLL => {
915
+ // We're polling, so just yield and check whether an
916
+ // event has arrived after that.
917
+ self.push_low_priority(WorkItem::Poll(PollParams {
918
+ task: guest_task,
919
+ instance: runtime_instance,
920
+ set,
921
+ }));
922
+ }
923
+ callback_code::WAIT => {
924
+ // We're waiting, so register to be woken up when an
925
+ // event is published for this waitable set.
926
+ //
927
+ // Here we also set `GuestTask::wake_on_cancel`
928
+ // which allows `subtask.cancel` to interrupt the
929
+ // wait.
930
+ let old = self.get_mut(guest_task)?.wake_on_cancel.replace(set);
931
+ assert!(old.is_none());
932
+ let old = self
933
+ .get_mut(set)?
934
+ .waiting
935
+ .insert(guest_task, WaitMode::Callback(runtime_instance));
936
+ assert!(old.is_none());
937
+ }
938
+ _ => unreachable!(),
939
+ }
940
+ }
941
+ }
942
+ _ => bail!("unsupported callback code: {code}"),
943
+ }
944
+
945
+ Ok(())
946
+ }
947
+
948
+ /// Record that we're about to enter a (sub-)component instance which does
949
+ /// not support more than one concurrent, stackful activation, meaning it
950
+ /// cannot be entered again until the next call returns.
951
+ fn enter_instance(&mut self, instance: RuntimeComponentInstanceIndex) {
952
+ self.instance_state(instance).do_not_enter = true;
953
+ }
954
+
955
+ /// Record that we've exited a (sub-)component instance previously entered
956
+ /// with `Self::enter_instance` and then calls `Self::partition_pending`.
957
+ /// See the documentation for the latter for details.
958
+ fn exit_instance(&mut self, instance: RuntimeComponentInstanceIndex) -> Result<()> {
959
+ self.instance_state(instance).do_not_enter = false;
960
+ self.partition_pending(instance)
961
+ }
962
+
963
+ /// Iterate over `InstanceState::pending`, moving any ready items into the
964
+ /// "high priority" work item queue.
965
+ ///
966
+ /// See `GuestCall::is_ready` for details.
967
+ fn partition_pending(&mut self, instance: RuntimeComponentInstanceIndex) -> Result<()> {
968
+ for (task, kind) in mem::take(&mut self.instance_state(instance).pending).into_iter() {
969
+ let call = GuestCall { task, kind };
970
+ if call.is_ready(self)? {
971
+ self.push_high_priority(WorkItem::GuestCall(call));
972
+ } else {
973
+ self.instance_state(instance)
974
+ .pending
975
+ .insert(call.task, call.kind);
976
+ }
977
+ }
978
+
979
+ Ok(())
980
+ }
981
+
982
+ /// Get the next pending event for the specified task and (optional)
983
+ /// waitable set, along with the waitable handle if applicable.
984
+ fn get_event(
985
+ &mut self,
986
+ guest_task: TableId<GuestTask>,
987
+ instance: RuntimeComponentInstanceIndex,
988
+ set: Option<TableId<WaitableSet>>,
989
+ ) -> Result<Option<(Event, Option<(Waitable, u32)>)>> {
990
+ Ok(
991
+ if let Some(event) = self.get_mut(guest_task)?.event.take() {
992
+ log::trace!("deliver event {event:?} to {guest_task:?}");
993
+
994
+ Some((event, None))
995
+ } else if let Some((set, waitable)) = set
996
+ .and_then(|set| {
997
+ self.get_mut(set)
998
+ .map(|v| v.ready.pop_first().map(|v| (set, v)))
999
+ .transpose()
1000
+ })
1001
+ .transpose()?
1002
+ {
1003
+ let event = waitable.common(self)?.event.take().unwrap();
1004
+
1005
+ log::trace!(
1006
+ "deliver event {event:?} to {guest_task:?} for {waitable:?}; set {set:?}"
1007
+ );
1008
+
1009
+ let entry = self.waitable_tables[instance].get_mut_by_rep(waitable.rep());
1010
+ let Some((
1011
+ handle,
1012
+ WaitableState::HostTask
1013
+ | WaitableState::GuestTask
1014
+ | WaitableState::Stream(..)
1015
+ | WaitableState::Future(..),
1016
+ )) = entry
1017
+ else {
1018
+ bail!("handle not found for waitable rep {waitable:?} instance {instance:?}");
1019
+ };
1020
+
1021
+ waitable.on_delivery(self, event);
1022
+
1023
+ Some((event, Some((waitable, handle))))
1024
+ } else {
1025
+ None
1026
+ },
1027
+ )
1028
+ }
1029
+
1030
+ /// Implements the `backpressure.set` intrinsic.
1031
+ pub(crate) fn backpressure_set(
1032
+ &mut self,
1033
+ caller_instance: RuntimeComponentInstanceIndex,
1034
+ enabled: u32,
1035
+ ) -> Result<()> {
1036
+ let state = self.instance_state(caller_instance);
1037
+ let old = state.backpressure;
1038
+ let new = enabled != 0;
1039
+ state.backpressure = new;
1040
+
1041
+ if old && !new {
1042
+ // Backpressure was previously enabled and is now disabled; move any
1043
+ // newly-eligible guest calls to the "high priority" queue.
1044
+ self.partition_pending(caller_instance)?;
1045
+ }
1046
+
1047
+ Ok(())
1048
+ }
1049
+
1050
+ /// Implements the `waitable-set.new` intrinsic.
1051
+ pub(crate) fn waitable_set_new(
1052
+ &mut self,
1053
+ caller_instance: RuntimeComponentInstanceIndex,
1054
+ ) -> Result<u32> {
1055
+ let set = self.push(WaitableSet::default())?;
1056
+ let handle = self.waitable_tables[caller_instance].insert(set.rep(), WaitableState::Set)?;
1057
+ log::trace!("new waitable set {set:?} (handle {handle})");
1058
+ Ok(handle)
1059
+ }
1060
+
1061
+ /// Implements the `waitable-set.drop` intrinsic.
1062
+ pub(crate) fn waitable_set_drop(
1063
+ &mut self,
1064
+ caller_instance: RuntimeComponentInstanceIndex,
1065
+ set: u32,
1066
+ ) -> Result<()> {
1067
+ let (rep, WaitableState::Set) =
1068
+ self.waitable_tables[caller_instance].remove_by_index(set)?
1069
+ else {
1070
+ bail!("invalid waitable-set handle");
1071
+ };
1072
+
1073
+ log::trace!("drop waitable set {rep} (handle {set})");
1074
+
1075
+ let set = self.delete(TableId::<WaitableSet>::new(rep))?;
1076
+
1077
+ if !set.waiting.is_empty() {
1078
+ bail!("cannot drop waitable set with waiters");
1079
+ }
1080
+
1081
+ Ok(())
1082
+ }
1083
+
1084
+ /// Implements the `waitable.join` intrinsic.
1085
+ pub(crate) fn waitable_join(
1086
+ &mut self,
1087
+ caller_instance: RuntimeComponentInstanceIndex,
1088
+ waitable_handle: u32,
1089
+ set_handle: u32,
1090
+ ) -> Result<()> {
1091
+ let waitable = Waitable::from_instance(self, caller_instance, waitable_handle)?;
1092
+
1093
+ let set = if set_handle == 0 {
1094
+ None
1095
+ } else {
1096
+ let (set, WaitableState::Set) =
1097
+ self.waitable_tables[caller_instance].get_mut_by_index(set_handle)?
1098
+ else {
1099
+ bail!("invalid waitable-set handle");
1100
+ };
1101
+
1102
+ Some(TableId::<WaitableSet>::new(set))
1103
+ };
1104
+
1105
+ log::trace!(
1106
+ "waitable {waitable:?} (handle {waitable_handle}) join set {set:?} (handle {set_handle})",
1107
+ );
1108
+
1109
+ waitable.join(self, set)
1110
+ }
1111
+
1112
+ /// Implements the `subtask.drop` intrinsic.
1113
+ pub(crate) fn subtask_drop(
1114
+ &mut self,
1115
+ caller_instance: RuntimeComponentInstanceIndex,
1116
+ task_id: u32,
1117
+ ) -> Result<()> {
1118
+ self.waitable_join(caller_instance, task_id, 0)?;
1119
+
1120
+ let (rep, state) = self.waitable_tables[caller_instance].remove_by_index(task_id)?;
1121
+
1122
+ let (waitable, expected_caller_instance, delete) = match state {
1123
+ WaitableState::HostTask => {
1124
+ let id = TableId::<HostTask>::new(rep);
1125
+ let task = self.get(id)?;
1126
+ if task.abort_handle.is_some() {
1127
+ bail!("cannot drop a subtask which has not yet resolved");
1128
+ }
1129
+ (Waitable::Host(id), task.caller_instance, true)
1130
+ }
1131
+ WaitableState::GuestTask => {
1132
+ let id = TableId::<GuestTask>::new(rep);
1133
+ let task = self.get(id)?;
1134
+ if task.lift_result.is_some() {
1135
+ bail!("cannot drop a subtask which has not yet resolved");
1136
+ }
1137
+ if let Caller::Guest { instance, .. } = &task.caller {
1138
+ (Waitable::Guest(id), *instance, task.exited)
1139
+ } else {
1140
+ unreachable!()
1141
+ }
1142
+ }
1143
+ _ => bail!("invalid task handle: {task_id}"),
1144
+ };
1145
+
1146
+ if waitable.take_event(self)?.is_some() {
1147
+ bail!("cannot drop a subtask with an undelivered event");
1148
+ }
1149
+
1150
+ if delete {
1151
+ waitable.delete_from(self)?;
1152
+ }
1153
+
1154
+ // Since waitables can neither be passed between instances nor forged,
1155
+ // this should never fail unless there's a bug in Wasmtime, but we check
1156
+ // here to be sure:
1157
+ assert_eq!(expected_caller_instance, caller_instance);
1158
+ log::trace!("subtask_drop {waitable:?} (handle {task_id})");
1159
+ Ok(())
1160
+ }
1161
+
1162
+ /// Implements the `context.get` intrinsic.
1163
+ pub(crate) fn context_get(&mut self, slot: u32) -> Result<u32> {
1164
+ let task = self.guest_task.unwrap();
1165
+ let val = self.get(task)?.context[usize::try_from(slot).unwrap()];
1166
+ log::trace!("context_get {task:?} slot {slot} val {val:#x}");
1167
+ Ok(val)
1168
+ }
1169
+
1170
+ /// Implements the `context.set` intrinsic.
1171
+ pub(crate) fn context_set(&mut self, slot: u32, val: u32) -> Result<()> {
1172
+ let task = self.guest_task.unwrap();
1173
+ log::trace!("context_set {task:?} slot {slot} val {val:#x}");
1174
+ self.get_mut(task)?.context[usize::try_from(slot).unwrap()] = val;
1175
+ Ok(())
1176
+ }
1177
+
1178
+ fn options(&self, options: OptionsIndex) -> &CanonicalOptions {
1179
+ &self.component.env_component().options[options]
1180
+ }
1181
+ }
1182
+
1183
+ impl Instance {
1184
+ /// Enable or disable concurrent state debugging mode for e.g. integration
1185
+ /// tests.
1186
+ ///
1187
+ /// This will avoid re-using deleted handles, making it easier to catch
1188
+ /// e.g. "use-after-delete" and "double-delete" errors. It can also make
1189
+ /// reading trace output easier since it ensures handles are never
1190
+ /// repurposed.
1191
+ #[doc(hidden)]
1192
+ pub fn enable_concurrent_state_debug(&self, mut store: impl AsContextMut, enable: bool) {
1193
+ self.id()
1194
+ .get_mut(store.as_context_mut().0)
1195
+ .concurrent_state_mut()
1196
+ .table
1197
+ .enable_debug(enable);
1198
+ // TODO: do the same for the tables holding guest-facing handles
1199
+ }
1200
+
1201
+ /// Assert that all the relevant tables and queues in the concurrent state
1202
+ /// for this instance are empty.
1203
+ ///
1204
+ /// This is for sanity checking in integration tests
1205
+ /// (e.g. `component-async-tests`) that the relevant state has been cleared
1206
+ /// after each test concludes. This should help us catch leaks, e.g. guest
1207
+ /// tasks which haven't been deleted despite having completed and having
1208
+ /// been dropped by their supertasks.
1209
+ #[doc(hidden)]
1210
+ pub fn assert_concurrent_state_empty(&self, mut store: impl AsContextMut) {
1211
+ let state = self
1212
+ .id()
1213
+ .get_mut(store.as_context_mut().0)
1214
+ .concurrent_state_mut();
1215
+ assert!(state.table.is_empty(), "non-empty table: {:?}", state.table);
1216
+ assert!(state.high_priority.is_empty());
1217
+ assert!(state.low_priority.is_empty());
1218
+ assert!(state.guest_task.is_none());
1219
+ assert!(
1220
+ state
1221
+ .futures
1222
+ .get_mut()
1223
+ .unwrap()
1224
+ .as_ref()
1225
+ .unwrap()
1226
+ .is_empty()
1227
+ );
1228
+ assert!(
1229
+ state
1230
+ .waitable_tables
1231
+ .iter()
1232
+ .all(|(_, table)| table.is_empty())
1233
+ );
1234
+ assert!(
1235
+ state
1236
+ .instance_states
1237
+ .iter()
1238
+ .all(|(_, state)| state.pending.is_empty())
1239
+ );
1240
+ assert!(
1241
+ state
1242
+ .error_context_tables
1243
+ .iter()
1244
+ .all(|(_, table)| table.is_empty())
1245
+ );
1246
+ assert!(state.global_error_context_ref_counts.is_empty());
1247
+ }
1248
+
1249
+ /// Run the specified closure `fun` to completion as part of this instance's
1250
+ /// event loop.
1251
+ ///
1252
+ /// Like [`Self::run`], this will run `fun` as part of this instance's event
1253
+ /// loop until it yields a result _or_ there are no more tasks to run.
1254
+ /// Unlike [`Self::run`], `fun` is provided an [`Accessor`], which provides
1255
+ /// controlled access to the `Store` and its data.
1256
+ ///
1257
+ /// This function can be used to invoke [`Func::call_concurrent`] for
1258
+ /// example within the async closure provided here.
1259
+ ///
1260
+ /// # Example
1261
+ ///
1262
+ /// ```
1263
+ /// # use {
1264
+ /// # anyhow::{Result},
1265
+ /// # wasmtime::{
1266
+ /// # component::{ Component, Linker, Resource, ResourceTable},
1267
+ /// # Config, Engine, Store
1268
+ /// # },
1269
+ /// # };
1270
+ /// #
1271
+ /// # struct MyResource(u32);
1272
+ /// # struct Ctx { table: ResourceTable }
1273
+ /// #
1274
+ /// # async fn foo() -> Result<()> {
1275
+ /// # let mut config = Config::new();
1276
+ /// # let engine = Engine::new(&config)?;
1277
+ /// # let mut store = Store::new(&engine, Ctx { table: ResourceTable::new() });
1278
+ /// # let mut linker = Linker::new(&engine);
1279
+ /// # let component = Component::new(&engine, "")?;
1280
+ /// # let instance = linker.instantiate_async(&mut store, &component).await?;
1281
+ /// # let foo = instance.get_typed_func::<(Resource<MyResource>,), (Resource<MyResource>,)>(&mut store, "foo")?;
1282
+ /// # let bar = instance.get_typed_func::<(u32,), ()>(&mut store, "bar")?;
1283
+ /// instance.run_concurrent(&mut store, async |accessor| -> wasmtime::Result<_> {
1284
+ /// let resource = accessor.with(|mut access| access.get().table.push(MyResource(42)))?;
1285
+ /// let (another_resource,) = foo.call_concurrent(accessor, (resource,)).await?;
1286
+ /// let value = accessor.with(|mut access| access.get().table.delete(another_resource))?;
1287
+ /// bar.call_concurrent(accessor, (value.0,)).await?;
1288
+ /// Ok(())
1289
+ /// }).await??;
1290
+ /// # Ok(())
1291
+ /// # }
1292
+ /// ```
1293
+ pub async fn run_concurrent<T, R>(
1294
+ self,
1295
+ mut store: impl AsContextMut<Data = T>,
1296
+ fun: impl AsyncFnOnce(&Accessor<T>) -> R,
1297
+ ) -> Result<R>
1298
+ where
1299
+ T: 'static,
1300
+ {
1301
+ check_recursive_run();
1302
+ let mut store = store.as_context_mut();
1303
+ let token = StoreToken::new(store.as_context_mut());
1304
+
1305
+ struct Dropper<'a, T: 'static, V> {
1306
+ store: StoreContextMut<'a, T>,
1307
+ value: ManuallyDrop<V>,
1308
+ }
1309
+
1310
+ impl<'a, T, V> Drop for Dropper<'a, T, V> {
1311
+ fn drop(&mut self) {
1312
+ tls::set(self.store.0.traitobj_mut(), || {
1313
+ // SAFETY: Here we drop the value without moving it for the
1314
+ // first and only time -- per the contract for `Drop::drop`,
1315
+ // this code won't run again, and the `value` field will no
1316
+ // longer be accessible.
1317
+ unsafe { ManuallyDrop::drop(&mut self.value) }
1318
+ });
1319
+ }
1320
+ }
1321
+
1322
+ let accessor = &Accessor::new(token, Some(self));
1323
+ let dropper = &mut Dropper {
1324
+ store,
1325
+ value: ManuallyDrop::new(fun(accessor)),
1326
+ };
1327
+ // SAFETY: We never move `dropper` nor its `value` field.
1328
+ let future = unsafe { Pin::new_unchecked(dropper.value.deref_mut()) };
1329
+
1330
+ self.poll_until(dropper.store.as_context_mut(), future)
1331
+ .await
1332
+ }
1333
+
1334
+ /// Spawn a background task to run as part of this instance's event loop.
1335
+ ///
1336
+ /// The task will receive an `&Accessor<U>` and run concurrently with
1337
+ /// any other tasks in progress for the instance.
1338
+ ///
1339
+ /// Note that the task will only make progress if and when the event loop
1340
+ /// for this instance is run.
1341
+ ///
1342
+ /// The returned [`SpawnHandle`] may be used to cancel the task.
1343
+ pub fn spawn<U: 'static>(
1344
+ self,
1345
+ mut store: impl AsContextMut<Data = U>,
1346
+ task: impl AccessorTask<U, HasSelf<U>, Result<()>>,
1347
+ ) -> AbortHandle {
1348
+ let mut store = store.as_context_mut();
1349
+ let accessor = Accessor::new(StoreToken::new(store.as_context_mut()), Some(self));
1350
+ self.spawn_with_accessor(store, accessor, task)
1351
+ }
1352
+
1353
+ /// Internal implementation of `spawn` functions where a `store` is
1354
+ /// available along with an `Accessor`.
1355
+ fn spawn_with_accessor<T, D>(
1356
+ self,
1357
+ mut store: StoreContextMut<T>,
1358
+ accessor: Accessor<T, D>,
1359
+ task: impl AccessorTask<T, D, Result<()>>,
1360
+ ) -> AbortHandle
1361
+ where
1362
+ T: 'static,
1363
+ D: HasData + ?Sized,
1364
+ {
1365
+ let store = store.as_context_mut();
1366
+
1367
+ // Create an "abortable future" here where internally the future will
1368
+ // hook calls to poll and possibly spawn more background tasks on each
1369
+ // iteration.
1370
+ let (handle, future) =
1371
+ AbortHandle::run(async move { HostTaskOutput::Result(task.run(&accessor).await) });
1372
+ self.concurrent_state_mut(store.0)
1373
+ .push_future(Box::pin(async move {
1374
+ future.await.unwrap_or(HostTaskOutput::Result(Ok(())))
1375
+ }));
1376
+
1377
+ handle
1378
+ }
1379
+
1380
+ /// Run this instance's event loop.
1381
+ ///
1382
+ /// The returned future will resolve when either the specified future
1383
+ /// completes (in which case we return its result) or no further progress
1384
+ /// can be made (in which case we trap with `Trap::AsyncDeadlock`).
1385
+ async fn poll_until<T, R>(
1386
+ self,
1387
+ store: StoreContextMut<'_, T>,
1388
+ mut future: Pin<&mut impl Future<Output = R>>,
1389
+ ) -> Result<R> {
1390
+ loop {
1391
+ // Take `ConcurrentState::futures` out of the instance so we can
1392
+ // poll it while also safely giving any of the futures inside access
1393
+ // to `self`.
1394
+ let mut futures = self
1395
+ .concurrent_state_mut(store.0)
1396
+ .futures
1397
+ .get_mut()
1398
+ .unwrap()
1399
+ .take()
1400
+ .unwrap();
1401
+ let mut next = pin!(futures.next());
1402
+
1403
+ let result = future::poll_fn(|cx| {
1404
+ // First, poll the future we were passed as an argument and
1405
+ // return immediately if it's ready.
1406
+ if let Poll::Ready(value) = self.set_tls(store.0, || future.as_mut().poll(cx)) {
1407
+ return Poll::Ready(Ok(Either::Left(value)));
1408
+ }
1409
+
1410
+ // Next, poll `ConcurrentState::futures` (which includes any
1411
+ // pending host tasks and/or background tasks), returning
1412
+ // immediately if one of them fails.
1413
+ let next = match self.set_tls(store.0, || next.as_mut().poll(cx)) {
1414
+ Poll::Ready(Some(output)) => {
1415
+ match output {
1416
+ HostTaskOutput::Result(Err(e)) => return Poll::Ready(Err(e)),
1417
+ HostTaskOutput::Result(Ok(())) => {}
1418
+ HostTaskOutput::Function(fun) => {
1419
+ // Defer calling this function to a worker fiber
1420
+ // in case it involves calling a guest realloc
1421
+ // function as part of a lowering operation.
1422
+ //
1423
+ // TODO: This isn't necessary for _all_
1424
+ // `HostOutput::Function`s, so we could optimize
1425
+ // by adding another variant to `HostOutput` to
1426
+ // distinguish which ones need it and which
1427
+ // don't.
1428
+ self.concurrent_state_mut(store.0)
1429
+ .push_high_priority(WorkItem::WorkerFunction(Mutex::new(fun)))
1430
+ }
1431
+ }
1432
+ Poll::Ready(true)
1433
+ }
1434
+ Poll::Ready(None) => Poll::Ready(false),
1435
+ Poll::Pending => Poll::Pending,
1436
+ };
1437
+
1438
+ let mut instance = self.id().get_mut(store.0);
1439
+
1440
+ // Next, check the "high priority" work queue and return
1441
+ // immediately if it has at least one item.
1442
+ let state = instance.as_mut().concurrent_state_mut();
1443
+ let ready = mem::take(&mut state.high_priority);
1444
+ let ready = if ready.is_empty() {
1445
+ // Next, check the "low priority" work queue and return
1446
+ // immediately if it has at least one item.
1447
+ let ready = mem::take(&mut state.low_priority);
1448
+ if ready.is_empty() {
1449
+ return match next {
1450
+ Poll::Ready(true) => {
1451
+ // In this case, one of the futures in
1452
+ // `ConcurrentState::futures` completed
1453
+ // successfully, so we return now and continue
1454
+ // the outer loop in case there is another one
1455
+ // ready to complete.
1456
+ Poll::Ready(Ok(Either::Right(Vec::new())))
1457
+ }
1458
+ Poll::Ready(false) => {
1459
+ // Poll the future we were passed one last time
1460
+ // in case one of `ConcurrentState::futures` had
1461
+ // the side effect of unblocking it.
1462
+ if let Poll::Ready(value) =
1463
+ self.set_tls(store.0, || future.as_mut().poll(cx))
1464
+ {
1465
+ Poll::Ready(Ok(Either::Left(value)))
1466
+ } else {
1467
+ // In this case, there are no more pending
1468
+ // futures in `ConcurrentState::futures`,
1469
+ // there are no remaining work items, _and_
1470
+ // the future we were passed as an argument
1471
+ // still hasn't completed, meaning we're
1472
+ // stuck, so we return an error. The
1473
+ // underlying assumption is that `future`
1474
+ // depends on this component instance making
1475
+ // such progress, and thus there's no point
1476
+ // in continuing to poll it given we've run
1477
+ // out of work to do.
1478
+ //
1479
+ // Note that we'd also reach this point if
1480
+ // the host embedder passed e.g. a
1481
+ // `std::future::Pending` to
1482
+ // `Instance::run_concurrent`, in which case
1483
+ // we'd return a "deadlock" error even when
1484
+ // any and all tasks have completed
1485
+ // normally. However, that's not how
1486
+ // `Instance::run_concurrent` is intended
1487
+ // (and documented) to be used, so it seems
1488
+ // reasonable to lump that case in with
1489
+ // "real" deadlocks.
1490
+ //
1491
+ // TODO: Once we've added host APIs for
1492
+ // cancelling in-progress tasks, we can
1493
+ // return some other, non-error value here,
1494
+ // treating it as "normal" and giving the
1495
+ // host embedder a chance to intervene by
1496
+ // cancelling one or more tasks and/or
1497
+ // starting new tasks capable of waking the
1498
+ // existing ones.
1499
+ Poll::Ready(Err(anyhow!(crate::Trap::AsyncDeadlock)))
1500
+ }
1501
+ }
1502
+ // There is at least one pending future in
1503
+ // `ConcurrentState::futures` and we have nothing
1504
+ // else to do but wait for now, so we return
1505
+ // `Pending`.
1506
+ Poll::Pending => Poll::Pending,
1507
+ };
1508
+ } else {
1509
+ ready
1510
+ }
1511
+ } else {
1512
+ ready
1513
+ };
1514
+
1515
+ Poll::Ready(Ok(Either::Right(ready)))
1516
+ })
1517
+ .await;
1518
+
1519
+ // Put the `ConcurrentState::futures` back into the instance before
1520
+ // we return or handle any work items since one or more of those
1521
+ // items might append more futures.
1522
+ *self
1523
+ .concurrent_state_mut(store.0)
1524
+ .futures
1525
+ .get_mut()
1526
+ .unwrap() = Some(futures);
1527
+
1528
+ match result? {
1529
+ // The future we were passed as an argument completed, so we
1530
+ // return the result.
1531
+ Either::Left(value) => break Ok(value),
1532
+ // The future we were passed has not yet completed, so handle
1533
+ // any work items and then loop again.
1534
+ Either::Right(ready) => {
1535
+ for item in ready {
1536
+ self.handle_work_item(store.0.traitobj_mut(), item).await?;
1537
+ }
1538
+ }
1539
+ }
1540
+ }
1541
+ }
1542
+
1543
+ /// Handle the specified work item, possibly resuming a fiber if applicable.
1544
+ async fn handle_work_item(self, store: &mut StoreOpaque, item: WorkItem) -> Result<()> {
1545
+ log::trace!("handle work item {item:?}");
1546
+ match item {
1547
+ WorkItem::PushFuture(future) => {
1548
+ self.concurrent_state_mut(store)
1549
+ .futures
1550
+ .get_mut()
1551
+ .unwrap()
1552
+ .as_mut()
1553
+ .unwrap()
1554
+ .push(future.into_inner().unwrap());
1555
+ }
1556
+ WorkItem::ResumeFiber(fiber) => {
1557
+ self.resume_fiber(store, fiber).await?;
1558
+ }
1559
+ WorkItem::GuestCall(call) => {
1560
+ let state = self.concurrent_state_mut(store);
1561
+ if call.is_ready(state)? {
1562
+ self.run_on_worker(store, WorkerItem::GuestCall(call))
1563
+ .await?;
1564
+ } else {
1565
+ let task = state.get_mut(call.task)?;
1566
+ if !task.starting_sent {
1567
+ task.starting_sent = true;
1568
+ if let GuestCallKind::Start(_) = &call.kind {
1569
+ Waitable::Guest(call.task).set_event(
1570
+ state,
1571
+ Some(Event::Subtask {
1572
+ status: Status::Starting,
1573
+ }),
1574
+ )?;
1575
+ }
1576
+ }
1577
+
1578
+ let runtime_instance = state.get(call.task)?.instance;
1579
+ state
1580
+ .instance_state(runtime_instance)
1581
+ .pending
1582
+ .insert(call.task, call.kind);
1583
+ }
1584
+ }
1585
+ WorkItem::Poll(params) => {
1586
+ let state = self.concurrent_state_mut(store);
1587
+ if state.get_mut(params.task)?.event.is_some()
1588
+ || !state.get_mut(params.set)?.ready.is_empty()
1589
+ {
1590
+ // There's at least one event immediately available; deliver
1591
+ // it to the guest ASAP.
1592
+ state.push_high_priority(WorkItem::GuestCall(GuestCall {
1593
+ task: params.task,
1594
+ kind: GuestCallKind::DeliverEvent {
1595
+ instance: params.instance,
1596
+ set: Some(params.set),
1597
+ },
1598
+ }));
1599
+ } else {
1600
+ // There are no events immediately available; deliver
1601
+ // `Event::None` to the guest.
1602
+ state.get_mut(params.task)?.event = Some(Event::None);
1603
+ state.push_high_priority(WorkItem::GuestCall(GuestCall {
1604
+ task: params.task,
1605
+ kind: GuestCallKind::DeliverEvent {
1606
+ instance: params.instance,
1607
+ set: Some(params.set),
1608
+ },
1609
+ }));
1610
+ }
1611
+ }
1612
+ WorkItem::WorkerFunction(fun) => {
1613
+ self.run_on_worker(store, WorkerItem::Function(fun)).await?;
1614
+ }
1615
+ }
1616
+
1617
+ Ok(())
1618
+ }
1619
+
1620
+ /// Resume the specified fiber, giving it exclusive access to the specified
1621
+ /// store.
1622
+ async fn resume_fiber(self, store: &mut StoreOpaque, fiber: StoreFiber<'static>) -> Result<()> {
1623
+ let old_task = self.concurrent_state_mut(store).guest_task;
1624
+ log::trace!("resume_fiber: save current task {old_task:?}");
1625
+
1626
+ let fiber = fiber::resolve_or_release(store, fiber).await?;
1627
+
1628
+ let state = self.concurrent_state_mut(store);
1629
+
1630
+ state.guest_task = old_task;
1631
+ log::trace!("resume_fiber: restore current task {old_task:?}");
1632
+
1633
+ if let Some(mut fiber) = fiber {
1634
+ // See the `SuspendReason` documentation for what each case means.
1635
+ match state.suspend_reason.take().unwrap() {
1636
+ SuspendReason::NeedWork => {
1637
+ if state.worker.is_none() {
1638
+ state.worker = Some(fiber);
1639
+ } else {
1640
+ fiber.dispose(store);
1641
+ }
1642
+ }
1643
+ SuspendReason::Yielding { .. } => {
1644
+ state.push_low_priority(WorkItem::ResumeFiber(fiber));
1645
+ }
1646
+ SuspendReason::Waiting { set, task } => {
1647
+ let old = state
1648
+ .get_mut(set)?
1649
+ .waiting
1650
+ .insert(task, WaitMode::Fiber(fiber));
1651
+ assert!(old.is_none());
1652
+ }
1653
+ }
1654
+ }
1655
+
1656
+ Ok(())
1657
+ }
1658
+
1659
+ /// Execute the specified guest call on a worker fiber.
1660
+ async fn run_on_worker(self, store: &mut StoreOpaque, item: WorkerItem) -> Result<()> {
1661
+ let worker = if let Some(fiber) = self.concurrent_state_mut(store).worker.take() {
1662
+ fiber
1663
+ } else {
1664
+ fiber::make_fiber(store.traitobj_mut(), move |store| {
1665
+ loop {
1666
+ match self.concurrent_state_mut(store).worker_item.take().unwrap() {
1667
+ WorkerItem::GuestCall(call) => self.handle_guest_call(store, call)?,
1668
+ WorkerItem::Function(fun) => fun.into_inner().unwrap()(store, self)?,
1669
+ }
1670
+
1671
+ self.suspend(store, SuspendReason::NeedWork)?;
1672
+ }
1673
+ })?
1674
+ };
1675
+
1676
+ let worker_item = &mut self.concurrent_state_mut(store).worker_item;
1677
+ assert!(worker_item.is_none());
1678
+ *worker_item = Some(item);
1679
+
1680
+ self.resume_fiber(store, worker).await
1681
+ }
1682
+
1683
+ /// Execute the specified guest call.
1684
+ fn handle_guest_call(self, store: &mut dyn VMStore, call: GuestCall) -> Result<()> {
1685
+ match call.kind {
1686
+ GuestCallKind::DeliverEvent {
1687
+ instance: runtime_instance,
1688
+ set,
1689
+ } => {
1690
+ let state = self.concurrent_state_mut(store);
1691
+ let (event, waitable) = state.get_event(call.task, runtime_instance, set)?.unwrap();
1692
+ let task = state.get_mut(call.task)?;
1693
+ let runtime_instance = task.instance;
1694
+ let handle = waitable.map(|(_, v)| v).unwrap_or(0);
1695
+
1696
+ log::trace!(
1697
+ "use callback to deliver event {event:?} to {:?} for {waitable:?}",
1698
+ call.task,
1699
+ );
1700
+
1701
+ let old_task = state.guest_task.replace(call.task);
1702
+ log::trace!(
1703
+ "GuestCallKind::DeliverEvent: replaced {old_task:?} with {:?} as current task",
1704
+ call.task
1705
+ );
1706
+
1707
+ self.maybe_push_call_context(store.store_opaque_mut(), call.task)?;
1708
+
1709
+ let state = self.concurrent_state_mut(store);
1710
+ state.enter_instance(runtime_instance);
1711
+
1712
+ let callback = state.get_mut(call.task)?.callback.take().unwrap();
1713
+
1714
+ let code = callback(store, self, runtime_instance, event, handle)?;
1715
+
1716
+ let state = self.concurrent_state_mut(store);
1717
+
1718
+ state.get_mut(call.task)?.callback = Some(callback);
1719
+
1720
+ state.exit_instance(runtime_instance)?;
1721
+
1722
+ self.maybe_pop_call_context(store.store_opaque_mut(), call.task)?;
1723
+
1724
+ let state = self.concurrent_state_mut(store);
1725
+ state.handle_callback_code(call.task, runtime_instance, code, false)?;
1726
+
1727
+ state.guest_task = old_task;
1728
+ log::trace!("GuestCallKind::DeliverEvent: restored {old_task:?} as current task");
1729
+ }
1730
+ GuestCallKind::Start(fun) => {
1731
+ fun(store, self)?;
1732
+ }
1733
+ }
1734
+
1735
+ Ok(())
1736
+ }
1737
+
1738
+ /// Suspend the current fiber, storing the reason in
1739
+ /// `ConcurrentState::suspend_reason` to indicate the conditions under which
1740
+ /// it should be resumed.
1741
+ ///
1742
+ /// See the `SuspendReason` documentation for details.
1743
+ fn suspend(self, store: &mut dyn VMStore, reason: SuspendReason) -> Result<()> {
1744
+ log::trace!("suspend fiber: {reason:?}");
1745
+
1746
+ // If we're yielding or waiting on behalf of a guest task, we'll need to
1747
+ // pop the call context which manages resource borrows before suspending
1748
+ // and then push it again once we've resumed.
1749
+ let task = match &reason {
1750
+ SuspendReason::Yielding { task } | SuspendReason::Waiting { task, .. } => Some(*task),
1751
+ SuspendReason::NeedWork => None,
1752
+ };
1753
+
1754
+ let old_guest_task = if let Some(task) = task {
1755
+ self.maybe_pop_call_context(store.store_opaque_mut(), task)?;
1756
+ self.concurrent_state_mut(store).guest_task
1757
+ } else {
1758
+ None
1759
+ };
1760
+
1761
+ let suspend_reason = &mut self.concurrent_state_mut(store).suspend_reason;
1762
+ assert!(suspend_reason.is_none());
1763
+ *suspend_reason = Some(reason);
1764
+
1765
+ store.with_blocking(|_, cx| cx.suspend(StoreFiberYield::ReleaseStore))?;
1766
+
1767
+ if let Some(task) = task {
1768
+ self.concurrent_state_mut(store).guest_task = old_guest_task;
1769
+ self.maybe_push_call_context(store.store_opaque_mut(), task)?;
1770
+ }
1771
+
1772
+ Ok(())
1773
+ }
1774
+
1775
+ /// Push the call context for managing resource borrows for the specified
1776
+ /// guest task if it has not yet either returned a result or cancelled
1777
+ /// itself.
1778
+ fn maybe_push_call_context(
1779
+ self,
1780
+ store: &mut StoreOpaque,
1781
+ guest_task: TableId<GuestTask>,
1782
+ ) -> Result<()> {
1783
+ let task = self.concurrent_state_mut(store).get_mut(guest_task)?;
1784
+ if task.lift_result.is_some() {
1785
+ log::trace!("push call context for {guest_task:?}");
1786
+ let call_context = task.call_context.take().unwrap();
1787
+ store.component_resource_state().0.push(call_context);
1788
+ }
1789
+ Ok(())
1790
+ }
1791
+
1792
+ /// Pop the call context for managing resource borrows for the specified
1793
+ /// guest task if it has not yet either returned a result or cancelled
1794
+ /// itself.
1795
+ fn maybe_pop_call_context(
1796
+ self,
1797
+ store: &mut StoreOpaque,
1798
+ guest_task: TableId<GuestTask>,
1799
+ ) -> Result<()> {
1800
+ if self
1801
+ .concurrent_state_mut(store)
1802
+ .get(guest_task)?
1803
+ .lift_result
1804
+ .is_some()
1805
+ {
1806
+ log::trace!("pop call context for {guest_task:?}");
1807
+ let call_context = Some(store.component_resource_state().0.pop().unwrap());
1808
+ self.concurrent_state_mut(store)
1809
+ .get_mut(guest_task)?
1810
+ .call_context = call_context;
1811
+ }
1812
+ Ok(())
1813
+ }
1814
+
1815
+ /// Add the specified guest call to the "high priority" work item queue, to
1816
+ /// be started as soon as backpressure and/or reentrance rules allow.
1817
+ ///
1818
+ /// SAFETY: The raw pointer arguments must be valid references to guest
1819
+ /// functions (with the appropriate signatures) when the closures queued by
1820
+ /// this function are called.
1821
+ unsafe fn queue_call<T: 'static>(
1822
+ self,
1823
+ mut store: StoreContextMut<T>,
1824
+ guest_task: TableId<GuestTask>,
1825
+ callee: SendSyncPtr<VMFuncRef>,
1826
+ param_count: usize,
1827
+ result_count: usize,
1828
+ flags: Option<InstanceFlags>,
1829
+ async_: bool,
1830
+ callback: Option<SendSyncPtr<VMFuncRef>>,
1831
+ post_return: Option<SendSyncPtr<VMFuncRef>>,
1832
+ ) -> Result<()> {
1833
+ /// Return a closure which will call the specified function in the scope
1834
+ /// of the specified task.
1835
+ ///
1836
+ /// This will use `GuestTask::lower_params` to lower the parameters, but
1837
+ /// will not lift the result; instead, it returns a
1838
+ /// `[MaybeUninit<ValRaw>; MAX_FLAT_PARAMS]` from which the result, if
1839
+ /// any, may be lifted. Note that an async-lifted export will have
1840
+ /// returned its result using the `task.return` intrinsic (or not
1841
+ /// returned a result at all, in the case of `task.cancel`), in which
1842
+ /// case the "result" of this call will either be a callback code or
1843
+ /// nothing.
1844
+ ///
1845
+ /// SAFETY: `callee` must be a valid `*mut VMFuncRef` at the time when
1846
+ /// the returned closure is called.
1847
+ unsafe fn make_call<T: 'static>(
1848
+ store: StoreContextMut<T>,
1849
+ guest_task: TableId<GuestTask>,
1850
+ callee: SendSyncPtr<VMFuncRef>,
1851
+ param_count: usize,
1852
+ result_count: usize,
1853
+ flags: Option<InstanceFlags>,
1854
+ ) -> impl FnOnce(
1855
+ &mut dyn VMStore,
1856
+ Instance,
1857
+ ) -> Result<[MaybeUninit<ValRaw>; MAX_FLAT_PARAMS]>
1858
+ + Send
1859
+ + Sync
1860
+ + 'static
1861
+ + use<T> {
1862
+ let token = StoreToken::new(store);
1863
+ move |store: &mut dyn VMStore, instance: Instance| {
1864
+ let mut storage = [MaybeUninit::uninit(); MAX_FLAT_PARAMS];
1865
+ let task = instance.concurrent_state_mut(store).get_mut(guest_task)?;
1866
+ let may_enter_after_call = task.call_post_return_automatically();
1867
+ let lower = task.lower_params.take().unwrap();
1868
+
1869
+ lower(store, instance, &mut storage[..param_count])?;
1870
+
1871
+ let mut store = token.as_context_mut(store);
1872
+
1873
+ // SAFETY: Per the contract documented in `make_call's`
1874
+ // documentation, `callee` must be a valid pointer.
1875
+ unsafe {
1876
+ if let Some(mut flags) = flags {
1877
+ flags.set_may_enter(false);
1878
+ }
1879
+ crate::Func::call_unchecked_raw(
1880
+ &mut store,
1881
+ callee.as_non_null(),
1882
+ NonNull::new(
1883
+ &mut storage[..param_count.max(result_count)]
1884
+ as *mut [MaybeUninit<ValRaw>] as _,
1885
+ )
1886
+ .unwrap(),
1887
+ )?;
1888
+ if let Some(mut flags) = flags {
1889
+ flags.set_may_enter(may_enter_after_call);
1890
+ }
1891
+ }
1892
+
1893
+ Ok(storage)
1894
+ }
1895
+ }
1896
+
1897
+ // SAFETY: Per the contract described in this function documentation,
1898
+ // the `callee` pointer which `call` closes over must be valid when
1899
+ // called by the closure we queue below.
1900
+ let call = unsafe {
1901
+ make_call(
1902
+ store.as_context_mut(),
1903
+ guest_task,
1904
+ callee,
1905
+ param_count,
1906
+ result_count,
1907
+ flags,
1908
+ )
1909
+ };
1910
+
1911
+ let callee_instance = self.concurrent_state_mut(store.0).get(guest_task)?.instance;
1912
+ let fun = if callback.is_some() {
1913
+ assert!(async_);
1914
+
1915
+ Box::new(move |store: &mut dyn VMStore, instance: Instance| {
1916
+ let old_task = instance
1917
+ .concurrent_state_mut(store)
1918
+ .guest_task
1919
+ .replace(guest_task);
1920
+ log::trace!(
1921
+ "stackless call: replaced {old_task:?} with {guest_task:?} as current task"
1922
+ );
1923
+
1924
+ instance.maybe_push_call_context(store.store_opaque_mut(), guest_task)?;
1925
+
1926
+ instance
1927
+ .concurrent_state_mut(store)
1928
+ .enter_instance(callee_instance);
1929
+
1930
+ // SAFETY: See the documentation for `make_call` to review the
1931
+ // contract we must uphold for `call` here.
1932
+ //
1933
+ // Per the contract described in the `queue_call`
1934
+ // documentation, the `callee` pointer which `call` closes
1935
+ // over must be valid.
1936
+ let storage = call(store, instance)?;
1937
+
1938
+ instance
1939
+ .concurrent_state_mut(store)
1940
+ .exit_instance(callee_instance)?;
1941
+
1942
+ instance.maybe_pop_call_context(store.store_opaque_mut(), guest_task)?;
1943
+
1944
+ let state = instance.concurrent_state_mut(store);
1945
+ state.guest_task = old_task;
1946
+ log::trace!("stackless call: restored {old_task:?} as current task");
1947
+
1948
+ // SAFETY: `wasmparser` will have validated that the callback
1949
+ // function returns a `i32` result.
1950
+ let code = unsafe { storage[0].assume_init() }.get_i32() as u32;
1951
+
1952
+ state.handle_callback_code(guest_task, callee_instance, code, true)?;
1953
+
1954
+ Ok(())
1955
+ })
1956
+ as Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send + Sync>
1957
+ } else {
1958
+ let token = StoreToken::new(store.as_context_mut());
1959
+ Box::new(move |store: &mut dyn VMStore, instance: Instance| {
1960
+ let old_task = instance
1961
+ .concurrent_state_mut(store)
1962
+ .guest_task
1963
+ .replace(guest_task);
1964
+ log::trace!(
1965
+ "stackful call: replaced {old_task:?} with {guest_task:?} as current task",
1966
+ );
1967
+
1968
+ let mut flags = instance.id().get(store).instance_flags(callee_instance);
1969
+
1970
+ instance.maybe_push_call_context(store.store_opaque_mut(), guest_task)?;
1971
+
1972
+ // Unless this is a callback-less (i.e. stackful)
1973
+ // async-lifted export, we need to record that the instance
1974
+ // cannot be entered until the call returns.
1975
+ if !async_ {
1976
+ instance
1977
+ .concurrent_state_mut(store)
1978
+ .enter_instance(callee_instance);
1979
+ }
1980
+
1981
+ // SAFETY: See the documentation for `make_call` to review the
1982
+ // contract we must uphold for `call` here.
1983
+ //
1984
+ // Per the contract described in the `queue_call`
1985
+ // documentation, the `callee` pointer which `call` closes
1986
+ // over must be valid.
1987
+ let storage = call(store, instance)?;
1988
+
1989
+ if async_ {
1990
+ // This is a callback-less (i.e. stackful) async-lifted
1991
+ // export, so there is no post-return function, and
1992
+ // either `task.return` or `task.cancel` should have
1993
+ // been called.
1994
+ if instance
1995
+ .concurrent_state_mut(store)
1996
+ .get(guest_task)?
1997
+ .lift_result
1998
+ .is_some()
1999
+ {
2000
+ return Err(anyhow!(crate::Trap::NoAsyncResult));
2001
+ }
2002
+ } else {
2003
+ // This is a sync-lifted export, so now is when we lift the
2004
+ // result, optionally call the post-return function, if any,
2005
+ // and finally notify any current or future waiters that the
2006
+ // subtask has returned.
2007
+
2008
+ let lift = {
2009
+ let state = instance.concurrent_state_mut(store);
2010
+ state.exit_instance(callee_instance)?;
2011
+
2012
+ assert!(state.get(guest_task)?.result.is_none());
2013
+
2014
+ state.get_mut(guest_task)?.lift_result.take().unwrap()
2015
+ };
2016
+
2017
+ // SAFETY: `result_count` represents the number of core Wasm
2018
+ // results returned, per `wasmparser`.
2019
+ let result = (lift.lift)(store, instance, unsafe {
2020
+ mem::transmute::<&[MaybeUninit<ValRaw>], &[ValRaw]>(
2021
+ &storage[..result_count],
2022
+ )
2023
+ })?;
2024
+
2025
+ let post_return_arg = match result_count {
2026
+ 0 => ValRaw::i32(0),
2027
+ // SAFETY: `result_count` represents the number of
2028
+ // core Wasm results returned, per `wasmparser`.
2029
+ 1 => unsafe { storage[0].assume_init() },
2030
+ _ => unreachable!(),
2031
+ };
2032
+
2033
+ if instance
2034
+ .concurrent_state_mut(store)
2035
+ .get(guest_task)?
2036
+ .call_post_return_automatically()
2037
+ {
2038
+ unsafe { flags.set_needs_post_return(false) }
2039
+
2040
+ if let Some(func) = post_return {
2041
+ let mut store = token.as_context_mut(store);
2042
+
2043
+ // SAFETY: `func` is a valid `*mut VMFuncRef` from
2044
+ // either `wasmtime-cranelift`-generated fused adapter
2045
+ // code or `component::Options`. Per `wasmparser`
2046
+ // post-return signature validation, we know it takes a
2047
+ // single parameter.
2048
+ unsafe {
2049
+ crate::Func::call_unchecked_raw(
2050
+ &mut store,
2051
+ func.as_non_null(),
2052
+ slice::from_ref(&post_return_arg).into(),
2053
+ )?;
2054
+ }
2055
+ }
2056
+
2057
+ unsafe { flags.set_may_enter(true) }
2058
+ }
2059
+
2060
+ instance.task_complete(
2061
+ store,
2062
+ guest_task,
2063
+ result,
2064
+ Status::Returned,
2065
+ post_return_arg,
2066
+ )?;
2067
+ }
2068
+
2069
+ instance.maybe_pop_call_context(store.store_opaque_mut(), guest_task)?;
2070
+
2071
+ let task = instance.concurrent_state_mut(store).get_mut(guest_task)?;
2072
+
2073
+ match &task.caller {
2074
+ Caller::Host {
2075
+ remove_task_automatically,
2076
+ ..
2077
+ } => {
2078
+ if *remove_task_automatically {
2079
+ Waitable::Guest(guest_task)
2080
+ .delete_from(instance.concurrent_state_mut(store))?;
2081
+ }
2082
+ }
2083
+ Caller::Guest { .. } => {
2084
+ task.exited = true;
2085
+ }
2086
+ }
2087
+
2088
+ Ok(())
2089
+ })
2090
+ };
2091
+
2092
+ self.concurrent_state_mut(store.0)
2093
+ .push_high_priority(WorkItem::GuestCall(GuestCall {
2094
+ task: guest_task,
2095
+ kind: GuestCallKind::Start(fun),
2096
+ }));
2097
+
2098
+ Ok(())
2099
+ }
2100
+
2101
+ /// Prepare (but do not start) a guest->guest call.
2102
+ ///
2103
+ /// This is called from fused adapter code generated in
2104
+ /// `wasmtime_environ::fact::trampoline::Compiler`. `start` and `return_`
2105
+ /// are synthesized Wasm functions which move the parameters from the caller
2106
+ /// to the callee and the result from the callee to the caller,
2107
+ /// respectively. The adapter will call `Self::start_call` immediately
2108
+ /// after calling this function.
2109
+ ///
2110
+ /// SAFETY: All the pointer arguments must be valid pointers to guest
2111
+ /// entities (and with the expected signatures for the function references
2112
+ /// -- see `wasmtime_environ::fact::trampoline::Compiler` for details).
2113
+ unsafe fn prepare_call<T: 'static>(
2114
+ self,
2115
+ mut store: StoreContextMut<T>,
2116
+ start: *mut VMFuncRef,
2117
+ return_: *mut VMFuncRef,
2118
+ caller_instance: RuntimeComponentInstanceIndex,
2119
+ callee_instance: RuntimeComponentInstanceIndex,
2120
+ task_return_type: TypeTupleIndex,
2121
+ memory: *mut VMMemoryDefinition,
2122
+ string_encoding: u8,
2123
+ caller_info: CallerInfo,
2124
+ ) -> Result<()> {
2125
+ enum ResultInfo {
2126
+ Heap { results: u32 },
2127
+ Stack { result_count: u32 },
2128
+ }
2129
+
2130
+ let result_info = match &caller_info {
2131
+ CallerInfo::Async {
2132
+ has_result: true,
2133
+ params,
2134
+ } => ResultInfo::Heap {
2135
+ results: params.last().unwrap().get_u32(),
2136
+ },
2137
+ CallerInfo::Async {
2138
+ has_result: false, ..
2139
+ } => ResultInfo::Stack { result_count: 0 },
2140
+ CallerInfo::Sync {
2141
+ result_count,
2142
+ params,
2143
+ } if *result_count > u32::try_from(MAX_FLAT_RESULTS).unwrap() => ResultInfo::Heap {
2144
+ results: params.last().unwrap().get_u32(),
2145
+ },
2146
+ CallerInfo::Sync { result_count, .. } => ResultInfo::Stack {
2147
+ result_count: *result_count,
2148
+ },
2149
+ };
2150
+
2151
+ let sync_caller = matches!(caller_info, CallerInfo::Sync { .. });
2152
+
2153
+ // Create a new guest task for the call, closing over the `start` and
2154
+ // `return_` functions to lift the parameters and lower the result,
2155
+ // respectively.
2156
+ let start = SendSyncPtr::new(NonNull::new(start).unwrap());
2157
+ let return_ = SendSyncPtr::new(NonNull::new(return_).unwrap());
2158
+ let token = StoreToken::new(store.as_context_mut());
2159
+ let state = self.concurrent_state_mut(store.0);
2160
+ let old_task = state.guest_task.take();
2161
+ let new_task = GuestTask::new(
2162
+ state,
2163
+ Box::new(move |store, instance, dst| {
2164
+ let mut store = token.as_context_mut(store);
2165
+ assert!(dst.len() <= MAX_FLAT_PARAMS);
2166
+ let mut src = [MaybeUninit::uninit(); MAX_FLAT_PARAMS];
2167
+ let count = match caller_info {
2168
+ // Async callers, if they have a result, use the last
2169
+ // parameter as a return pointer so chop that off if
2170
+ // relevant here.
2171
+ CallerInfo::Async { params, has_result } => {
2172
+ let params = &params[..params.len() - usize::from(has_result)];
2173
+ for (param, src) in params.iter().zip(&mut src) {
2174
+ src.write(*param);
2175
+ }
2176
+ params.len()
2177
+ }
2178
+
2179
+ // Sync callers forward everything directly.
2180
+ CallerInfo::Sync { params, .. } => {
2181
+ for (param, src) in params.iter().zip(&mut src) {
2182
+ src.write(*param);
2183
+ }
2184
+ params.len()
2185
+ }
2186
+ };
2187
+ // SAFETY: `start` is a valid `*mut VMFuncRef` from
2188
+ // `wasmtime-cranelift`-generated fused adapter code. Based on
2189
+ // how it was constructed (see
2190
+ // `wasmtime_environ::fact::trampoline::Compiler::compile_async_start_adapter`
2191
+ // for details) we know it takes count parameters and returns
2192
+ // `dst.len()` results.
2193
+ unsafe {
2194
+ crate::Func::call_unchecked_raw(
2195
+ &mut store,
2196
+ start.as_non_null(),
2197
+ NonNull::new(
2198
+ &mut src[..count.max(dst.len())] as *mut [MaybeUninit<ValRaw>] as _,
2199
+ )
2200
+ .unwrap(),
2201
+ )?;
2202
+ }
2203
+ dst.copy_from_slice(&src[..dst.len()]);
2204
+ let state = instance.concurrent_state_mut(store.0);
2205
+ let task = state.guest_task.unwrap();
2206
+ Waitable::Guest(task).set_event(
2207
+ state,
2208
+ Some(Event::Subtask {
2209
+ status: Status::Started,
2210
+ }),
2211
+ )?;
2212
+ Ok(())
2213
+ }),
2214
+ LiftResult {
2215
+ lift: Box::new(move |store, instance, src| {
2216
+ // SAFETY: See comment in closure passed as `lower_params`
2217
+ // parameter above.
2218
+ let mut store = token.as_context_mut(store);
2219
+ let mut my_src = src.to_owned(); // TODO: use stack to avoid allocation?
2220
+ if let ResultInfo::Heap { results } = &result_info {
2221
+ my_src.push(ValRaw::u32(*results));
2222
+ }
2223
+ // SAFETY: `return_` is a valid `*mut VMFuncRef` from
2224
+ // `wasmtime-cranelift`-generated fused adapter code. Based
2225
+ // on how it was constructed (see
2226
+ // `wasmtime_environ::fact::trampoline::Compiler::compile_async_return_adapter`
2227
+ // for details) we know it takes `src.len()` parameters and
2228
+ // returns up to 1 result.
2229
+ unsafe {
2230
+ crate::Func::call_unchecked_raw(
2231
+ &mut store,
2232
+ return_.as_non_null(),
2233
+ my_src.as_mut_slice().into(),
2234
+ )?;
2235
+ }
2236
+ let state = instance.concurrent_state_mut(store.0);
2237
+ let task = state.guest_task.unwrap();
2238
+ if sync_caller {
2239
+ state.get_mut(task)?.sync_result =
2240
+ Some(if let ResultInfo::Stack { result_count } = &result_info {
2241
+ match result_count {
2242
+ 0 => None,
2243
+ 1 => Some(my_src[0]),
2244
+ _ => unreachable!(),
2245
+ }
2246
+ } else {
2247
+ None
2248
+ });
2249
+ }
2250
+ Ok(Box::new(DummyResult) as Box<dyn Any + Send + Sync>)
2251
+ }),
2252
+ ty: task_return_type,
2253
+ memory: NonNull::new(memory).map(SendSyncPtr::new),
2254
+ string_encoding: StringEncoding::from_u8(string_encoding).unwrap(),
2255
+ },
2256
+ Caller::Guest {
2257
+ task: old_task.unwrap(),
2258
+ instance: caller_instance,
2259
+ },
2260
+ None,
2261
+ callee_instance,
2262
+ )?;
2263
+
2264
+ let guest_task = state.push(new_task)?;
2265
+
2266
+ if let Some(old_task) = old_task {
2267
+ if !state.may_enter(guest_task) {
2268
+ bail!(crate::Trap::CannotEnterComponent);
2269
+ }
2270
+
2271
+ state.get_mut(old_task)?.subtasks.insert(guest_task);
2272
+ };
2273
+
2274
+ // Make the new task the current one so that `Self::start_call` knows
2275
+ // which one to start.
2276
+ state.guest_task = Some(guest_task);
2277
+ log::trace!("pushed {guest_task:?} as current task; old task was {old_task:?}");
2278
+
2279
+ Ok(())
2280
+ }
2281
+
2282
+ /// Call the specified callback function for an async-lifted export.
2283
+ ///
2284
+ /// SAFETY: `function` must be a valid reference to a guest function of the
2285
+ /// correct signature for a callback.
2286
+ unsafe fn call_callback<T>(
2287
+ self,
2288
+ mut store: StoreContextMut<T>,
2289
+ callee_instance: RuntimeComponentInstanceIndex,
2290
+ function: SendSyncPtr<VMFuncRef>,
2291
+ event: Event,
2292
+ handle: u32,
2293
+ may_enter_after_call: bool,
2294
+ ) -> Result<u32> {
2295
+ let mut flags = self.id().get(store.0).instance_flags(callee_instance);
2296
+
2297
+ let (ordinal, result) = event.parts();
2298
+ let params = &mut [
2299
+ ValRaw::u32(ordinal),
2300
+ ValRaw::u32(handle),
2301
+ ValRaw::u32(result),
2302
+ ];
2303
+ // SAFETY: `func` is a valid `*mut VMFuncRef` from either
2304
+ // `wasmtime-cranelift`-generated fused adapter code or
2305
+ // `component::Options`. Per `wasmparser` callback signature
2306
+ // validation, we know it takes three parameters and returns one.
2307
+ unsafe {
2308
+ flags.set_may_enter(false);
2309
+ crate::Func::call_unchecked_raw(
2310
+ &mut store,
2311
+ function.as_non_null(),
2312
+ params.as_mut_slice().into(),
2313
+ )?;
2314
+ flags.set_may_enter(may_enter_after_call);
2315
+ }
2316
+ Ok(params[0].get_u32())
2317
+ }
2318
+
2319
+ /// Start a guest->guest call previously prepared using
2320
+ /// `Self::prepare_call`.
2321
+ ///
2322
+ /// This is called from fused adapter code generated in
2323
+ /// `wasmtime_environ::fact::trampoline::Compiler`. The adapter will call
2324
+ /// this function immediately after calling `Self::prepare_call`.
2325
+ ///
2326
+ /// SAFETY: The `*mut VMFuncRef` arguments must be valid pointers to guest
2327
+ /// functions with the appropriate signatures for the current guest task.
2328
+ /// If this is a call to an async-lowered import, the actual call may be
2329
+ /// deferred and run after this function returns, in which case the pointer
2330
+ /// arguments must also be valid when the call happens.
2331
+ unsafe fn start_call<T: 'static>(
2332
+ self,
2333
+ mut store: StoreContextMut<T>,
2334
+ callback: *mut VMFuncRef,
2335
+ post_return: *mut VMFuncRef,
2336
+ callee: *mut VMFuncRef,
2337
+ param_count: u32,
2338
+ result_count: u32,
2339
+ flags: u32,
2340
+ storage: Option<&mut [MaybeUninit<ValRaw>]>,
2341
+ ) -> Result<u32> {
2342
+ let token = StoreToken::new(store.as_context_mut());
2343
+ let async_caller = storage.is_none();
2344
+ let state = self.concurrent_state_mut(store.0);
2345
+ let guest_task = state.guest_task.unwrap();
2346
+ let may_enter_after_call = state.get(guest_task)?.call_post_return_automatically();
2347
+ let callee = SendSyncPtr::new(NonNull::new(callee).unwrap());
2348
+ let param_count = usize::try_from(param_count).unwrap();
2349
+ assert!(param_count <= MAX_FLAT_PARAMS);
2350
+ let result_count = usize::try_from(result_count).unwrap();
2351
+ assert!(result_count <= MAX_FLAT_RESULTS);
2352
+
2353
+ let task = state.get_mut(guest_task)?;
2354
+ if !callback.is_null() {
2355
+ // We're calling an async-lifted export with a callback, so store
2356
+ // the callback and related context as part of the task so we can
2357
+ // call it later when needed.
2358
+ let callback = SendSyncPtr::new(NonNull::new(callback).unwrap());
2359
+ task.callback = Some(Box::new(
2360
+ move |store, instance, runtime_instance, event, handle| {
2361
+ let store = token.as_context_mut(store);
2362
+ unsafe {
2363
+ instance.call_callback::<T>(
2364
+ store,
2365
+ runtime_instance,
2366
+ callback,
2367
+ event,
2368
+ handle,
2369
+ may_enter_after_call,
2370
+ )
2371
+ }
2372
+ },
2373
+ ));
2374
+ }
2375
+
2376
+ let Caller::Guest {
2377
+ task: caller,
2378
+ instance: runtime_instance,
2379
+ } = &task.caller
2380
+ else {
2381
+ // As of this writing, `start_call` is only used for guest->guest
2382
+ // calls.
2383
+ unreachable!()
2384
+ };
2385
+ let caller = *caller;
2386
+ let caller_instance = *runtime_instance;
2387
+
2388
+ let callee_instance = task.instance;
2389
+
2390
+ let instance_flags = if callback.is_null() {
2391
+ None
2392
+ } else {
2393
+ Some(self.id().get(store.0).instance_flags(callee_instance))
2394
+ };
2395
+
2396
+ // Queue the call as a "high priority" work item.
2397
+ unsafe {
2398
+ self.queue_call(
2399
+ store.as_context_mut(),
2400
+ guest_task,
2401
+ callee,
2402
+ param_count,
2403
+ result_count,
2404
+ instance_flags,
2405
+ (flags & START_FLAG_ASYNC_CALLEE) != 0,
2406
+ NonNull::new(callback).map(SendSyncPtr::new),
2407
+ NonNull::new(post_return).map(SendSyncPtr::new),
2408
+ )?;
2409
+ }
2410
+
2411
+ let state = self.concurrent_state_mut(store.0);
2412
+
2413
+ // Use the caller's `GuestTask::sync_call_set` to register interest in
2414
+ // the subtask...
2415
+ let guest_waitable = Waitable::Guest(guest_task);
2416
+ let old_set = guest_waitable.common(state)?.set;
2417
+ let set = state.get_mut(caller)?.sync_call_set;
2418
+ guest_waitable.join(state, Some(set))?;
2419
+
2420
+ // ... and suspend this fiber temporarily while we wait for it to start.
2421
+ //
2422
+ // Note that we _could_ call the callee directly using the current fiber
2423
+ // rather than suspend this one, but that would make reasoning about the
2424
+ // event loop more complicated and is probably only worth doing if
2425
+ // there's a measurable performance benefit. In addition, it would mean
2426
+ // blocking the caller if the callee calls a blocking sync-lowered
2427
+ // import, and as of this writing the spec says we must not do that.
2428
+ //
2429
+ // Alternatively, the fused adapter code could be modified to call the
2430
+ // callee directly without calling a host-provided intrinsic at all (in
2431
+ // which case it would need to do its own, inline backpressure checks,
2432
+ // etc.). Again, we'd want to see a measurable performance benefit
2433
+ // before committing to such an optimization. And again, we'd need to
2434
+ // update the spec to allow that.
2435
+ let (status, waitable) = loop {
2436
+ self.suspend(
2437
+ store.0.traitobj_mut(),
2438
+ SuspendReason::Waiting { set, task: caller },
2439
+ )?;
2440
+
2441
+ let state = self.concurrent_state_mut(store.0);
2442
+
2443
+ let event = Waitable::Guest(guest_task).take_event(state)?;
2444
+ let Some(Event::Subtask { status }) = event else {
2445
+ unreachable!();
2446
+ };
2447
+
2448
+ log::trace!("status {status:?} for {guest_task:?}");
2449
+
2450
+ if status == Status::Returned {
2451
+ // It returned, so we can stop waiting.
2452
+ break (status, None);
2453
+ } else if async_caller {
2454
+ // It hasn't returned yet, but the caller is calling via an
2455
+ // async-lowered import, so we generate a handle for the task
2456
+ // waitable and return the status.
2457
+ break (
2458
+ status,
2459
+ Some(
2460
+ state.waitable_tables[caller_instance]
2461
+ .insert(guest_task.rep(), WaitableState::GuestTask)?,
2462
+ ),
2463
+ );
2464
+ } else {
2465
+ // The callee hasn't returned yet, and the caller is calling via
2466
+ // a sync-lowered import, so we loop and keep waiting until the
2467
+ // callee returns.
2468
+ }
2469
+ };
2470
+
2471
+ let state = self.concurrent_state_mut(store.0);
2472
+
2473
+ guest_waitable.join(state, old_set)?;
2474
+
2475
+ if let Some(storage) = storage {
2476
+ // The caller used a sync-lowered import to call an async-lifted
2477
+ // export, in which case the result, if any, has been stashed in
2478
+ // `GuestTask::sync_result`.
2479
+ if let Some(result) = state.get_mut(guest_task)?.sync_result.take() {
2480
+ if let Some(result) = result {
2481
+ storage[0] = MaybeUninit::new(result);
2482
+ }
2483
+
2484
+ Waitable::Guest(guest_task).delete_from(state)?;
2485
+ } else {
2486
+ // This means the callee failed to call either `task.return` or
2487
+ // `task.cancel` before exiting.
2488
+ return Err(anyhow!(crate::Trap::NoAsyncResult));
2489
+ }
2490
+ }
2491
+
2492
+ // Reset the current task to point to the caller as it resumes control.
2493
+ state.guest_task = Some(caller);
2494
+ log::trace!("popped current task {guest_task:?}; new task is {caller:?}");
2495
+
2496
+ Ok(status.pack(waitable))
2497
+ }
2498
+
2499
+ /// Wrap the specified host function in a future which will call it, passing
2500
+ /// it an `&Accessor<T>`.
2501
+ ///
2502
+ /// See the `Accessor` documentation for details.
2503
+ pub(crate) fn wrap_call<T: 'static, F, R>(
2504
+ self,
2505
+ store: StoreContextMut<T>,
2506
+ closure: F,
2507
+ ) -> impl Future<Output = Result<R>> + 'static
2508
+ where
2509
+ T: 'static,
2510
+ F: FnOnce(&Accessor<T>) -> Pin<Box<dyn Future<Output = Result<R>> + Send + '_>>
2511
+ + Send
2512
+ + Sync
2513
+ + 'static,
2514
+ R: Send + Sync + 'static,
2515
+ {
2516
+ let token = StoreToken::new(store);
2517
+ async move {
2518
+ let mut accessor = Accessor::new(token, Some(self));
2519
+ closure(&mut accessor).await
2520
+ }
2521
+ }
2522
+
2523
+ /// Poll the specified future once on behalf of a guest->host call using an
2524
+ /// async-lowered import.
2525
+ ///
2526
+ /// If it returns `Ready`, return `Ok(None)`. Otherwise, if it returns
2527
+ /// `Pending`, add it to the set of futures to be polled as part of this
2528
+ /// instance's event loop until it completes, and then return
2529
+ /// `Ok(Some(handle))` where `handle` is the waitable handle to return.
2530
+ ///
2531
+ /// Whether the future returns `Ready` immediately or later, the `lower`
2532
+ /// function will be used to lower the result, if any, into the guest caller's
2533
+ /// stack and linear memory unless the task has been cancelled.
2534
+ pub(crate) fn first_poll<T: 'static, R: Send + 'static>(
2535
+ self,
2536
+ mut store: StoreContextMut<T>,
2537
+ future: impl Future<Output = Result<R>> + Send + 'static,
2538
+ caller_instance: RuntimeComponentInstanceIndex,
2539
+ lower: impl FnOnce(StoreContextMut<T>, Instance, R) -> Result<()> + Send + 'static,
2540
+ ) -> Result<Option<u32>> {
2541
+ let token = StoreToken::new(store.as_context_mut());
2542
+ let state = self.concurrent_state_mut(store.0);
2543
+ let caller = state.guest_task.unwrap();
2544
+
2545
+ // Create an abortable future which hooks calls to poll and manages call
2546
+ // context state for the future.
2547
+ let (abort_handle, future) = AbortHandle::run(async move {
2548
+ let mut future = pin!(future);
2549
+ let mut call_context = None;
2550
+ future::poll_fn(move |cx| {
2551
+ // Push the call context for managing any resource borrows
2552
+ // for the task.
2553
+ tls::get(|store| {
2554
+ if let Some(call_context) = call_context.take() {
2555
+ token
2556
+ .as_context_mut(store)
2557
+ .0
2558
+ .component_resource_state()
2559
+ .0
2560
+ .push(call_context);
2561
+ }
2562
+ });
2563
+
2564
+ let result = future.as_mut().poll(cx);
2565
+
2566
+ if result.is_pending() {
2567
+ // Pop the call context for managing any resource
2568
+ // borrows for the task.
2569
+ tls::get(|store| {
2570
+ call_context = Some(
2571
+ token
2572
+ .as_context_mut(store)
2573
+ .0
2574
+ .component_resource_state()
2575
+ .0
2576
+ .pop()
2577
+ .unwrap(),
2578
+ );
2579
+ });
2580
+ }
2581
+ result
2582
+ })
2583
+ .await
2584
+ });
2585
+
2586
+ // We create a new host task even though it might complete immediately
2587
+ // (in which case we won't need to pass a waitable back to the guest).
2588
+ // If it does complete immediately, we'll remove it before we return.
2589
+ let task = state.push(HostTask::new(caller_instance, Some(abort_handle)))?;
2590
+
2591
+ log::trace!("new host task child of {caller:?}: {task:?}");
2592
+ let token = StoreToken::new(store.as_context_mut());
2593
+
2594
+ // Map the output of the future to a `HostTaskOutput` responsible for
2595
+ // lowering the result into the guest's stack and memory, as well as
2596
+ // notifying any waiters that the task returned.
2597
+ let mut future = Box::pin(async move {
2598
+ let result = match future.await {
2599
+ Some(result) => result,
2600
+ // Task was cancelled; nothing left to do.
2601
+ None => return HostTaskOutput::Result(Ok(())),
2602
+ };
2603
+ HostTaskOutput::Function(Box::new(move |store, instance| {
2604
+ let mut store = token.as_context_mut(store);
2605
+ lower(store.as_context_mut(), instance, result?)?;
2606
+ let state = instance.concurrent_state_mut(store.0);
2607
+ state.get_mut(task)?.abort_handle.take();
2608
+ Waitable::Host(task).set_event(
2609
+ state,
2610
+ Some(Event::Subtask {
2611
+ status: Status::Returned,
2612
+ }),
2613
+ )?;
2614
+
2615
+ Ok(())
2616
+ }))
2617
+ });
2618
+
2619
+ // Finally, poll the future. We can use a dummy `Waker` here because
2620
+ // we'll add the future to `ConcurrentState::futures` and poll it
2621
+ // automatically from the event loop if it doesn't complete immediately
2622
+ // here.
2623
+ let poll = self.set_tls(store.0, || {
2624
+ future
2625
+ .as_mut()
2626
+ .poll(&mut Context::from_waker(&Waker::noop()))
2627
+ });
2628
+
2629
+ Ok(match poll {
2630
+ Poll::Ready(output) => {
2631
+ // It finished immediately; lower the result and delete the
2632
+ // task.
2633
+ output.consume(store.0.traitobj_mut(), self)?;
2634
+ log::trace!("delete host task {task:?} (already ready)");
2635
+ self.concurrent_state_mut(store.0).delete(task)?;
2636
+ None
2637
+ }
2638
+ Poll::Pending => {
2639
+ // It hasn't finished yet; add the future to
2640
+ // `ConcurrentState::futures` so it will be polled by the event
2641
+ // loop and allocate a waitable handle to return to the guest.
2642
+ let state = self.concurrent_state_mut(store.0);
2643
+ state.push_future(future);
2644
+ let handle = state.waitable_tables[caller_instance]
2645
+ .insert(task.rep(), WaitableState::HostTask)?;
2646
+ log::trace!(
2647
+ "assign {task:?} handle {handle} for {caller:?} instance {caller_instance:?}"
2648
+ );
2649
+ Some(handle)
2650
+ }
2651
+ })
2652
+ }
2653
+
2654
+ /// Poll the specified future until it completes on behalf of a guest->host
2655
+ /// call using a sync-lowered import.
2656
+ ///
2657
+ /// This is similar to `Self::first_poll` except it's for sync-lowered
2658
+ /// imports, meaning we don't need to handle cancellation and we can block
2659
+ /// the caller until the task completes, at which point the caller can
2660
+ /// handle lowering the result to the guest's stack and linear memory.
2661
+ pub(crate) fn poll_and_block<R: Send + Sync + 'static>(
2662
+ self,
2663
+ store: &mut dyn VMStore,
2664
+ future: impl Future<Output = Result<R>> + Send + 'static,
2665
+ caller_instance: RuntimeComponentInstanceIndex,
2666
+ ) -> Result<R> {
2667
+ let state = self.concurrent_state_mut(store);
2668
+
2669
+ // If there is no current guest task set, that means the host function
2670
+ // was registered using e.g. `LinkerInstance::func_wrap`, in which case
2671
+ // it should complete immediately.
2672
+ let Some(caller) = state.guest_task else {
2673
+ return match pin!(future).poll(&mut Context::from_waker(&Waker::noop())) {
2674
+ Poll::Ready(result) => result,
2675
+ Poll::Pending => {
2676
+ unreachable!()
2677
+ }
2678
+ };
2679
+ };
2680
+
2681
+ // Save any existing result stashed in `GuestTask::result` so we can
2682
+ // replace it with the new result.
2683
+ let old_result = state
2684
+ .get_mut(caller)
2685
+ .with_context(|| format!("bad handle: {caller:?}"))?
2686
+ .result
2687
+ .take();
2688
+
2689
+ // Add a temporary host task into the table so we can track its
2690
+ // progress. Note that we'll never allocate a waitable handle for the
2691
+ // guest since we're being called synchronously.
2692
+ let task = state.push(HostTask::new(caller_instance, None))?;
2693
+
2694
+ log::trace!("new host task child of {caller:?}: {task:?}");
2695
+
2696
+ // Map the output of the future to a `HostTaskOutput` which will take
2697
+ // care of stashing the result in `GuestTask::result` and resuming this
2698
+ // fiber when the host task completes.
2699
+ let mut future = Box::pin(future.map(move |result| {
2700
+ HostTaskOutput::Function(Box::new(move |store, instance| {
2701
+ let state = instance.concurrent_state_mut(store);
2702
+ state.get_mut(caller)?.result = Some(Box::new(result?) as _);
2703
+
2704
+ Waitable::Host(task).set_event(
2705
+ state,
2706
+ Some(Event::Subtask {
2707
+ status: Status::Returned,
2708
+ }),
2709
+ )?;
2710
+
2711
+ Ok(())
2712
+ }))
2713
+ })) as HostTaskFuture;
2714
+
2715
+ // Finally, poll the future. We can use a dummy `Waker` here because
2716
+ // we'll add the future to `ConcurrentState::futures` and poll it
2717
+ // automatically from the event loop if it doesn't complete immediately
2718
+ // here.
2719
+ let poll = self.set_tls(store, || {
2720
+ future
2721
+ .as_mut()
2722
+ .poll(&mut Context::from_waker(&Waker::noop()))
2723
+ });
2724
+
2725
+ match poll {
2726
+ Poll::Ready(output) => {
2727
+ // It completed immediately; run the `HostTaskOutput` function
2728
+ // to stash the result and delete the task.
2729
+ output.consume(store, self)?;
2730
+ log::trace!("delete host task {task:?} (already ready)");
2731
+ self.concurrent_state_mut(store).delete(task)?;
2732
+ }
2733
+ Poll::Pending => {
2734
+ // It did not complete immediately; add it to
2735
+ // `ConcurrentState::futures` so it will be polled via the event
2736
+ // loop, then use `GuestTask::sync_call_set` to wait for the
2737
+ // task to complete, suspending the current fiber until it does
2738
+ // so.
2739
+ let state = self.concurrent_state_mut(store);
2740
+ state.push_future(future);
2741
+
2742
+ let set = state.get_mut(caller)?.sync_call_set;
2743
+ Waitable::Host(task).join(state, Some(set))?;
2744
+
2745
+ self.suspend(store, SuspendReason::Waiting { set, task: caller })?;
2746
+ }
2747
+ }
2748
+
2749
+ // Retrieve and return the result.
2750
+ Ok(*mem::replace(
2751
+ &mut self.concurrent_state_mut(store).get_mut(caller)?.result,
2752
+ old_result,
2753
+ )
2754
+ .unwrap()
2755
+ .downcast()
2756
+ .unwrap())
2757
+ }
2758
+
2759
+ /// Implements the `task.return` intrinsic, lifting the result for the
2760
+ /// current guest task.
2761
+ pub(crate) fn task_return(
2762
+ self,
2763
+ store: &mut dyn VMStore,
2764
+ ty: TypeTupleIndex,
2765
+ options: OptionsIndex,
2766
+ storage: &[ValRaw],
2767
+ ) -> Result<()> {
2768
+ let state = self.concurrent_state_mut(store);
2769
+ let CanonicalOptions {
2770
+ string_encoding,
2771
+ data_model,
2772
+ ..
2773
+ } = *state.options(options);
2774
+ let guest_task = state.guest_task.unwrap();
2775
+ let lift = state
2776
+ .get_mut(guest_task)?
2777
+ .lift_result
2778
+ .take()
2779
+ .ok_or_else(|| {
2780
+ anyhow!("`task.return` or `task.cancel` called more than once for current task")
2781
+ })?;
2782
+ assert!(state.get(guest_task)?.result.is_none());
2783
+
2784
+ let invalid = ty != lift.ty
2785
+ || string_encoding != lift.string_encoding
2786
+ || match data_model {
2787
+ CanonicalOptionsDataModel::LinearMemory(opts) => match opts.memory {
2788
+ Some(memory) => {
2789
+ let expected = lift.memory.map(|v| v.as_ptr()).unwrap_or(ptr::null_mut());
2790
+ let actual = self.id().get(store).runtime_memory(memory);
2791
+ expected != actual
2792
+ }
2793
+ // Memory not specified, meaning it didn't need to be
2794
+ // specified per validation, so not invalid.
2795
+ None => false,
2796
+ },
2797
+ // Always invalid as this isn't supported.
2798
+ CanonicalOptionsDataModel::Gc { .. } => true,
2799
+ };
2800
+
2801
+ if invalid {
2802
+ bail!("invalid `task.return` signature and/or options for current task");
2803
+ }
2804
+
2805
+ log::trace!("task.return for {guest_task:?}");
2806
+
2807
+ let result = (lift.lift)(store, self, storage)?;
2808
+
2809
+ self.task_complete(store, guest_task, result, Status::Returned, ValRaw::i32(0))
2810
+ }
2811
+
2812
+ /// Implements the `task.cancel` intrinsic.
2813
+ pub(crate) fn task_cancel(
2814
+ self,
2815
+ store: &mut dyn VMStore,
2816
+ _caller_instance: RuntimeComponentInstanceIndex,
2817
+ ) -> Result<()> {
2818
+ let state = self.concurrent_state_mut(store);
2819
+ let guest_task = state.guest_task.unwrap();
2820
+ let task = state.get_mut(guest_task)?;
2821
+ if !task.cancel_sent {
2822
+ bail!("`task.cancel` called by task which has not been cancelled")
2823
+ }
2824
+ _ = task.lift_result.take().ok_or_else(|| {
2825
+ anyhow!("`task.return` or `task.cancel` called more than once for current task")
2826
+ })?;
2827
+
2828
+ assert!(task.result.is_none());
2829
+
2830
+ log::trace!("task.cancel for {guest_task:?}");
2831
+
2832
+ self.task_complete(
2833
+ store,
2834
+ guest_task,
2835
+ Box::new(DummyResult),
2836
+ Status::ReturnCancelled,
2837
+ ValRaw::i32(0),
2838
+ )
2839
+ }
2840
+
2841
+ /// Complete the specified guest task (i.e. indicate that it has either
2842
+ /// returned a (possibly empty) result or cancelled itself).
2843
+ ///
2844
+ /// This will return any resource borrows and notify any current or future
2845
+ /// waiters that the task has completed.
2846
+ fn task_complete(
2847
+ self,
2848
+ store: &mut dyn VMStore,
2849
+ guest_task: TableId<GuestTask>,
2850
+ result: Box<dyn Any + Send + Sync>,
2851
+ status: Status,
2852
+ post_return_arg: ValRaw,
2853
+ ) -> Result<()> {
2854
+ if self
2855
+ .concurrent_state_mut(store)
2856
+ .get(guest_task)?
2857
+ .call_post_return_automatically()
2858
+ {
2859
+ let (calls, host_table, handle_counter, _, instance) = store
2860
+ .store_opaque_mut()
2861
+ .component_resource_state_with_instance(self);
2862
+ ResourceTables {
2863
+ calls,
2864
+ host_table: Some(host_table),
2865
+ handle_counter,
2866
+ guest: Some(instance.guest_tables()),
2867
+ }
2868
+ .exit_call()?;
2869
+ } else {
2870
+ // As of this writing, the only scenario where `call_post_return_automatically`
2871
+ // would be false for a `GuestTask` is for host-to-guest calls using
2872
+ // `[Typed]Func::call_async`, in which case the `function_index`
2873
+ // should be a non-`None` value.
2874
+ let function_index = self
2875
+ .concurrent_state_mut(store)
2876
+ .get(guest_task)?
2877
+ .function_index
2878
+ .unwrap();
2879
+
2880
+ self.id()
2881
+ .get_mut(store)
2882
+ .post_return_arg_set(function_index, post_return_arg);
2883
+ }
2884
+
2885
+ let state = self.concurrent_state_mut(store);
2886
+ let task = state.get_mut(guest_task)?;
2887
+
2888
+ if let Caller::Host { tx, .. } = &mut task.caller {
2889
+ if let Some(tx) = tx.take() {
2890
+ _ = tx.send(result);
2891
+ }
2892
+ } else {
2893
+ task.result = Some(result);
2894
+ Waitable::Guest(guest_task).set_event(state, Some(Event::Subtask { status }))?;
2895
+ }
2896
+
2897
+ Ok(())
2898
+ }
2899
+
2900
+ /// Implements the `waitable-set.wait` intrinsic.
2901
+ pub(crate) fn waitable_set_wait(
2902
+ self,
2903
+ store: &mut dyn VMStore,
2904
+ options: OptionsIndex,
2905
+ set: u32,
2906
+ payload: u32,
2907
+ ) -> Result<u32> {
2908
+ let state = self.concurrent_state_mut(store);
2909
+ let opts = state.options(options);
2910
+ let async_ = opts.async_;
2911
+ let caller_instance = opts.instance;
2912
+ let (rep, WaitableState::Set) =
2913
+ state.waitable_tables[caller_instance].get_mut_by_index(set)?
2914
+ else {
2915
+ bail!("invalid waitable-set handle");
2916
+ };
2917
+
2918
+ self.waitable_check(
2919
+ store,
2920
+ async_,
2921
+ WaitableCheck::Wait(WaitableCheckParams {
2922
+ set: TableId::new(rep),
2923
+ caller_instance,
2924
+ options,
2925
+ payload,
2926
+ }),
2927
+ )
2928
+ }
2929
+
2930
+ /// Implements the `waitable-set.poll` intrinsic.
2931
+ pub(crate) fn waitable_set_poll(
2932
+ self,
2933
+ store: &mut dyn VMStore,
2934
+ options: OptionsIndex,
2935
+ set: u32,
2936
+ payload: u32,
2937
+ ) -> Result<u32> {
2938
+ let state = self.concurrent_state_mut(store);
2939
+ let opts = state.options(options);
2940
+ let async_ = opts.async_;
2941
+ let caller_instance = opts.instance;
2942
+ let (rep, WaitableState::Set) =
2943
+ state.waitable_tables[caller_instance].get_mut_by_index(set)?
2944
+ else {
2945
+ bail!("invalid waitable-set handle");
2946
+ };
2947
+
2948
+ self.waitable_check(
2949
+ store,
2950
+ async_,
2951
+ WaitableCheck::Poll(WaitableCheckParams {
2952
+ set: TableId::new(rep),
2953
+ caller_instance,
2954
+ options,
2955
+ payload,
2956
+ }),
2957
+ )
2958
+ }
2959
+
2960
+ /// Implements the `yield` intrinsic.
2961
+ pub(crate) fn yield_(self, store: &mut dyn VMStore, async_: bool) -> Result<bool> {
2962
+ self.waitable_check(store, async_, WaitableCheck::Yield)
2963
+ .map(|_code| {
2964
+ // TODO: plumb cancellation to here:
2965
+ // https://github.com/bytecodealliance/wasmtime/issues/11191
2966
+ false
2967
+ })
2968
+ }
2969
+
2970
+ /// Helper function for the `waitable-set.wait`, `waitable-set.poll`, and
2971
+ /// `yield` intrinsics.
2972
+ fn waitable_check(
2973
+ self,
2974
+ store: &mut dyn VMStore,
2975
+ async_: bool,
2976
+ check: WaitableCheck,
2977
+ ) -> Result<u32> {
2978
+ if async_ {
2979
+ bail!(
2980
+ "todo: async `waitable-set.wait`, `waitable-set.poll`, and `yield` not yet implemented"
2981
+ );
2982
+ }
2983
+
2984
+ let guest_task = self.concurrent_state_mut(store).guest_task.unwrap();
2985
+
2986
+ let (wait, set) = match &check {
2987
+ WaitableCheck::Wait(params) => (true, Some(params.set)),
2988
+ WaitableCheck::Poll(params) => (false, Some(params.set)),
2989
+ WaitableCheck::Yield => (false, None),
2990
+ };
2991
+
2992
+ // First, suspend this fiber, allowing any other tasks to run.
2993
+ self.suspend(store, SuspendReason::Yielding { task: guest_task })?;
2994
+
2995
+ log::trace!("waitable check for {guest_task:?}; set {set:?}");
2996
+
2997
+ let state = self.concurrent_state_mut(store);
2998
+ let task = state.get(guest_task)?;
2999
+
3000
+ if wait && task.callback.is_some() {
3001
+ bail!("cannot call `task.wait` from async-lifted export with callback");
3002
+ }
3003
+
3004
+ // If we're waiting, and there are no events immediately available,
3005
+ // suspend the fiber until that changes.
3006
+ if wait {
3007
+ let set = set.unwrap();
3008
+
3009
+ if task.event.is_none() && state.get(set)?.ready.is_empty() {
3010
+ let old = state.get_mut(guest_task)?.wake_on_cancel.replace(set);
3011
+ assert!(old.is_none());
3012
+
3013
+ self.suspend(
3014
+ store,
3015
+ SuspendReason::Waiting {
3016
+ set,
3017
+ task: guest_task,
3018
+ },
3019
+ )?;
3020
+ }
3021
+ }
3022
+
3023
+ log::trace!("waitable check for {guest_task:?}; set {set:?}, part two");
3024
+
3025
+ let result = match check {
3026
+ // Deliver any pending events to the guest and return.
3027
+ WaitableCheck::Wait(params) | WaitableCheck::Poll(params) => {
3028
+ let event = self.concurrent_state_mut(store).get_event(
3029
+ guest_task,
3030
+ params.caller_instance,
3031
+ Some(params.set),
3032
+ )?;
3033
+
3034
+ let (ordinal, handle, result) = if wait {
3035
+ let (event, waitable) = event.unwrap();
3036
+ let handle = waitable.map(|(_, v)| v).unwrap_or(0);
3037
+ let (ordinal, result) = event.parts();
3038
+ (ordinal, handle, result)
3039
+ } else {
3040
+ if let Some((event, waitable)) = event {
3041
+ let handle = waitable.map(|(_, v)| v).unwrap_or(0);
3042
+ let (ordinal, result) = event.parts();
3043
+ (ordinal, handle, result)
3044
+ } else {
3045
+ log::trace!(
3046
+ "no events ready to deliver via waitable-set.poll to {guest_task:?}; set {:?}",
3047
+ params.set
3048
+ );
3049
+ let (ordinal, result) = Event::None.parts();
3050
+ (ordinal, 0, result)
3051
+ }
3052
+ };
3053
+ let store = store.store_opaque_mut();
3054
+ let options = Options::new_index(store, self, params.options);
3055
+ let ptr = func::validate_inbounds::<(u32, u32)>(
3056
+ options.memory_mut(store),
3057
+ &ValRaw::u32(params.payload),
3058
+ )?;
3059
+ options.memory_mut(store)[ptr + 0..][..4].copy_from_slice(&handle.to_le_bytes());
3060
+ options.memory_mut(store)[ptr + 4..][..4].copy_from_slice(&result.to_le_bytes());
3061
+ Ok(ordinal)
3062
+ }
3063
+ // TODO: Check `GuestTask::event` in case it contains
3064
+ // `Event::Cancelled`, in which case we'll need to return that to
3065
+ // the guest:
3066
+ // https://github.com/bytecodealliance/wasmtime/issues/11191
3067
+ WaitableCheck::Yield => Ok(0),
3068
+ };
3069
+
3070
+ result
3071
+ }
3072
+
3073
+ /// Implements the `subtask.cancel` intrinsic.
3074
+ pub(crate) fn subtask_cancel(
3075
+ self,
3076
+ store: &mut dyn VMStore,
3077
+ caller_instance: RuntimeComponentInstanceIndex,
3078
+ async_: bool,
3079
+ task_id: u32,
3080
+ ) -> Result<u32> {
3081
+ let concurrent_state = self.concurrent_state_mut(store);
3082
+ let (rep, state) =
3083
+ concurrent_state.waitable_tables[caller_instance].get_mut_by_index(task_id)?;
3084
+ let (waitable, expected_caller_instance) = match state {
3085
+ WaitableState::HostTask => {
3086
+ let id = TableId::<HostTask>::new(rep);
3087
+ (
3088
+ Waitable::Host(id),
3089
+ concurrent_state.get(id)?.caller_instance,
3090
+ )
3091
+ }
3092
+ WaitableState::GuestTask => {
3093
+ let id = TableId::<GuestTask>::new(rep);
3094
+ if let Caller::Guest { instance, .. } = &concurrent_state.get(id)?.caller {
3095
+ (Waitable::Guest(id), *instance)
3096
+ } else {
3097
+ unreachable!()
3098
+ }
3099
+ }
3100
+ _ => bail!("invalid task handle: {task_id}"),
3101
+ };
3102
+ // Since waitables can neither be passed between instances nor forged,
3103
+ // this should never fail unless there's a bug in Wasmtime, but we check
3104
+ // here to be sure:
3105
+ assert_eq!(expected_caller_instance, caller_instance);
3106
+
3107
+ log::trace!("subtask_cancel {waitable:?} (handle {task_id})");
3108
+
3109
+ if let Waitable::Host(host_task) = waitable {
3110
+ if let Some(handle) = concurrent_state.get_mut(host_task)?.abort_handle.take() {
3111
+ handle.abort();
3112
+ return Ok(Status::ReturnCancelled as u32);
3113
+ }
3114
+ } else {
3115
+ let caller = concurrent_state.guest_task.unwrap();
3116
+ let guest_task = TableId::<GuestTask>::new(rep);
3117
+ let task = concurrent_state.get_mut(guest_task)?;
3118
+ if task.lower_params.is_some() {
3119
+ task.lower_params = None;
3120
+ task.lift_result = None;
3121
+
3122
+ // Not yet started; cancel and remove from pending
3123
+ let callee_instance = task.instance;
3124
+
3125
+ let kind = concurrent_state
3126
+ .instance_state(callee_instance)
3127
+ .pending
3128
+ .remove(&guest_task);
3129
+
3130
+ if kind.is_none() {
3131
+ bail!("`subtask.cancel` called after terminal status delivered");
3132
+ }
3133
+
3134
+ return Ok(Status::StartCancelled as u32);
3135
+ } else if task.lift_result.is_some() {
3136
+ // Started, but not yet returned or cancelled; send the
3137
+ // `CANCELLED` event
3138
+ task.cancel_sent = true;
3139
+ // Note that this might overwrite an event that was set earlier
3140
+ // (e.g. `Event::None` if the task is yielding, or
3141
+ // `Event::Cancelled` if it was already cancelled), but that's
3142
+ // okay -- this should supersede the previous state.
3143
+ task.event = Some(Event::Cancelled);
3144
+ if let Some(set) = task.wake_on_cancel.take() {
3145
+ let item = match concurrent_state
3146
+ .get_mut(set)?
3147
+ .waiting
3148
+ .remove(&guest_task)
3149
+ .unwrap()
3150
+ {
3151
+ WaitMode::Fiber(fiber) => WorkItem::ResumeFiber(fiber),
3152
+ WaitMode::Callback(instance) => WorkItem::GuestCall(GuestCall {
3153
+ task: guest_task,
3154
+ kind: GuestCallKind::DeliverEvent {
3155
+ instance,
3156
+ set: None,
3157
+ },
3158
+ }),
3159
+ };
3160
+ concurrent_state.push_high_priority(item);
3161
+
3162
+ self.suspend(store, SuspendReason::Yielding { task: caller })?;
3163
+ }
3164
+
3165
+ let concurrent_state = self.concurrent_state_mut(store);
3166
+ let task = concurrent_state.get_mut(guest_task)?;
3167
+ if task.lift_result.is_some() {
3168
+ // Still not yet returned or cancelled; if `async_`, return
3169
+ // `BLOCKED`; otherwise wait
3170
+ if async_ {
3171
+ return Ok(BLOCKED);
3172
+ } else {
3173
+ let waitable = Waitable::Guest(guest_task);
3174
+ let old_set = waitable.common(concurrent_state)?.set;
3175
+ let set = concurrent_state.get_mut(caller)?.sync_call_set;
3176
+ waitable.join(concurrent_state, Some(set))?;
3177
+
3178
+ self.suspend(store, SuspendReason::Waiting { set, task: caller })?;
3179
+
3180
+ waitable.join(self.concurrent_state_mut(store), old_set)?;
3181
+ }
3182
+ }
3183
+ }
3184
+ }
3185
+
3186
+ let event = waitable.take_event(self.concurrent_state_mut(store))?;
3187
+ if let Some(Event::Subtask {
3188
+ status: status @ (Status::Returned | Status::ReturnCancelled),
3189
+ }) = event
3190
+ {
3191
+ Ok(status as u32)
3192
+ } else {
3193
+ bail!("`subtask.cancel` called after terminal status delivered");
3194
+ }
3195
+ }
3196
+
3197
+ /// Configures TLS state so `store` will be available via `tls::get` within
3198
+ /// the closure `f` provided.
3199
+ ///
3200
+ /// This is used to ensure that `Future::poll`, which doesn't take a `store`
3201
+ /// parameter, is able to get access to the `store` during future poll
3202
+ /// methods.
3203
+ fn set_tls<R>(self, store: &mut dyn VMStore, f: impl FnOnce() -> R) -> R {
3204
+ struct Reset<'a>(&'a mut dyn VMStore, Option<ComponentInstanceId>);
3205
+
3206
+ impl Drop for Reset<'_> {
3207
+ fn drop(&mut self) {
3208
+ self.0.concurrent_async_state_mut().current_instance = self.1;
3209
+ }
3210
+ }
3211
+ let prev = mem::replace(
3212
+ &mut store.concurrent_async_state_mut().current_instance,
3213
+ Some(self.id().instance()),
3214
+ );
3215
+ let reset = Reset(store, prev);
3216
+
3217
+ tls::set(reset.0, f)
3218
+ }
3219
+
3220
+ /// Convenience function to reduce boilerplate.
3221
+ pub(crate) fn concurrent_state_mut<'a>(
3222
+ &self,
3223
+ store: &'a mut StoreOpaque,
3224
+ ) -> &'a mut ConcurrentState {
3225
+ self.id().get_mut(store).concurrent_state_mut()
3226
+ }
3227
+ }
3228
+
3229
+ /// Trait representing component model ABI async intrinsics and fused adapter
3230
+ /// helper functions.
3231
+ ///
3232
+ /// SAFETY (callers): Most of the methods in this trait accept raw pointers,
3233
+ /// which must be valid for at least the duration of the call (and possibly for
3234
+ /// as long as the relevant guest task exists, in the case of `*mut VMFuncRef`
3235
+ /// pointers used for async calls).
3236
+ pub trait VMComponentAsyncStore {
3237
+ /// A helper function for fused adapter modules involving calls where the
3238
+ /// one of the caller or callee is async.
3239
+ ///
3240
+ /// This helper is not used when the caller and callee both use the sync
3241
+ /// ABI, only when at least one is async is this used.
3242
+ unsafe fn prepare_call(
3243
+ &mut self,
3244
+ instance: Instance,
3245
+ memory: *mut VMMemoryDefinition,
3246
+ start: *mut VMFuncRef,
3247
+ return_: *mut VMFuncRef,
3248
+ caller_instance: RuntimeComponentInstanceIndex,
3249
+ callee_instance: RuntimeComponentInstanceIndex,
3250
+ task_return_type: TypeTupleIndex,
3251
+ string_encoding: u8,
3252
+ result_count: u32,
3253
+ storage: *mut ValRaw,
3254
+ storage_len: usize,
3255
+ ) -> Result<()>;
3256
+
3257
+ /// A helper function for fused adapter modules involving calls where the
3258
+ /// caller is sync-lowered but the callee is async-lifted.
3259
+ unsafe fn sync_start(
3260
+ &mut self,
3261
+ instance: Instance,
3262
+ callback: *mut VMFuncRef,
3263
+ callee: *mut VMFuncRef,
3264
+ param_count: u32,
3265
+ storage: *mut MaybeUninit<ValRaw>,
3266
+ storage_len: usize,
3267
+ ) -> Result<()>;
3268
+
3269
+ /// A helper function for fused adapter modules involving calls where the
3270
+ /// caller is async-lowered.
3271
+ unsafe fn async_start(
3272
+ &mut self,
3273
+ instance: Instance,
3274
+ callback: *mut VMFuncRef,
3275
+ post_return: *mut VMFuncRef,
3276
+ callee: *mut VMFuncRef,
3277
+ param_count: u32,
3278
+ result_count: u32,
3279
+ flags: u32,
3280
+ ) -> Result<u32>;
3281
+
3282
+ /// The `future.write` intrinsic.
3283
+ fn future_write(
3284
+ &mut self,
3285
+ instance: Instance,
3286
+ ty: TypeFutureTableIndex,
3287
+ options: OptionsIndex,
3288
+ future: u32,
3289
+ address: u32,
3290
+ ) -> Result<u32>;
3291
+
3292
+ /// The `future.read` intrinsic.
3293
+ fn future_read(
3294
+ &mut self,
3295
+ instance: Instance,
3296
+ ty: TypeFutureTableIndex,
3297
+ options: OptionsIndex,
3298
+ future: u32,
3299
+ address: u32,
3300
+ ) -> Result<u32>;
3301
+
3302
+ /// The `future.drop-writable` intrinsic.
3303
+ fn future_drop_writable(
3304
+ &mut self,
3305
+ instance: Instance,
3306
+ ty: TypeFutureTableIndex,
3307
+ writer: u32,
3308
+ ) -> Result<()>;
3309
+
3310
+ /// The `stream.write` intrinsic.
3311
+ fn stream_write(
3312
+ &mut self,
3313
+ instance: Instance,
3314
+ ty: TypeStreamTableIndex,
3315
+ options: OptionsIndex,
3316
+ stream: u32,
3317
+ address: u32,
3318
+ count: u32,
3319
+ ) -> Result<u32>;
3320
+
3321
+ /// The `stream.read` intrinsic.
3322
+ fn stream_read(
3323
+ &mut self,
3324
+ instance: Instance,
3325
+ ty: TypeStreamTableIndex,
3326
+ options: OptionsIndex,
3327
+ stream: u32,
3328
+ address: u32,
3329
+ count: u32,
3330
+ ) -> Result<u32>;
3331
+
3332
+ /// The "fast-path" implementation of the `stream.write` intrinsic for
3333
+ /// "flat" (i.e. memcpy-able) payloads.
3334
+ fn flat_stream_write(
3335
+ &mut self,
3336
+ instance: Instance,
3337
+ ty: TypeStreamTableIndex,
3338
+ options: OptionsIndex,
3339
+ payload_size: u32,
3340
+ payload_align: u32,
3341
+ stream: u32,
3342
+ address: u32,
3343
+ count: u32,
3344
+ ) -> Result<u32>;
3345
+
3346
+ /// The "fast-path" implementation of the `stream.read` intrinsic for "flat"
3347
+ /// (i.e. memcpy-able) payloads.
3348
+ fn flat_stream_read(
3349
+ &mut self,
3350
+ instance: Instance,
3351
+ ty: TypeStreamTableIndex,
3352
+ options: OptionsIndex,
3353
+ payload_size: u32,
3354
+ payload_align: u32,
3355
+ stream: u32,
3356
+ address: u32,
3357
+ count: u32,
3358
+ ) -> Result<u32>;
3359
+
3360
+ /// The `stream.drop-writable` intrinsic.
3361
+ fn stream_drop_writable(
3362
+ &mut self,
3363
+ instance: Instance,
3364
+ ty: TypeStreamTableIndex,
3365
+ writer: u32,
3366
+ ) -> Result<()>;
3367
+
3368
+ /// The `error-context.debug-message` intrinsic.
3369
+ fn error_context_debug_message(
3370
+ &mut self,
3371
+ instance: Instance,
3372
+ ty: TypeComponentLocalErrorContextTableIndex,
3373
+ options: OptionsIndex,
3374
+ err_ctx_handle: u32,
3375
+ debug_msg_address: u32,
3376
+ ) -> Result<()>;
3377
+ }
3378
+
3379
+ /// SAFETY: See trait docs.
3380
+ impl<T: 'static> VMComponentAsyncStore for StoreInner<T> {
3381
+ unsafe fn prepare_call(
3382
+ &mut self,
3383
+ instance: Instance,
3384
+ memory: *mut VMMemoryDefinition,
3385
+ start: *mut VMFuncRef,
3386
+ return_: *mut VMFuncRef,
3387
+ caller_instance: RuntimeComponentInstanceIndex,
3388
+ callee_instance: RuntimeComponentInstanceIndex,
3389
+ task_return_type: TypeTupleIndex,
3390
+ string_encoding: u8,
3391
+ result_count_or_max_if_async: u32,
3392
+ storage: *mut ValRaw,
3393
+ storage_len: usize,
3394
+ ) -> Result<()> {
3395
+ // SAFETY: The `wasmtime_cranelift`-generated code that calls
3396
+ // this method will have ensured that `storage` is a valid
3397
+ // pointer containing at least `storage_len` items.
3398
+ let params = unsafe { std::slice::from_raw_parts(storage, storage_len) }.to_vec();
3399
+
3400
+ unsafe {
3401
+ instance.prepare_call(
3402
+ StoreContextMut(self),
3403
+ start,
3404
+ return_,
3405
+ caller_instance,
3406
+ callee_instance,
3407
+ task_return_type,
3408
+ memory,
3409
+ string_encoding,
3410
+ match result_count_or_max_if_async {
3411
+ PREPARE_ASYNC_NO_RESULT => CallerInfo::Async {
3412
+ params,
3413
+ has_result: false,
3414
+ },
3415
+ PREPARE_ASYNC_WITH_RESULT => CallerInfo::Async {
3416
+ params,
3417
+ has_result: true,
3418
+ },
3419
+ result_count => CallerInfo::Sync {
3420
+ params,
3421
+ result_count,
3422
+ },
3423
+ },
3424
+ )
3425
+ }
3426
+ }
3427
+
3428
+ unsafe fn sync_start(
3429
+ &mut self,
3430
+ instance: Instance,
3431
+ callback: *mut VMFuncRef,
3432
+ callee: *mut VMFuncRef,
3433
+ param_count: u32,
3434
+ storage: *mut MaybeUninit<ValRaw>,
3435
+ storage_len: usize,
3436
+ ) -> Result<()> {
3437
+ unsafe {
3438
+ instance
3439
+ .start_call(
3440
+ StoreContextMut(self),
3441
+ callback,
3442
+ ptr::null_mut(),
3443
+ callee,
3444
+ param_count,
3445
+ 1,
3446
+ START_FLAG_ASYNC_CALLEE,
3447
+ // SAFETY: The `wasmtime_cranelift`-generated code that calls
3448
+ // this method will have ensured that `storage` is a valid
3449
+ // pointer containing at least `storage_len` items.
3450
+ Some(std::slice::from_raw_parts_mut(storage, storage_len)),
3451
+ )
3452
+ .map(drop)
3453
+ }
3454
+ }
3455
+
3456
+ unsafe fn async_start(
3457
+ &mut self,
3458
+ instance: Instance,
3459
+ callback: *mut VMFuncRef,
3460
+ post_return: *mut VMFuncRef,
3461
+ callee: *mut VMFuncRef,
3462
+ param_count: u32,
3463
+ result_count: u32,
3464
+ flags: u32,
3465
+ ) -> Result<u32> {
3466
+ unsafe {
3467
+ instance.start_call(
3468
+ StoreContextMut(self),
3469
+ callback,
3470
+ post_return,
3471
+ callee,
3472
+ param_count,
3473
+ result_count,
3474
+ flags,
3475
+ None,
3476
+ )
3477
+ }
3478
+ }
3479
+
3480
+ fn future_write(
3481
+ &mut self,
3482
+ instance: Instance,
3483
+ ty: TypeFutureTableIndex,
3484
+ options: OptionsIndex,
3485
+ future: u32,
3486
+ address: u32,
3487
+ ) -> Result<u32> {
3488
+ instance
3489
+ .guest_write(
3490
+ StoreContextMut(self),
3491
+ TableIndex::Future(ty),
3492
+ options,
3493
+ None,
3494
+ future,
3495
+ address,
3496
+ 1,
3497
+ )
3498
+ .map(|result| result.encode())
3499
+ }
3500
+
3501
+ fn future_read(
3502
+ &mut self,
3503
+ instance: Instance,
3504
+ ty: TypeFutureTableIndex,
3505
+ options: OptionsIndex,
3506
+ future: u32,
3507
+ address: u32,
3508
+ ) -> Result<u32> {
3509
+ instance
3510
+ .guest_read(
3511
+ StoreContextMut(self),
3512
+ TableIndex::Future(ty),
3513
+ options,
3514
+ None,
3515
+ future,
3516
+ address,
3517
+ 1,
3518
+ )
3519
+ .map(|result| result.encode())
3520
+ }
3521
+
3522
+ fn stream_write(
3523
+ &mut self,
3524
+ instance: Instance,
3525
+ ty: TypeStreamTableIndex,
3526
+ options: OptionsIndex,
3527
+ stream: u32,
3528
+ address: u32,
3529
+ count: u32,
3530
+ ) -> Result<u32> {
3531
+ instance
3532
+ .guest_write(
3533
+ StoreContextMut(self),
3534
+ TableIndex::Stream(ty),
3535
+ options,
3536
+ None,
3537
+ stream,
3538
+ address,
3539
+ count,
3540
+ )
3541
+ .map(|result| result.encode())
3542
+ }
3543
+
3544
+ fn stream_read(
3545
+ &mut self,
3546
+ instance: Instance,
3547
+ ty: TypeStreamTableIndex,
3548
+ options: OptionsIndex,
3549
+ stream: u32,
3550
+ address: u32,
3551
+ count: u32,
3552
+ ) -> Result<u32> {
3553
+ instance
3554
+ .guest_read(
3555
+ StoreContextMut(self),
3556
+ TableIndex::Stream(ty),
3557
+ options,
3558
+ None,
3559
+ stream,
3560
+ address,
3561
+ count,
3562
+ )
3563
+ .map(|result| result.encode())
3564
+ }
3565
+
3566
+ fn future_drop_writable(
3567
+ &mut self,
3568
+ instance: Instance,
3569
+ ty: TypeFutureTableIndex,
3570
+ writer: u32,
3571
+ ) -> Result<()> {
3572
+ instance.guest_drop_writable(StoreContextMut(self), TableIndex::Future(ty), writer)
3573
+ }
3574
+
3575
+ fn flat_stream_write(
3576
+ &mut self,
3577
+ instance: Instance,
3578
+ ty: TypeStreamTableIndex,
3579
+ options: OptionsIndex,
3580
+ payload_size: u32,
3581
+ payload_align: u32,
3582
+ stream: u32,
3583
+ address: u32,
3584
+ count: u32,
3585
+ ) -> Result<u32> {
3586
+ instance
3587
+ .guest_write(
3588
+ StoreContextMut(self),
3589
+ TableIndex::Stream(ty),
3590
+ options,
3591
+ Some(FlatAbi {
3592
+ size: payload_size,
3593
+ align: payload_align,
3594
+ }),
3595
+ stream,
3596
+ address,
3597
+ count,
3598
+ )
3599
+ .map(|result| result.encode())
3600
+ }
3601
+
3602
+ fn flat_stream_read(
3603
+ &mut self,
3604
+ instance: Instance,
3605
+ ty: TypeStreamTableIndex,
3606
+ options: OptionsIndex,
3607
+ payload_size: u32,
3608
+ payload_align: u32,
3609
+ stream: u32,
3610
+ address: u32,
3611
+ count: u32,
3612
+ ) -> Result<u32> {
3613
+ instance
3614
+ .guest_read(
3615
+ StoreContextMut(self),
3616
+ TableIndex::Stream(ty),
3617
+ options,
3618
+ Some(FlatAbi {
3619
+ size: payload_size,
3620
+ align: payload_align,
3621
+ }),
3622
+ stream,
3623
+ address,
3624
+ count,
3625
+ )
3626
+ .map(|result| result.encode())
3627
+ }
3628
+
3629
+ fn stream_drop_writable(
3630
+ &mut self,
3631
+ instance: Instance,
3632
+ ty: TypeStreamTableIndex,
3633
+ writer: u32,
3634
+ ) -> Result<()> {
3635
+ instance.guest_drop_writable(StoreContextMut(self), TableIndex::Stream(ty), writer)
3636
+ }
3637
+
3638
+ fn error_context_debug_message(
3639
+ &mut self,
3640
+ instance: Instance,
3641
+ ty: TypeComponentLocalErrorContextTableIndex,
3642
+ options: OptionsIndex,
3643
+ err_ctx_handle: u32,
3644
+ debug_msg_address: u32,
3645
+ ) -> Result<()> {
3646
+ instance.error_context_debug_message(
3647
+ StoreContextMut(self),
3648
+ ty,
3649
+ options,
3650
+ err_ctx_handle,
3651
+ debug_msg_address,
3652
+ )
3653
+ }
3654
+ }
3655
+
3656
+ /// Represents the output of a host task or background task.
3657
+ pub(crate) enum HostTaskOutput {
3658
+ /// A plain result
3659
+ Result(Result<()>),
3660
+ /// A function to be run after the future completes (e.g. post-processing
3661
+ /// which requires access to the store and instance).
3662
+ Function(Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send>),
3663
+ }
3664
+
3665
+ impl HostTaskOutput {
3666
+ /// Retrieve the result of the host or background task, running the
3667
+ /// post-processing function if present.
3668
+ fn consume(self, store: &mut dyn VMStore, instance: Instance) -> Result<()> {
3669
+ match self {
3670
+ Self::Function(fun) => fun(store, instance),
3671
+ Self::Result(result) => result,
3672
+ }
3673
+ }
3674
+ }
3675
+
3676
+ type HostTaskFuture = Pin<Box<dyn Future<Output = HostTaskOutput> + Send + 'static>>;
3677
+
3678
+ /// Represents the state of a pending host task.
3679
+ struct HostTask {
3680
+ common: WaitableCommon,
3681
+ caller_instance: RuntimeComponentInstanceIndex,
3682
+ abort_handle: Option<AbortHandle>,
3683
+ }
3684
+
3685
+ impl HostTask {
3686
+ fn new(
3687
+ caller_instance: RuntimeComponentInstanceIndex,
3688
+ abort_handle: Option<AbortHandle>,
3689
+ ) -> Self {
3690
+ Self {
3691
+ common: WaitableCommon::default(),
3692
+ caller_instance,
3693
+ abort_handle,
3694
+ }
3695
+ }
3696
+ }
3697
+
3698
+ impl TableDebug for HostTask {
3699
+ fn type_name() -> &'static str {
3700
+ "HostTask"
3701
+ }
3702
+ }
3703
+
3704
+ type CallbackFn = Box<
3705
+ dyn Fn(&mut dyn VMStore, Instance, RuntimeComponentInstanceIndex, Event, u32) -> Result<u32>
3706
+ + Send
3707
+ + Sync
3708
+ + 'static,
3709
+ >;
3710
+
3711
+ /// Represents the caller of a given guest task.
3712
+ enum Caller {
3713
+ /// The host called the guest task.
3714
+ Host {
3715
+ /// If present, may be used to deliver the result.
3716
+ tx: Option<oneshot::Sender<LiftedResult>>,
3717
+ /// If true, remove the task from the concurrent state that owns it
3718
+ /// automatically after it completes.
3719
+ remove_task_automatically: bool,
3720
+ /// If true, call `post-return` function (if any) automatically.
3721
+ call_post_return_automatically: bool,
3722
+ },
3723
+ /// Another guest task called the guest task
3724
+ Guest {
3725
+ /// The id of the caller
3726
+ task: TableId<GuestTask>,
3727
+ /// The instance to use to enforce reentrance rules.
3728
+ ///
3729
+ /// Note that this might not be the same as the instance the caller task
3730
+ /// started executing in given that one or more synchronous guest->guest
3731
+ /// calls may have occurred involving multiple instances.
3732
+ instance: RuntimeComponentInstanceIndex,
3733
+ },
3734
+ }
3735
+
3736
+ /// Represents a closure and related canonical ABI parameters required to
3737
+ /// validate a `task.return` call at runtime and lift the result.
3738
+ struct LiftResult {
3739
+ lift: RawLift,
3740
+ ty: TypeTupleIndex,
3741
+ memory: Option<SendSyncPtr<VMMemoryDefinition>>,
3742
+ string_encoding: StringEncoding,
3743
+ }
3744
+
3745
+ /// Represents a pending guest task.
3746
+ struct GuestTask {
3747
+ /// See `WaitableCommon`
3748
+ common: WaitableCommon,
3749
+ /// Closure to lower the parameters passed to this task.
3750
+ lower_params: Option<RawLower>,
3751
+ /// See `LiftResult`
3752
+ lift_result: Option<LiftResult>,
3753
+ /// A place to stash the type-erased lifted result if it can't be delivered
3754
+ /// immediately.
3755
+ result: Option<LiftedResult>,
3756
+ /// Closure to call the callback function for an async-lifted export, if
3757
+ /// provided.
3758
+ callback: Option<CallbackFn>,
3759
+ /// See `Caller`
3760
+ caller: Caller,
3761
+ /// A place to stash the call context for managing resource borrows while
3762
+ /// switching between guest tasks.
3763
+ call_context: Option<CallContext>,
3764
+ /// A place to stash the lowered result for a sync-to-async call until it
3765
+ /// can be returned to the caller.
3766
+ sync_result: Option<Option<ValRaw>>,
3767
+ /// Whether or not the task has been cancelled (i.e. whether the task is
3768
+ /// permitted to call `task.cancel`).
3769
+ cancel_sent: bool,
3770
+ /// Whether or not we've sent a `Status::Starting` event to any current or
3771
+ /// future waiters for this waitable.
3772
+ starting_sent: bool,
3773
+ /// Context-local state used to implement the `context.{get,set}`
3774
+ /// intrinsics.
3775
+ context: [u32; 2],
3776
+ /// Pending guest subtasks created by this task (directly or indirectly).
3777
+ ///
3778
+ /// This is used to re-parent subtasks which are still running when their
3779
+ /// parent task is disposed.
3780
+ subtasks: HashSet<TableId<GuestTask>>,
3781
+ /// Scratch waitable set used to watch subtasks during synchronous calls.
3782
+ sync_call_set: TableId<WaitableSet>,
3783
+ /// The instance to which the exported function for this guest task belongs.
3784
+ ///
3785
+ /// Note that the task may do a sync->sync call via a fused adapter which
3786
+ /// results in that task executing code in a different instance, and it may
3787
+ /// call host functions and intrinsics from that other instance.
3788
+ instance: RuntimeComponentInstanceIndex,
3789
+ /// If present, a pending `Event::None` or `Event::Cancelled` to be
3790
+ /// delivered to this task.
3791
+ event: Option<Event>,
3792
+ /// If present, indicates that the task is currently waiting on the
3793
+ /// specified set but may be cancelled and woken immediately.
3794
+ wake_on_cancel: Option<TableId<WaitableSet>>,
3795
+ /// The `ExportIndex` of the guest function being called, if known.
3796
+ function_index: Option<ExportIndex>,
3797
+ /// Whether or not the task has exited.
3798
+ exited: bool,
3799
+ }
3800
+
3801
+ impl GuestTask {
3802
+ fn new(
3803
+ state: &mut ConcurrentState,
3804
+ lower_params: RawLower,
3805
+ lift_result: LiftResult,
3806
+ caller: Caller,
3807
+ callback: Option<CallbackFn>,
3808
+ component_instance: RuntimeComponentInstanceIndex,
3809
+ ) -> Result<Self> {
3810
+ let sync_call_set = state.push(WaitableSet::default())?;
3811
+
3812
+ Ok(Self {
3813
+ common: WaitableCommon::default(),
3814
+ lower_params: Some(lower_params),
3815
+ lift_result: Some(lift_result),
3816
+ result: None,
3817
+ callback,
3818
+ caller,
3819
+ call_context: Some(CallContext::default()),
3820
+ sync_result: None,
3821
+ cancel_sent: false,
3822
+ starting_sent: false,
3823
+ context: [0u32; 2],
3824
+ subtasks: HashSet::new(),
3825
+ sync_call_set,
3826
+ instance: component_instance,
3827
+ event: None,
3828
+ wake_on_cancel: None,
3829
+ function_index: None,
3830
+ exited: false,
3831
+ })
3832
+ }
3833
+
3834
+ /// Dispose of this guest task, reparenting any pending subtasks to the
3835
+ /// caller.
3836
+ fn dispose(self, state: &mut ConcurrentState, me: TableId<GuestTask>) -> Result<()> {
3837
+ // If there are not-yet-delivered completion events for subtasks in
3838
+ // `self.sync_call_set`, recursively dispose of those subtasks as well.
3839
+ for waitable in mem::take(&mut state.get_mut(self.sync_call_set)?.ready) {
3840
+ if let Some(Event::Subtask {
3841
+ status: Status::Returned | Status::ReturnCancelled,
3842
+ }) = waitable.common(state)?.event
3843
+ {
3844
+ waitable.delete_from(state)?;
3845
+ }
3846
+ }
3847
+
3848
+ state.delete(self.sync_call_set)?;
3849
+
3850
+ // Reparent any pending subtasks to the caller.
3851
+ if let Caller::Guest {
3852
+ task,
3853
+ instance: runtime_instance,
3854
+ } = &self.caller
3855
+ {
3856
+ let task_mut = state.get_mut(*task)?;
3857
+ let present = task_mut.subtasks.remove(&me);
3858
+ assert!(present);
3859
+
3860
+ for subtask in &self.subtasks {
3861
+ task_mut.subtasks.insert(*subtask);
3862
+ }
3863
+
3864
+ for subtask in &self.subtasks {
3865
+ state.get_mut(*subtask)?.caller = Caller::Guest {
3866
+ task: *task,
3867
+ instance: *runtime_instance,
3868
+ };
3869
+ }
3870
+ } else {
3871
+ for subtask in &self.subtasks {
3872
+ state.get_mut(*subtask)?.caller = Caller::Host {
3873
+ tx: None,
3874
+ remove_task_automatically: true,
3875
+ call_post_return_automatically: true,
3876
+ };
3877
+ }
3878
+ }
3879
+
3880
+ Ok(())
3881
+ }
3882
+
3883
+ fn call_post_return_automatically(&self) -> bool {
3884
+ matches!(
3885
+ self.caller,
3886
+ Caller::Guest { .. }
3887
+ | Caller::Host {
3888
+ call_post_return_automatically: true,
3889
+ ..
3890
+ }
3891
+ )
3892
+ }
3893
+ }
3894
+
3895
+ impl TableDebug for GuestTask {
3896
+ fn type_name() -> &'static str {
3897
+ "GuestTask"
3898
+ }
3899
+ }
3900
+
3901
+ /// Represents state common to all kinds of waitables.
3902
+ #[derive(Default)]
3903
+ struct WaitableCommon {
3904
+ /// The currently pending event for this waitable, if any.
3905
+ event: Option<Event>,
3906
+ /// The set to which this waitable belongs, if any.
3907
+ set: Option<TableId<WaitableSet>>,
3908
+ }
3909
+
3910
+ /// Represents a Component Model Async `waitable`.
3911
+ #[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq)]
3912
+ enum Waitable {
3913
+ /// A host task
3914
+ Host(TableId<HostTask>),
3915
+ /// A guest task
3916
+ Guest(TableId<GuestTask>),
3917
+ /// The read or write end of a stream or future
3918
+ Transmit(TableId<TransmitHandle>),
3919
+ }
3920
+
3921
+ impl Waitable {
3922
+ /// Retrieve the `Waitable` corresponding to the specified guest-visible
3923
+ /// handle.
3924
+ fn from_instance(
3925
+ state: &mut ConcurrentState,
3926
+ caller_instance: RuntimeComponentInstanceIndex,
3927
+ waitable: u32,
3928
+ ) -> Result<Self> {
3929
+ let (waitable, state) =
3930
+ state.waitable_tables[caller_instance].get_mut_by_index(waitable)?;
3931
+
3932
+ Ok(match state {
3933
+ WaitableState::HostTask => Waitable::Host(TableId::new(waitable)),
3934
+ WaitableState::GuestTask => Waitable::Guest(TableId::new(waitable)),
3935
+ WaitableState::Stream(..) | WaitableState::Future(..) => {
3936
+ Waitable::Transmit(TableId::new(waitable))
3937
+ }
3938
+ _ => bail!("invalid waitable handle"),
3939
+ })
3940
+ }
3941
+
3942
+ /// Retrieve the host-visible identifier for this `Waitable`.
3943
+ fn rep(&self) -> u32 {
3944
+ match self {
3945
+ Self::Host(id) => id.rep(),
3946
+ Self::Guest(id) => id.rep(),
3947
+ Self::Transmit(id) => id.rep(),
3948
+ }
3949
+ }
3950
+
3951
+ /// Move this `Waitable` to the specified set (when `set` is `Some(_)`) or
3952
+ /// remove it from any set it may currently belong to (when `set` is
3953
+ /// `None`).
3954
+ fn join(&self, state: &mut ConcurrentState, set: Option<TableId<WaitableSet>>) -> Result<()> {
3955
+ log::trace!("waitable {self:?} join set {set:?}",);
3956
+
3957
+ let old = mem::replace(&mut self.common(state)?.set, set);
3958
+
3959
+ if let Some(old) = old {
3960
+ match *self {
3961
+ Waitable::Host(id) => state.remove_child(id, old),
3962
+ Waitable::Guest(id) => state.remove_child(id, old),
3963
+ Waitable::Transmit(id) => state.remove_child(id, old),
3964
+ }?;
3965
+
3966
+ state.get_mut(old)?.ready.remove(self);
3967
+ }
3968
+
3969
+ if let Some(set) = set {
3970
+ match *self {
3971
+ Waitable::Host(id) => state.add_child(id, set),
3972
+ Waitable::Guest(id) => state.add_child(id, set),
3973
+ Waitable::Transmit(id) => state.add_child(id, set),
3974
+ }?;
3975
+
3976
+ if self.common(state)?.event.is_some() {
3977
+ self.mark_ready(state)?;
3978
+ }
3979
+ }
3980
+
3981
+ Ok(())
3982
+ }
3983
+
3984
+ /// Retrieve mutable access to the `WaitableCommon` for this `Waitable`.
3985
+ fn common<'a>(&self, state: &'a mut ConcurrentState) -> Result<&'a mut WaitableCommon> {
3986
+ Ok(match self {
3987
+ Self::Host(id) => &mut state.get_mut(*id)?.common,
3988
+ Self::Guest(id) => &mut state.get_mut(*id)?.common,
3989
+ Self::Transmit(id) => &mut state.get_mut(*id)?.common,
3990
+ })
3991
+ }
3992
+
3993
+ /// Set or clear the pending event for this waitable and either deliver it
3994
+ /// to the first waiter, if any, or mark it as ready to be delivered to the
3995
+ /// next waiter that arrives.
3996
+ fn set_event(&self, state: &mut ConcurrentState, event: Option<Event>) -> Result<()> {
3997
+ log::trace!("set event for {self:?}: {event:?}");
3998
+ self.common(state)?.event = event;
3999
+ self.mark_ready(state)
4000
+ }
4001
+
4002
+ /// Take the pending event from this waitable, leaving `None` in its place.
4003
+ fn take_event(&self, state: &mut ConcurrentState) -> Result<Option<Event>> {
4004
+ let common = self.common(state)?;
4005
+ let event = common.event.take();
4006
+ if let Some(set) = self.common(state)?.set {
4007
+ state.get_mut(set)?.ready.remove(self);
4008
+ }
4009
+ Ok(event)
4010
+ }
4011
+
4012
+ /// Deliver the current event for this waitable to the first waiter, if any,
4013
+ /// or else mark it as ready to be delivered to the next waiter that
4014
+ /// arrives.
4015
+ fn mark_ready(&self, state: &mut ConcurrentState) -> Result<()> {
4016
+ if let Some(set) = self.common(state)?.set {
4017
+ state.get_mut(set)?.ready.insert(*self);
4018
+ if let Some((task, mode)) = state.get_mut(set)?.waiting.pop_first() {
4019
+ let wake_on_cancel = state.get_mut(task)?.wake_on_cancel.take();
4020
+ assert!(wake_on_cancel.is_none() || wake_on_cancel == Some(set));
4021
+
4022
+ let item = match mode {
4023
+ WaitMode::Fiber(fiber) => WorkItem::ResumeFiber(fiber),
4024
+ WaitMode::Callback(instance) => WorkItem::GuestCall(GuestCall {
4025
+ task,
4026
+ kind: GuestCallKind::DeliverEvent {
4027
+ instance,
4028
+ set: Some(set),
4029
+ },
4030
+ }),
4031
+ };
4032
+ state.push_high_priority(item);
4033
+ }
4034
+ }
4035
+ Ok(())
4036
+ }
4037
+
4038
+ /// Handle the imminent delivery of the specified event, e.g. by updating
4039
+ /// the state of the stream or future.
4040
+ fn on_delivery(&self, state: &mut ConcurrentState, event: Event) {
4041
+ match event {
4042
+ Event::FutureRead {
4043
+ pending: Some((ty, handle)),
4044
+ ..
4045
+ }
4046
+ | Event::FutureWrite {
4047
+ pending: Some((ty, handle)),
4048
+ ..
4049
+ } => {
4050
+ let runtime_instance = state.component.types()[ty].instance;
4051
+ let (rep, WaitableState::Future(actual_ty, state)) = state.waitable_tables
4052
+ [runtime_instance]
4053
+ .get_mut_by_index(handle)
4054
+ .unwrap()
4055
+ else {
4056
+ unreachable!()
4057
+ };
4058
+ assert_eq!(*actual_ty, ty);
4059
+ assert_eq!(rep, self.rep());
4060
+ assert_eq!(*state, StreamFutureState::Busy);
4061
+ *state = match event {
4062
+ Event::FutureRead { .. } => StreamFutureState::Read { done: false },
4063
+ Event::FutureWrite { .. } => StreamFutureState::Write { done: false },
4064
+ _ => unreachable!(),
4065
+ };
4066
+ }
4067
+ Event::StreamRead {
4068
+ pending: Some((ty, handle)),
4069
+ code,
4070
+ }
4071
+ | Event::StreamWrite {
4072
+ pending: Some((ty, handle)),
4073
+ code,
4074
+ } => {
4075
+ let runtime_instance = state.component.types()[ty].instance;
4076
+ let (rep, WaitableState::Stream(actual_ty, state)) = state.waitable_tables
4077
+ [runtime_instance]
4078
+ .get_mut_by_index(handle)
4079
+ .unwrap()
4080
+ else {
4081
+ unreachable!()
4082
+ };
4083
+ assert_eq!(*actual_ty, ty);
4084
+ assert_eq!(rep, self.rep());
4085
+ assert_eq!(*state, StreamFutureState::Busy);
4086
+ let done = matches!(code, ReturnCode::Dropped(_));
4087
+ *state = match event {
4088
+ Event::StreamRead { .. } => StreamFutureState::Read { done },
4089
+ Event::StreamWrite { .. } => StreamFutureState::Write { done },
4090
+ _ => unreachable!(),
4091
+ };
4092
+ }
4093
+ _ => {}
4094
+ }
4095
+ }
4096
+
4097
+ /// Remove this waitable from the instance's rep table.
4098
+ fn delete_from(&self, state: &mut ConcurrentState) -> Result<()> {
4099
+ match self {
4100
+ Self::Host(task) => {
4101
+ log::trace!("delete host task {task:?}");
4102
+ state.delete(*task)?;
4103
+ }
4104
+ Self::Guest(task) => {
4105
+ log::trace!("delete guest task {task:?}");
4106
+ state.delete(*task)?.dispose(state, *task)?;
4107
+ }
4108
+ Self::Transmit(task) => {
4109
+ state.delete(*task)?;
4110
+ }
4111
+ }
4112
+
4113
+ Ok(())
4114
+ }
4115
+ }
4116
+
4117
+ impl fmt::Debug for Waitable {
4118
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
4119
+ match self {
4120
+ Self::Host(id) => write!(f, "{id:?}"),
4121
+ Self::Guest(id) => write!(f, "{id:?}"),
4122
+ Self::Transmit(id) => write!(f, "{id:?}"),
4123
+ }
4124
+ }
4125
+ }
4126
+
4127
+ /// Represents a Component Model Async `waitable-set`.
4128
+ #[derive(Default)]
4129
+ struct WaitableSet {
4130
+ /// Which waitables in this set have pending events, if any.
4131
+ ready: BTreeSet<Waitable>,
4132
+ /// Which guest tasks are currently waiting on this set, if any.
4133
+ waiting: BTreeMap<TableId<GuestTask>, WaitMode>,
4134
+ }
4135
+
4136
+ impl TableDebug for WaitableSet {
4137
+ fn type_name() -> &'static str {
4138
+ "WaitableSet"
4139
+ }
4140
+ }
4141
+
4142
+ /// Type-erased closure to lower the parameters for a guest task.
4143
+ type RawLower = Box<
4144
+ dyn FnOnce(&mut dyn VMStore, Instance, &mut [MaybeUninit<ValRaw>]) -> Result<()> + Send + Sync,
4145
+ >;
4146
+
4147
+ /// Type-erased closure to lift the result for a guest task.
4148
+ type RawLift = Box<
4149
+ dyn FnOnce(&mut dyn VMStore, Instance, &[ValRaw]) -> Result<Box<dyn Any + Send + Sync>>
4150
+ + Send
4151
+ + Sync,
4152
+ >;
4153
+
4154
+ /// Type erased result of a guest task which may be downcast to the expected
4155
+ /// type by a host caller (or simply ignored in the case of a guest caller; see
4156
+ /// `DummyResult`).
4157
+ type LiftedResult = Box<dyn Any + Send + Sync>;
4158
+
4159
+ /// Used to return a result from a `LiftFn` when the actual result has already
4160
+ /// been lowered to a guest task's stack and linear memory.
4161
+ struct DummyResult;
4162
+
4163
+ /// Represents the state of a currently executing fiber which has been resumed
4164
+ /// via `self::poll_fn`.
4165
+ pub(crate) struct AsyncState {
4166
+ /// The current instance being polled, if any, which is used to perform
4167
+ /// checks to ensure that futures are always polled within the correct
4168
+ /// instance.
4169
+ current_instance: Option<ComponentInstanceId>,
4170
+ }
4171
+
4172
+ impl Default for AsyncState {
4173
+ fn default() -> Self {
4174
+ Self {
4175
+ current_instance: None,
4176
+ }
4177
+ }
4178
+ }
4179
+
4180
+ /// Represents the Component Model Async state of a (sub-)component instance.
4181
+ #[derive(Default)]
4182
+ struct InstanceState {
4183
+ /// Whether backpressure is set for this instance
4184
+ backpressure: bool,
4185
+ /// Whether this instance can be entered
4186
+ do_not_enter: bool,
4187
+ /// Pending calls for this instance which require `Self::backpressure` to be
4188
+ /// `true` and/or `Self::do_not_enter` to be false before they can proceed.
4189
+ pending: BTreeMap<TableId<GuestTask>, GuestCallKind>,
4190
+ }
4191
+
4192
+ /// Represents the Component Model Async state of a top-level component instance
4193
+ /// (i.e. a `super::ComponentInstance`).
4194
+ pub struct ConcurrentState {
4195
+ /// The currently running guest task, if any.
4196
+ guest_task: Option<TableId<GuestTask>>,
4197
+ /// The set of pending host and background tasks, if any.
4198
+ ///
4199
+ /// We must wrap this in a `Mutex` to ensure that `ComponentInstance` and
4200
+ /// `Store` satisfy a `Sync` bound, but it can't actually be accessed from
4201
+ /// more than one thread at a time.
4202
+ ///
4203
+ /// See `ComponentInstance::poll_until` for where we temporarily take this
4204
+ /// out, poll it, then put it back to avoid any mutable aliasing hazards.
4205
+ futures: Mutex<Option<FuturesUnordered<HostTaskFuture>>>,
4206
+ /// The table of waitables, waitable sets, etc.
4207
+ table: Table,
4208
+ /// Per (sub-)component instance states.
4209
+ ///
4210
+ /// See `InstanceState` for details and note that this map is lazily
4211
+ /// populated as needed.
4212
+ // TODO: this can and should be a `PrimaryMap`
4213
+ instance_states: HashMap<RuntimeComponentInstanceIndex, InstanceState>,
4214
+ /// Tables for tracking per-(sub-)component waitable handles and their
4215
+ /// states.
4216
+ waitable_tables: PrimaryMap<RuntimeComponentInstanceIndex, StateTable<WaitableState>>,
4217
+ /// The "high priority" work queue for this instance's event loop.
4218
+ high_priority: Vec<WorkItem>,
4219
+ /// The "high priority" work queue for this instance's event loop.
4220
+ low_priority: Vec<WorkItem>,
4221
+ /// A place to stash the reason a fiber is suspending so that the code which
4222
+ /// resumed it will know under what conditions the fiber should be resumed
4223
+ /// again.
4224
+ suspend_reason: Option<SuspendReason>,
4225
+ /// A cached fiber which is waiting for work to do.
4226
+ ///
4227
+ /// This helps us avoid creating a new fiber for each `GuestCall` work item.
4228
+ worker: Option<StoreFiber<'static>>,
4229
+ /// A place to stash the work item for which we're resuming a worker fiber.
4230
+ worker_item: Option<WorkerItem>,
4231
+
4232
+ /// (Sub)Component specific error context tracking
4233
+ ///
4234
+ /// At the component level, only the number of references (`usize`) to a given error context is tracked,
4235
+ /// with state related to the error context being held at the component model level, in concurrent
4236
+ /// state.
4237
+ ///
4238
+ /// The state tables in the (sub)component local tracking must contain a pointer into the global
4239
+ /// error context lookups in order to ensure that in contexts where only the local reference is present
4240
+ /// the global state can still be maintained/updated.
4241
+ error_context_tables:
4242
+ PrimaryMap<TypeComponentLocalErrorContextTableIndex, StateTable<LocalErrorContextRefCount>>,
4243
+
4244
+ /// Reference counts for all component error contexts
4245
+ ///
4246
+ /// NOTE: it is possible the global ref count to be *greater* than the sum of
4247
+ /// (sub)component ref counts as tracked by `error_context_tables`, for
4248
+ /// example when the host holds one or more references to error contexts.
4249
+ ///
4250
+ /// The key of this primary map is often referred to as the "rep" (i.e. host-side
4251
+ /// component-wide representation) of the index into concurrent state for a given
4252
+ /// stored `ErrorContext`.
4253
+ ///
4254
+ /// Stated another way, `TypeComponentGlobalErrorContextTableIndex` is essentially the same
4255
+ /// as a `TableId<ErrorContextState>`.
4256
+ global_error_context_ref_counts:
4257
+ BTreeMap<TypeComponentGlobalErrorContextTableIndex, GlobalErrorContextRefCount>,
4258
+
4259
+ /// Mirror of type information in `ComponentInstance`, placed here for
4260
+ /// convenience at the cost of an extra `Arc` clone.
4261
+ component: Component,
4262
+ }
4263
+
4264
+ impl ConcurrentState {
4265
+ pub(crate) fn new(component: &Component) -> Self {
4266
+ let num_waitable_tables = component.env_component().num_runtime_component_instances;
4267
+ let num_error_context_tables = component.env_component().num_error_context_tables;
4268
+ let mut waitable_tables =
4269
+ PrimaryMap::with_capacity(usize::try_from(num_waitable_tables).unwrap());
4270
+ for _ in 0..num_waitable_tables {
4271
+ waitable_tables.push(StateTable::default());
4272
+ }
4273
+
4274
+ let mut error_context_tables = PrimaryMap::<
4275
+ TypeComponentLocalErrorContextTableIndex,
4276
+ StateTable<LocalErrorContextRefCount>,
4277
+ >::with_capacity(num_error_context_tables);
4278
+ for _ in 0..num_error_context_tables {
4279
+ error_context_tables.push(StateTable::default());
4280
+ }
4281
+
4282
+ Self {
4283
+ guest_task: None,
4284
+ table: Table::new(),
4285
+ futures: Mutex::new(Some(FuturesUnordered::new())),
4286
+ instance_states: HashMap::new(),
4287
+ waitable_tables,
4288
+ high_priority: Vec::new(),
4289
+ low_priority: Vec::new(),
4290
+ suspend_reason: None,
4291
+ worker: None,
4292
+ worker_item: None,
4293
+ error_context_tables,
4294
+ global_error_context_ref_counts: BTreeMap::new(),
4295
+ component: component.clone(),
4296
+ }
4297
+ }
4298
+
4299
+ /// Take ownership of any fibers and futures owned by this object.
4300
+ ///
4301
+ /// This should be used when disposing of the `Store` containing this object
4302
+ /// in order to gracefully resolve any and all fibers using
4303
+ /// `StoreFiber::dispose`. This is necessary to avoid possible
4304
+ /// use-after-free bugs due to fibers which may still have access to the
4305
+ /// `Store`.
4306
+ ///
4307
+ /// Additionally, the futures collected with this function should be dropped
4308
+ /// within a `tls::set` call, which will ensure than any futures closing
4309
+ /// over an `&Accessor` will have access to the store when dropped, allowing
4310
+ /// e.g. `WithAccessor[AndValue]` instances to be disposed of without
4311
+ /// panicking.
4312
+ ///
4313
+ /// Note that this will leave the object in an inconsistent and unusable
4314
+ /// state, so it should only be used just prior to dropping it.
4315
+ pub(crate) fn take_fibers_and_futures(
4316
+ &mut self,
4317
+ fibers: &mut Vec<StoreFiber<'static>>,
4318
+ futures: &mut Vec<FuturesUnordered<HostTaskFuture>>,
4319
+ ) {
4320
+ for entry in self.table.iter_mut() {
4321
+ if let Some(set) = entry.downcast_mut::<WaitableSet>() {
4322
+ for mode in mem::take(&mut set.waiting).into_values() {
4323
+ if let WaitMode::Fiber(fiber) = mode {
4324
+ fibers.push(fiber);
4325
+ }
4326
+ }
4327
+ }
4328
+ }
4329
+
4330
+ if let Some(fiber) = self.worker.take() {
4331
+ fibers.push(fiber);
4332
+ }
4333
+
4334
+ let mut take_items = |list| {
4335
+ for item in mem::take(list) {
4336
+ match item {
4337
+ WorkItem::ResumeFiber(fiber) => {
4338
+ fibers.push(fiber);
4339
+ }
4340
+ WorkItem::PushFuture(future) => {
4341
+ self.futures
4342
+ .get_mut()
4343
+ .unwrap()
4344
+ .as_mut()
4345
+ .unwrap()
4346
+ .push(future.into_inner().unwrap());
4347
+ }
4348
+ _ => {}
4349
+ }
4350
+ }
4351
+ };
4352
+
4353
+ take_items(&mut self.high_priority);
4354
+ take_items(&mut self.low_priority);
4355
+
4356
+ if let Some(them) = self.futures.get_mut().unwrap().take() {
4357
+ futures.push(them);
4358
+ }
4359
+ }
4360
+ }
4361
+
4362
+ /// Provide a type hint to compiler about the shape of a parameter lower
4363
+ /// closure.
4364
+ fn for_any_lower<
4365
+ F: FnOnce(&mut dyn VMStore, Instance, &mut [MaybeUninit<ValRaw>]) -> Result<()> + Send + Sync,
4366
+ >(
4367
+ fun: F,
4368
+ ) -> F {
4369
+ fun
4370
+ }
4371
+
4372
+ /// Provide a type hint to compiler about the shape of a result lift closure.
4373
+ fn for_any_lift<
4374
+ F: FnOnce(&mut dyn VMStore, Instance, &[ValRaw]) -> Result<Box<dyn Any + Send + Sync>>
4375
+ + Send
4376
+ + Sync,
4377
+ >(
4378
+ fun: F,
4379
+ ) -> F {
4380
+ fun
4381
+ }
4382
+
4383
+ /// Wrap the specified future in a `poll_fn` which asserts that the future is
4384
+ /// only polled from the event loop of the specified `Instance`.
4385
+ ///
4386
+ /// See `Instance::run_concurrent` for details.
4387
+ fn checked<F: Future + Send + 'static>(
4388
+ instance: Instance,
4389
+ fut: F,
4390
+ ) -> impl Future<Output = F::Output> + Send + 'static {
4391
+ async move {
4392
+ let mut fut = pin!(fut);
4393
+ future::poll_fn(move |cx| {
4394
+ let message = "\
4395
+ `Future`s which depend on asynchronous component tasks, streams, or \
4396
+ futures to complete may only be polled from the event loop of the \
4397
+ instance from which they originated. Please use \
4398
+ `Instance::{run_concurrent,spawn}` to poll or await them.\
4399
+ ";
4400
+ tls::try_get(|store| {
4401
+ let matched = match store {
4402
+ tls::TryGet::Some(store) => {
4403
+ let a = store.concurrent_async_state_mut().current_instance;
4404
+ a == Some(instance.id().instance())
4405
+ }
4406
+ tls::TryGet::Taken | tls::TryGet::None => false,
4407
+ };
4408
+
4409
+ if !matched {
4410
+ panic!("{message}")
4411
+ }
4412
+ });
4413
+ fut.as_mut().poll(cx)
4414
+ })
4415
+ .await
4416
+ }
4417
+ }
4418
+
4419
+ /// Assert that `Instance::run_concurrent` has not been called from within an
4420
+ /// instance's event loop.
4421
+ fn check_recursive_run() {
4422
+ tls::try_get(|store| {
4423
+ if !matches!(store, tls::TryGet::None) {
4424
+ panic!("Recursive `Instance::run_concurrent` calls not supported")
4425
+ }
4426
+ });
4427
+ }
4428
+
4429
+ fn unpack_callback_code(code: u32) -> (u32, u32) {
4430
+ (code & 0xF, code >> 4)
4431
+ }
4432
+
4433
+ /// Helper struct for packaging parameters to be passed to
4434
+ /// `ComponentInstance::waitable_check` for calls to `waitable-set.wait` or
4435
+ /// `waitable-set.poll`.
4436
+ struct WaitableCheckParams {
4437
+ set: TableId<WaitableSet>,
4438
+ caller_instance: RuntimeComponentInstanceIndex,
4439
+ options: OptionsIndex,
4440
+ payload: u32,
4441
+ }
4442
+
4443
+ /// Helper enum for passing parameters to `ComponentInstance::waitable_check`.
4444
+ enum WaitableCheck {
4445
+ Wait(WaitableCheckParams),
4446
+ Poll(WaitableCheckParams),
4447
+ Yield,
4448
+ }
4449
+
4450
+ /// Represents a guest task called from the host, prepared using `prepare_call`.
4451
+ pub(crate) struct PreparedCall<R> {
4452
+ /// The guest export to be called
4453
+ handle: Func,
4454
+ /// The guest task created by `prepare_call`
4455
+ task: TableId<GuestTask>,
4456
+ /// The number of lowered core Wasm parameters to pass to the call.
4457
+ param_count: usize,
4458
+ /// The `oneshot::Receiver` to which the result of the call will be
4459
+ /// delivered when it is available.
4460
+ rx: oneshot::Receiver<LiftedResult>,
4461
+ _phantom: PhantomData<R>,
4462
+ }
4463
+
4464
+ impl<R> PreparedCall<R> {
4465
+ /// Get a copy of the `TaskId` for this `PreparedCall`.
4466
+ pub(crate) fn task_id(&self) -> TaskId {
4467
+ TaskId {
4468
+ handle: self.handle,
4469
+ task: self.task,
4470
+ }
4471
+ }
4472
+ }
4473
+
4474
+ /// Represents a task created by `prepare_call`.
4475
+ pub(crate) struct TaskId {
4476
+ handle: Func,
4477
+ task: TableId<GuestTask>,
4478
+ }
4479
+
4480
+ impl TaskId {
4481
+ /// Remove the specified task from the concurrent state to which it belongs.
4482
+ ///
4483
+ /// This must be used with care to avoid use-after-delete or double-delete
4484
+ /// bugs. Specifically, it should only be called on tasks created with the
4485
+ /// `remove_task_automatically` parameter to `prepare_call` set to `false`,
4486
+ /// which tells the runtime that the caller is responsible for removing the
4487
+ /// task from the state; otherwise, it will be removed automatically. Also,
4488
+ /// it should only be called once for a given task, and only after either
4489
+ /// the task has completed or the instance has trapped.
4490
+ pub(crate) fn remove<T>(&self, store: StoreContextMut<T>) -> Result<()> {
4491
+ Waitable::Guest(self.task).delete_from(self.handle.instance().concurrent_state_mut(store.0))
4492
+ }
4493
+ }
4494
+
4495
+ /// Prepare a call to the specified exported Wasm function, providing functions
4496
+ /// for lowering the parameters and lifting the result.
4497
+ ///
4498
+ /// To enqueue the returned `PreparedCall` in the `ComponentInstance`'s event
4499
+ /// loop, use `queue_call`.
4500
+ pub(crate) fn prepare_call<T, R>(
4501
+ mut store: StoreContextMut<T>,
4502
+ handle: Func,
4503
+ param_count: usize,
4504
+ remove_task_automatically: bool,
4505
+ call_post_return_automatically: bool,
4506
+ lower_params: impl FnOnce(Func, StoreContextMut<T>, &mut [MaybeUninit<ValRaw>]) -> Result<()>
4507
+ + Send
4508
+ + Sync
4509
+ + 'static,
4510
+ lift_result: impl FnOnce(Func, &mut StoreOpaque, &[ValRaw]) -> Result<Box<dyn Any + Send + Sync>>
4511
+ + Send
4512
+ + Sync
4513
+ + 'static,
4514
+ ) -> Result<PreparedCall<R>> {
4515
+ let (options, _flags, ty, raw_options) = handle.abi_info(store.0);
4516
+
4517
+ let instance = handle.instance().id().get(store.0);
4518
+ let task_return_type = instance.component().types()[ty].results;
4519
+ let component_instance = raw_options.instance;
4520
+ let callback = options.callback();
4521
+ let memory = options.memory_raw().map(SendSyncPtr::new);
4522
+ let string_encoding = options.string_encoding();
4523
+ let token = StoreToken::new(store.as_context_mut());
4524
+ let state = handle.instance().concurrent_state_mut(store.0);
4525
+
4526
+ assert!(state.guest_task.is_none());
4527
+
4528
+ let (tx, rx) = oneshot::channel();
4529
+
4530
+ let mut task = GuestTask::new(
4531
+ state,
4532
+ Box::new(for_any_lower(move |store, instance, params| {
4533
+ debug_assert!(instance.id() == handle.instance().id());
4534
+ lower_params(handle, token.as_context_mut(store), params)
4535
+ })),
4536
+ LiftResult {
4537
+ lift: Box::new(for_any_lift(move |store, instance, result| {
4538
+ debug_assert!(instance.id() == handle.instance().id());
4539
+ lift_result(handle, store, result)
4540
+ })),
4541
+ ty: task_return_type,
4542
+ memory,
4543
+ string_encoding,
4544
+ },
4545
+ Caller::Host {
4546
+ tx: Some(tx),
4547
+ remove_task_automatically,
4548
+ call_post_return_automatically,
4549
+ },
4550
+ callback.map(|callback| {
4551
+ let callback = SendSyncPtr::new(callback);
4552
+ Box::new(
4553
+ move |store: &mut dyn VMStore,
4554
+ instance: Instance,
4555
+ runtime_instance,
4556
+ event,
4557
+ handle| {
4558
+ let store = token.as_context_mut(store);
4559
+ // SAFETY: Per the contract of `prepare_call`, the callback
4560
+ // will remain valid at least as long is this task exists.
4561
+ unsafe {
4562
+ instance.call_callback(
4563
+ store,
4564
+ runtime_instance,
4565
+ callback,
4566
+ event,
4567
+ handle,
4568
+ call_post_return_automatically,
4569
+ )
4570
+ }
4571
+ },
4572
+ ) as CallbackFn
4573
+ }),
4574
+ component_instance,
4575
+ )?;
4576
+ task.function_index = Some(handle.index());
4577
+
4578
+ let task = state.push(task)?;
4579
+
4580
+ Ok(PreparedCall {
4581
+ handle,
4582
+ task,
4583
+ param_count,
4584
+ rx,
4585
+ _phantom: PhantomData,
4586
+ })
4587
+ }
4588
+
4589
+ /// Queue a call previously prepared using `prepare_call` to be run as part of
4590
+ /// the associated `ComponentInstance`'s event loop.
4591
+ ///
4592
+ /// The returned future will resolve to the result once it is available, but
4593
+ /// must only be polled via the instance's event loop. See
4594
+ /// `Instance::run_concurrent` for details.
4595
+ pub(crate) fn queue_call<T: 'static, R: Send + 'static>(
4596
+ mut store: StoreContextMut<T>,
4597
+ prepared: PreparedCall<R>,
4598
+ ) -> Result<impl Future<Output = Result<R>> + Send + 'static + use<T, R>> {
4599
+ let PreparedCall {
4600
+ handle,
4601
+ task,
4602
+ param_count,
4603
+ rx,
4604
+ ..
4605
+ } = prepared;
4606
+
4607
+ queue_call0(store.as_context_mut(), handle, task, param_count)?;
4608
+
4609
+ Ok(checked(
4610
+ handle.instance(),
4611
+ rx.map(|result| {
4612
+ result
4613
+ .map(|v| *v.downcast().unwrap())
4614
+ .map_err(anyhow::Error::from)
4615
+ }),
4616
+ ))
4617
+ }
4618
+
4619
+ /// Queue a call previously prepared using `prepare_call` to be run as part of
4620
+ /// the associated `ComponentInstance`'s event loop.
4621
+ fn queue_call0<T: 'static>(
4622
+ store: StoreContextMut<T>,
4623
+ handle: Func,
4624
+ guest_task: TableId<GuestTask>,
4625
+ param_count: usize,
4626
+ ) -> Result<()> {
4627
+ let (options, flags, _ty, raw_options) = handle.abi_info(store.0);
4628
+ let is_concurrent = raw_options.async_;
4629
+ let instance = handle.instance();
4630
+ let callee = handle.lifted_core_func(store.0);
4631
+ let callback = options.callback();
4632
+ let post_return = handle.post_return_core_func(store.0);
4633
+
4634
+ log::trace!("queueing call {guest_task:?}");
4635
+
4636
+ let instance_flags = if callback.is_none() {
4637
+ None
4638
+ } else {
4639
+ Some(flags)
4640
+ };
4641
+
4642
+ // SAFETY: `callee`, `callback`, and `post_return` are valid pointers
4643
+ // (with signatures appropriate for this call) and will remain valid as
4644
+ // long as this instance is valid.
4645
+ unsafe {
4646
+ instance.queue_call(
4647
+ store,
4648
+ guest_task,
4649
+ SendSyncPtr::new(callee),
4650
+ param_count,
4651
+ 1,
4652
+ instance_flags,
4653
+ is_concurrent,
4654
+ callback.map(SendSyncPtr::new),
4655
+ post_return.map(SendSyncPtr::new),
4656
+ )
4657
+ }
4658
+ }