wasmtime 37.0.2 → 38.0.4

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 (2030) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +82 -107
  3. data/ext/Cargo.toml +5 -5
  4. data/ext/cargo-vendor/cap-primitives-3.4.5/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cap-primitives-3.4.5/.cargo_vcs_info.json +6 -0
  6. data/ext/cargo-vendor/cap-primitives-3.4.5/Cargo.lock +340 -0
  7. data/ext/cargo-vendor/cap-primitives-3.4.5/Cargo.toml +96 -0
  8. data/ext/cargo-vendor/cap-primitives-3.4.5/Cargo.toml.orig +47 -0
  9. data/ext/cargo-vendor/cap-primitives-3.4.5/src/fs/via_parent/open_parent.rs +126 -0
  10. data/ext/cargo-vendor/cap-primitives-3.4.5/src/rustix/linux/fs/stat_impl.rs +56 -0
  11. data/ext/cargo-vendor/cap-std-3.4.5/.cargo-checksum.json +1 -0
  12. data/ext/cargo-vendor/cap-std-3.4.5/.cargo_vcs_info.json +6 -0
  13. data/ext/cargo-vendor/cap-std-3.4.5/Cargo.lock +313 -0
  14. data/ext/cargo-vendor/cap-std-3.4.5/Cargo.toml +77 -0
  15. data/ext/cargo-vendor/cap-std-3.4.5/Cargo.toml.orig +32 -0
  16. data/ext/cargo-vendor/cap-std-3.4.5/src/net/tcp_listener.rs +248 -0
  17. data/ext/cargo-vendor/cap-std-3.4.5/src/os/unix/net/unix_listener.rs +156 -0
  18. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/.cargo-checksum.json +1 -0
  19. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/.cargo_vcs_info.json +6 -0
  20. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/Cargo.lock +133 -0
  21. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/Cargo.toml +98 -0
  22. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/Cargo.toml.orig +25 -0
  23. data/ext/cargo-vendor/cranelift-assembler-x64-0.125.4/src/rex.rs +236 -0
  24. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/.cargo-checksum.json +1 -0
  25. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/.cargo_vcs_info.json +6 -0
  26. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/Cargo.lock +16 -0
  27. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/Cargo.toml +73 -0
  28. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/Cargo.toml.orig +13 -0
  29. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/src/generate/inst.rs +322 -0
  30. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.125.4/src/generate.rs +110 -0
  31. data/ext/cargo-vendor/cranelift-bforest-0.125.4/.cargo-checksum.json +1 -0
  32. data/ext/cargo-vendor/cranelift-bforest-0.125.4/.cargo_vcs_info.json +6 -0
  33. data/ext/cargo-vendor/cranelift-bforest-0.125.4/Cargo.lock +25 -0
  34. data/ext/cargo-vendor/cranelift-bforest-0.125.4/Cargo.toml +79 -0
  35. data/ext/cargo-vendor/cranelift-bforest-0.125.4/Cargo.toml.orig +19 -0
  36. data/ext/cargo-vendor/cranelift-bitset-0.125.4/.cargo-checksum.json +1 -0
  37. data/ext/cargo-vendor/cranelift-bitset-0.125.4/.cargo_vcs_info.json +6 -0
  38. data/ext/cargo-vendor/cranelift-bitset-0.125.4/Cargo.lock +73 -0
  39. data/ext/cargo-vendor/cranelift-bitset-0.125.4/Cargo.toml +94 -0
  40. data/ext/cargo-vendor/cranelift-bitset-0.125.4/Cargo.toml.orig +22 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.125.4/.cargo-checksum.json +1 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.125.4/.cargo_vcs_info.json +6 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.125.4/Cargo.lock +1352 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.125.4/Cargo.toml +252 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.125.4/Cargo.toml.orig +130 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/inline.rs +1546 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/ir/instructions.rs +1540 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/abi.rs +1619 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/inst/args.rs +726 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/inst/emit.rs +3678 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/inst/mod.rs +3106 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/inst.isle +5205 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/aarch64/lower.isle +3273 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/call_conv.rs +145 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/pulley_shared/inst/emit.rs +699 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/pulley_shared/inst/mod.rs +936 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/pulley_shared/inst.isle +794 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/pulley_shared/lower.isle +1838 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/inst/emit.rs +2877 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/inst/mod.rs +1933 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/inst.isle +3264 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/lower.isle +3140 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/riscv64/mod.rs +300 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/abi.rs +1526 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/inst/emit.rs +3551 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/inst/mod.rs +3542 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/inst.isle +4946 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/s390x/lower.isle +4075 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/abi.rs +1336 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/inst/args.rs +1063 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/inst/emit.rs +2188 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/inst/mod.rs +1662 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/inst.isle +4099 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/lower/isle.rs +1250 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/lower.isle +5061 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/mod.rs +272 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/isa/x64/pcc.rs +324 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/lib.rs +123 -0
  79. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/machinst/abi.rs +2572 -0
  80. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/machinst/blockorder.rs +485 -0
  81. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/machinst/isle.rs +839 -0
  82. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/machinst/lower.rs +1777 -0
  83. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/arithmetic.isle +343 -0
  84. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/bitops.isle +231 -0
  85. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/icmp.isle +304 -0
  86. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/selects.isle +104 -0
  87. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/opts/shifts.isle +314 -0
  88. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/prelude_lower.isle +1204 -0
  89. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/settings.rs +568 -0
  90. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/verifier/mod.rs +2258 -0
  91. data/ext/cargo-vendor/cranelift-codegen-0.125.4/src/write.rs +724 -0
  92. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/.cargo-checksum.json +1 -0
  93. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/.cargo_vcs_info.json +6 -0
  94. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/Cargo.lock +110 -0
  95. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/Cargo.toml +90 -0
  96. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/Cargo.toml.orig +26 -0
  97. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/formats.rs +158 -0
  98. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/instructions.rs +504 -0
  99. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/mod.rs +61 -0
  100. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/operands.rs +173 -0
  101. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/cdsl/settings.rs +336 -0
  102. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/gen_asm.rs +740 -0
  103. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/gen_inst.rs +1387 -0
  104. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/gen_isle.rs +1226 -0
  105. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/gen_settings.rs +423 -0
  106. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/isa/riscv64.rs +190 -0
  107. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/isa/x86.rs +428 -0
  108. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/shared/entities.rs +142 -0
  109. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/shared/formats.rs +230 -0
  110. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/shared/instructions.rs +3905 -0
  111. data/ext/cargo-vendor/cranelift-codegen-meta-0.125.4/src/shared/settings.rs +376 -0
  112. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/.cargo-checksum.json +1 -0
  113. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/.cargo_vcs_info.json +6 -0
  114. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/Cargo.lock +7 -0
  115. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/Cargo.toml +34 -0
  116. data/ext/cargo-vendor/cranelift-codegen-shared-0.125.4/Cargo.toml.orig +14 -0
  117. data/ext/cargo-vendor/cranelift-control-0.125.4/.cargo-checksum.json +1 -0
  118. data/ext/cargo-vendor/cranelift-control-0.125.4/.cargo_vcs_info.json +6 -0
  119. data/ext/cargo-vendor/cranelift-control-0.125.4/Cargo.lock +16 -0
  120. data/ext/cargo-vendor/cranelift-control-0.125.4/Cargo.toml +45 -0
  121. data/ext/cargo-vendor/cranelift-control-0.125.4/Cargo.toml.orig +25 -0
  122. data/ext/cargo-vendor/cranelift-entity-0.125.4/.cargo-checksum.json +1 -0
  123. data/ext/cargo-vendor/cranelift-entity-0.125.4/.cargo_vcs_info.json +6 -0
  124. data/ext/cargo-vendor/cranelift-entity-0.125.4/Cargo.lock +77 -0
  125. data/ext/cargo-vendor/cranelift-entity-0.125.4/Cargo.toml +95 -0
  126. data/ext/cargo-vendor/cranelift-entity-0.125.4/Cargo.toml.orig +24 -0
  127. data/ext/cargo-vendor/cranelift-entity-0.125.4/src/primary.rs +570 -0
  128. data/ext/cargo-vendor/cranelift-frontend-0.125.4/.cargo-checksum.json +1 -0
  129. data/ext/cargo-vendor/cranelift-frontend-0.125.4/.cargo_vcs_info.json +6 -0
  130. data/ext/cargo-vendor/cranelift-frontend-0.125.4/Cargo.lock +531 -0
  131. data/ext/cargo-vendor/cranelift-frontend-0.125.4/Cargo.toml +117 -0
  132. data/ext/cargo-vendor/cranelift-frontend-0.125.4/Cargo.toml.orig +32 -0
  133. data/ext/cargo-vendor/cranelift-frontend-0.125.4/src/frontend.rs +2030 -0
  134. data/ext/cargo-vendor/cranelift-isle-0.125.4/.cargo-checksum.json +1 -0
  135. data/ext/cargo-vendor/cranelift-isle-0.125.4/.cargo_vcs_info.json +6 -0
  136. data/ext/cargo-vendor/cranelift-isle-0.125.4/Cargo.lock +322 -0
  137. data/ext/cargo-vendor/cranelift-isle-0.125.4/Cargo.toml +89 -0
  138. data/ext/cargo-vendor/cranelift-isle-0.125.4/Cargo.toml.orig +26 -0
  139. data/ext/cargo-vendor/cranelift-native-0.125.4/.cargo-checksum.json +1 -0
  140. data/ext/cargo-vendor/cranelift-native-0.125.4/.cargo_vcs_info.json +6 -0
  141. data/ext/cargo-vendor/cranelift-native-0.125.4/Cargo.lock +305 -0
  142. data/ext/cargo-vendor/cranelift-native-0.125.4/Cargo.toml +54 -0
  143. data/ext/cargo-vendor/cranelift-native-0.125.4/Cargo.toml.orig +24 -0
  144. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/.cargo-checksum.json +1 -0
  145. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/.cargo_vcs_info.json +6 -0
  146. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/Cargo.lock +7 -0
  147. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/Cargo.toml +70 -0
  148. data/ext/cargo-vendor/cranelift-srcgen-0.125.4/Cargo.toml.orig +14 -0
  149. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/.cargo-checksum.json +1 -0
  150. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/.cargo_vcs_info.json +6 -0
  151. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/Cargo.lock +2181 -0
  152. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/Cargo.toml +79 -0
  153. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.3/Cargo.toml.orig +27 -0
  154. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/.cargo-checksum.json +1 -0
  155. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/.cargo_vcs_info.json +6 -0
  156. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/Cargo.lock +138 -0
  157. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/Cargo.toml +56 -0
  158. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/Cargo.toml.orig +21 -0
  159. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/README.md +31 -0
  160. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/category.rs +86 -0
  161. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/category_color.rs +41 -0
  162. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/counters.rs +156 -0
  163. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/cpu_delta.rs +60 -0
  164. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/fast_hash_map.rs +3 -0
  165. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/frame.rs +75 -0
  166. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/frame_table.rs +146 -0
  167. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/func_table.rs +110 -0
  168. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/global_lib_table.rs +119 -0
  169. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/lib.rs +81 -0
  170. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/lib_mappings.rs +161 -0
  171. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/library_info.rs +121 -0
  172. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/marker_table.rs +251 -0
  173. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/markers.rs +831 -0
  174. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/native_symbols.rs +71 -0
  175. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/process.rs +121 -0
  176. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/profile.rs +1169 -0
  177. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/reference_timestamp.rs +44 -0
  178. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/resource_table.rs +62 -0
  179. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/sample_table.rs +335 -0
  180. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/serialization_helpers.rs +41 -0
  181. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/stack_table.rs +79 -0
  182. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/string_table.rs +66 -0
  183. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/thread.rs +263 -0
  184. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/thread_string_table.rs +50 -0
  185. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/src/timestamp.rs +68 -0
  186. data/ext/cargo-vendor/fxprof-processed-profile-0.8.1/tests/integration_tests/main.rs +1540 -0
  187. data/ext/cargo-vendor/pulley-interpreter-38.0.4/.cargo-checksum.json +1 -0
  188. data/ext/cargo-vendor/pulley-interpreter-38.0.4/.cargo_vcs_info.json +6 -0
  189. data/ext/cargo-vendor/pulley-interpreter-38.0.4/Cargo.lock +426 -0
  190. data/ext/cargo-vendor/pulley-interpreter-38.0.4/Cargo.toml +144 -0
  191. data/ext/cargo-vendor/pulley-interpreter-38.0.4/src/lib.rs +1423 -0
  192. data/ext/cargo-vendor/pulley-macros-38.0.4/.cargo-checksum.json +1 -0
  193. data/ext/cargo-vendor/pulley-macros-38.0.4/.cargo_vcs_info.json +6 -0
  194. data/ext/cargo-vendor/pulley-macros-38.0.4/Cargo.lock +47 -0
  195. data/ext/cargo-vendor/pulley-macros-38.0.4/Cargo.toml +42 -0
  196. data/ext/cargo-vendor/wasmtime-38.0.4/.cargo-checksum.json +1 -0
  197. data/ext/cargo-vendor/wasmtime-38.0.4/.cargo_vcs_info.json +6 -0
  198. data/ext/cargo-vendor/wasmtime-38.0.4/Cargo.lock +2231 -0
  199. data/ext/cargo-vendor/wasmtime-38.0.4/Cargo.toml +552 -0
  200. data/ext/cargo-vendor/wasmtime-38.0.4/Cargo.toml.orig +410 -0
  201. data/ext/cargo-vendor/wasmtime-38.0.4/build.rs +100 -0
  202. data/ext/cargo-vendor/wasmtime-38.0.4/src/compile.rs +1052 -0
  203. data/ext/cargo-vendor/wasmtime-38.0.4/src/config.rs +3776 -0
  204. data/ext/cargo-vendor/wasmtime-38.0.4/src/engine/serialization.rs +801 -0
  205. data/ext/cargo-vendor/wasmtime-38.0.4/src/engine.rs +963 -0
  206. data/ext/cargo-vendor/wasmtime-38.0.4/src/lib.rs +440 -0
  207. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/component.rs +913 -0
  208. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/concurrent/futures_and_streams.rs +4326 -0
  209. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/concurrent.rs +4687 -0
  210. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/func/host.rs +957 -0
  211. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/func/typed.rs +2888 -0
  212. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/func.rs +977 -0
  213. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/instance.rs +1030 -0
  214. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/component/mod.rs +758 -0
  215. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/coredump.rs +356 -0
  216. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/func.rs +2666 -0
  217. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/instantiate.rs +285 -0
  218. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/memory.rs +1118 -0
  219. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/module.rs +1231 -0
  220. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/profiling.rs +350 -0
  221. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/store.rs +2785 -0
  222. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/trampoline/memory.rs +275 -0
  223. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/trampoline/table.rs +51 -0
  224. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/trampoline/tag.rs +55 -0
  225. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/trap.rs +634 -0
  226. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/component/libcalls.rs +1363 -0
  227. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/component.rs +1042 -0
  228. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/helpers.c +50 -0
  229. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/instance.rs +1864 -0
  230. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/interpreter.rs +506 -0
  231. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/interpreter_disabled.rs +63 -0
  232. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/stack_switching/stack/unix/x86_64.rs +86 -0
  233. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/stack_switching/stack/unix.rs +350 -0
  234. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/stack_switching.rs +691 -0
  235. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/custom/capi.rs +185 -0
  236. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/custom/traphandlers.rs +46 -0
  237. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/miri/traphandlers.rs +6 -0
  238. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/unix/machports.rs +513 -0
  239. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/unix/signals.rs +558 -0
  240. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/unix/traphandlers.rs +59 -0
  241. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/windows/traphandlers.rs +11 -0
  242. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/sys/windows/vectored_exceptions.rs +289 -0
  243. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/throw.rs +128 -0
  244. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/traphandlers.rs +1369 -0
  245. data/ext/cargo-vendor/wasmtime-38.0.4/src/runtime/vm/vmcontext.rs +1727 -0
  246. data/ext/cargo-vendor/wasmtime-environ-38.0.4/.cargo-checksum.json +1 -0
  247. data/ext/cargo-vendor/wasmtime-environ-38.0.4/.cargo_vcs_info.json +6 -0
  248. data/ext/cargo-vendor/wasmtime-environ-38.0.4/Cargo.lock +681 -0
  249. data/ext/cargo-vendor/wasmtime-environ-38.0.4/Cargo.toml +241 -0
  250. data/ext/cargo-vendor/wasmtime-environ-38.0.4/Cargo.toml.orig +82 -0
  251. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/address_map.rs +138 -0
  252. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/builtin.rs +458 -0
  253. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/compile/mod.rs +487 -0
  254. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/compile/module_artifacts.rs +310 -0
  255. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/compile/module_environ.rs +1313 -0
  256. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/artifacts.rs +30 -0
  257. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/compiler.rs +22 -0
  258. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/dfg.rs +1235 -0
  259. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/info.rs +1186 -0
  260. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component/translate/inline.rs +1867 -0
  261. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/component.rs +213 -0
  262. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/hostcall.rs +83 -0
  263. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/key.rs +452 -0
  264. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/lib.rs +82 -0
  265. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/module.rs +796 -0
  266. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/module_artifacts.rs +812 -0
  267. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/trap_encoding.rs +251 -0
  268. data/ext/cargo-vendor/wasmtime-environ-38.0.4/src/vmoffsets.rs +1177 -0
  269. data/ext/cargo-vendor/wasmtime-internal-cache-38.0.4/.cargo-checksum.json +1 -0
  270. data/ext/cargo-vendor/wasmtime-internal-cache-38.0.4/.cargo_vcs_info.json +6 -0
  271. data/ext/cargo-vendor/wasmtime-internal-cache-38.0.4/Cargo.lock +840 -0
  272. data/ext/cargo-vendor/wasmtime-internal-cache-38.0.4/Cargo.toml +128 -0
  273. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/.cargo-checksum.json +1 -0
  274. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/.cargo_vcs_info.json +6 -0
  275. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/Cargo.lock +285 -0
  276. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/Cargo.toml +146 -0
  277. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/codegen.rs +787 -0
  278. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path1_async.rs +206 -0
  279. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path1_concurrent.rs +206 -0
  280. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path1_tracing_async.rs +206 -0
  281. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path2_async.rs +206 -0
  282. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path2_concurrent.rs +206 -0
  283. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/path2_tracing_async.rs +206 -0
  284. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/worlds-with-types_async.rs +272 -0
  285. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/worlds-with-types_concurrent.rs +272 -0
  286. data/ext/cargo-vendor/wasmtime-internal-component-macro-38.0.4/tests/expanded/worlds-with-types_tracing_async.rs +280 -0
  287. data/ext/cargo-vendor/wasmtime-internal-component-util-38.0.4/.cargo-checksum.json +1 -0
  288. data/ext/cargo-vendor/wasmtime-internal-component-util-38.0.4/.cargo_vcs_info.json +6 -0
  289. data/ext/cargo-vendor/wasmtime-internal-component-util-38.0.4/Cargo.lock +7 -0
  290. data/ext/cargo-vendor/wasmtime-internal-component-util-38.0.4/Cargo.toml +38 -0
  291. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/.cargo-checksum.json +1 -0
  292. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/.cargo_vcs_info.json +6 -0
  293. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/Cargo.lock +711 -0
  294. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/Cargo.toml +187 -0
  295. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/compiler/component.rs +1721 -0
  296. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/compiler.rs +1541 -0
  297. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/func_environ/stack_switching/instructions.rs +1917 -0
  298. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/func_environ.rs +4313 -0
  299. data/ext/cargo-vendor/wasmtime-internal-cranelift-38.0.4/src/lib.rs +449 -0
  300. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/.cargo-checksum.json +1 -0
  301. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/.cargo_vcs_info.json +6 -0
  302. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/Cargo.lock +343 -0
  303. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/Cargo.toml +107 -0
  304. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/Cargo.toml.orig +41 -0
  305. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/build.rs +35 -0
  306. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/lib.rs +431 -0
  307. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/aarch64.rs +189 -0
  308. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/arm.rs +95 -0
  309. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/riscv64.rs +166 -0
  310. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/s390x.rs +117 -0
  311. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/x86.rs +118 -0
  312. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch/x86_64.rs +168 -0
  313. data/ext/cargo-vendor/wasmtime-internal-fiber-38.0.4/src/stackswitch.rs +73 -0
  314. data/ext/cargo-vendor/wasmtime-internal-jit-debug-38.0.4/.cargo-checksum.json +1 -0
  315. data/ext/cargo-vendor/wasmtime-internal-jit-debug-38.0.4/.cargo_vcs_info.json +6 -0
  316. data/ext/cargo-vendor/wasmtime-internal-jit-debug-38.0.4/Cargo.lock +203 -0
  317. data/ext/cargo-vendor/wasmtime-internal-jit-debug-38.0.4/Cargo.toml +110 -0
  318. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-38.0.4/.cargo-checksum.json +1 -0
  319. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-38.0.4/.cargo_vcs_info.json +6 -0
  320. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-38.0.4/Cargo.lock +104 -0
  321. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-38.0.4/Cargo.toml +91 -0
  322. data/ext/cargo-vendor/wasmtime-internal-math-38.0.4/.cargo-checksum.json +1 -0
  323. data/ext/cargo-vendor/wasmtime-internal-math-38.0.4/.cargo_vcs_info.json +6 -0
  324. data/ext/cargo-vendor/wasmtime-internal-math-38.0.4/Cargo.lock +16 -0
  325. data/ext/cargo-vendor/wasmtime-internal-math-38.0.4/Cargo.toml +78 -0
  326. data/ext/cargo-vendor/wasmtime-internal-slab-38.0.4/.cargo-checksum.json +1 -0
  327. data/ext/cargo-vendor/wasmtime-internal-slab-38.0.4/.cargo_vcs_info.json +6 -0
  328. data/ext/cargo-vendor/wasmtime-internal-slab-38.0.4/Cargo.lock +7 -0
  329. data/ext/cargo-vendor/wasmtime-internal-slab-38.0.4/Cargo.toml +70 -0
  330. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/.cargo-checksum.json +1 -0
  331. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/.cargo_vcs_info.json +6 -0
  332. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/Cargo.lock +328 -0
  333. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/Cargo.toml +106 -0
  334. data/ext/cargo-vendor/wasmtime-internal-unwinder-38.0.4/src/stackwalk.rs +261 -0
  335. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-38.0.4/.cargo-checksum.json +1 -0
  336. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-38.0.4/.cargo_vcs_info.json +6 -0
  337. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-38.0.4/Cargo.lock +47 -0
  338. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-38.0.4/Cargo.toml +43 -0
  339. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/.cargo-checksum.json +1 -0
  340. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/.cargo_vcs_info.json +6 -0
  341. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/Cargo.lock +649 -0
  342. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/Cargo.toml +132 -0
  343. data/ext/cargo-vendor/wasmtime-internal-winch-38.0.4/src/compiler.rs +401 -0
  344. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/.cargo-checksum.json +1 -0
  345. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/.cargo_vcs_info.json +6 -0
  346. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/Cargo.lock +193 -0
  347. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/Cargo.toml +90 -0
  348. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/src/config.rs +164 -0
  349. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-38.0.4/src/lib.rs +3530 -0
  350. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/.cargo-checksum.json +1 -0
  351. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/.cargo_vcs_info.json +6 -0
  352. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/Cargo.lock +2501 -0
  353. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/Cargo.toml +262 -0
  354. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/src/lib.rs +48 -0
  355. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/src/sockets/tcp.rs +819 -0
  356. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/src/view.rs +95 -0
  357. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/tests/all/p3/mod.rs +154 -0
  358. data/ext/cargo-vendor/wasmtime-wasi-38.0.4/tests/all/store.rs +86 -0
  359. data/ext/cargo-vendor/wasmtime-wasi-io-38.0.4/.cargo-checksum.json +1 -0
  360. data/ext/cargo-vendor/wasmtime-wasi-io-38.0.4/.cargo_vcs_info.json +6 -0
  361. data/ext/cargo-vendor/wasmtime-wasi-io-38.0.4/Cargo.lock +1200 -0
  362. data/ext/cargo-vendor/wasmtime-wasi-io-38.0.4/Cargo.toml +105 -0
  363. data/ext/cargo-vendor/wiggle-38.0.4/.cargo-checksum.json +1 -0
  364. data/ext/cargo-vendor/wiggle-38.0.4/.cargo_vcs_info.json +6 -0
  365. data/ext/cargo-vendor/wiggle-38.0.4/Cargo.lock +1157 -0
  366. data/ext/cargo-vendor/wiggle-38.0.4/Cargo.toml +139 -0
  367. data/ext/cargo-vendor/wiggle-generate-38.0.4/.cargo-checksum.json +1 -0
  368. data/ext/cargo-vendor/wiggle-generate-38.0.4/.cargo_vcs_info.json +6 -0
  369. data/ext/cargo-vendor/wiggle-generate-38.0.4/Cargo.lock +115 -0
  370. data/ext/cargo-vendor/wiggle-generate-38.0.4/Cargo.toml +102 -0
  371. data/ext/cargo-vendor/wiggle-macro-38.0.4/.cargo-checksum.json +1 -0
  372. data/ext/cargo-vendor/wiggle-macro-38.0.4/.cargo_vcs_info.json +6 -0
  373. data/ext/cargo-vendor/wiggle-macro-38.0.4/Cargo.lock +127 -0
  374. data/ext/cargo-vendor/wiggle-macro-38.0.4/Cargo.toml +98 -0
  375. data/ext/cargo-vendor/winch-codegen-38.0.4/.cargo-checksum.json +1 -0
  376. data/ext/cargo-vendor/winch-codegen-38.0.4/.cargo_vcs_info.json +6 -0
  377. data/ext/cargo-vendor/winch-codegen-38.0.4/Cargo.lock +620 -0
  378. data/ext/cargo-vendor/winch-codegen-38.0.4/Cargo.toml +133 -0
  379. data/ext/cargo-vendor/winch-codegen-38.0.4/src/codegen/env.rs +415 -0
  380. data/lib/wasmtime/version.rb +1 -1
  381. metadata +1627 -1652
  382. data/ext/cargo-vendor/byteorder-1.5.0/.cargo-checksum.json +0 -1
  383. data/ext/cargo-vendor/byteorder-1.5.0/.cargo_vcs_info.json +0 -6
  384. data/ext/cargo-vendor/byteorder-1.5.0/.github/workflows/ci.yml +0 -183
  385. data/ext/cargo-vendor/byteorder-1.5.0/CHANGELOG.md +0 -143
  386. data/ext/cargo-vendor/byteorder-1.5.0/COPYING +0 -3
  387. data/ext/cargo-vendor/byteorder-1.5.0/Cargo.toml +0 -54
  388. data/ext/cargo-vendor/byteorder-1.5.0/Cargo.toml.orig +0 -34
  389. data/ext/cargo-vendor/byteorder-1.5.0/LICENSE-MIT +0 -21
  390. data/ext/cargo-vendor/byteorder-1.5.0/README.md +0 -77
  391. data/ext/cargo-vendor/byteorder-1.5.0/UNLICENSE +0 -24
  392. data/ext/cargo-vendor/byteorder-1.5.0/benches/bench.rs +0 -326
  393. data/ext/cargo-vendor/byteorder-1.5.0/rustfmt.toml +0 -2
  394. data/ext/cargo-vendor/byteorder-1.5.0/src/io.rs +0 -1592
  395. data/ext/cargo-vendor/byteorder-1.5.0/src/lib.rs +0 -3975
  396. data/ext/cargo-vendor/cap-primitives-3.4.4/.cargo-checksum.json +0 -1
  397. data/ext/cargo-vendor/cap-primitives-3.4.4/.cargo_vcs_info.json +0 -6
  398. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.lock +0 -260
  399. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.toml +0 -96
  400. data/ext/cargo-vendor/cap-primitives-3.4.4/Cargo.toml.orig +0 -47
  401. data/ext/cargo-vendor/cap-primitives-3.4.4/src/fs/via_parent/open_parent.rs +0 -126
  402. data/ext/cargo-vendor/cap-primitives-3.4.4/src/rustix/linux/fs/stat_impl.rs +0 -55
  403. data/ext/cargo-vendor/cap-std-3.4.4/.cargo-checksum.json +0 -1
  404. data/ext/cargo-vendor/cap-std-3.4.4/.cargo_vcs_info.json +0 -6
  405. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.lock +0 -233
  406. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.toml +0 -77
  407. data/ext/cargo-vendor/cap-std-3.4.4/Cargo.toml.orig +0 -32
  408. data/ext/cargo-vendor/cap-std-3.4.4/src/net/tcp_listener.rs +0 -248
  409. data/ext/cargo-vendor/cap-std-3.4.4/src/os/unix/net/unix_listener.rs +0 -156
  410. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/.cargo-checksum.json +0 -1
  411. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/.cargo_vcs_info.json +0 -6
  412. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/Cargo.lock +0 -133
  413. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/Cargo.toml +0 -98
  414. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/Cargo.toml.orig +0 -25
  415. data/ext/cargo-vendor/cranelift-assembler-x64-0.124.2/src/rex.rs +0 -236
  416. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/.cargo-checksum.json +0 -1
  417. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/.cargo_vcs_info.json +0 -6
  418. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/Cargo.lock +0 -16
  419. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/Cargo.toml +0 -73
  420. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/Cargo.toml.orig +0 -13
  421. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/src/generate/inst.rs +0 -307
  422. data/ext/cargo-vendor/cranelift-assembler-x64-meta-0.124.2/src/generate.rs +0 -150
  423. data/ext/cargo-vendor/cranelift-bforest-0.124.2/.cargo-checksum.json +0 -1
  424. data/ext/cargo-vendor/cranelift-bforest-0.124.2/.cargo_vcs_info.json +0 -6
  425. data/ext/cargo-vendor/cranelift-bforest-0.124.2/Cargo.lock +0 -25
  426. data/ext/cargo-vendor/cranelift-bforest-0.124.2/Cargo.toml +0 -79
  427. data/ext/cargo-vendor/cranelift-bforest-0.124.2/Cargo.toml.orig +0 -19
  428. data/ext/cargo-vendor/cranelift-bitset-0.124.2/.cargo-checksum.json +0 -1
  429. data/ext/cargo-vendor/cranelift-bitset-0.124.2/.cargo_vcs_info.json +0 -6
  430. data/ext/cargo-vendor/cranelift-bitset-0.124.2/Cargo.lock +0 -73
  431. data/ext/cargo-vendor/cranelift-bitset-0.124.2/Cargo.toml +0 -94
  432. data/ext/cargo-vendor/cranelift-bitset-0.124.2/Cargo.toml.orig +0 -22
  433. data/ext/cargo-vendor/cranelift-codegen-0.124.2/.cargo-checksum.json +0 -1
  434. data/ext/cargo-vendor/cranelift-codegen-0.124.2/.cargo_vcs_info.json +0 -6
  435. data/ext/cargo-vendor/cranelift-codegen-0.124.2/Cargo.lock +0 -1352
  436. data/ext/cargo-vendor/cranelift-codegen-0.124.2/Cargo.toml +0 -252
  437. data/ext/cargo-vendor/cranelift-codegen-0.124.2/Cargo.toml.orig +0 -130
  438. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/inline.rs +0 -1542
  439. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/ir/instructions.rs +0 -1515
  440. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/abi.rs +0 -1616
  441. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/inst/args.rs +0 -711
  442. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/inst/emit.rs +0 -3666
  443. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/inst/mod.rs +0 -3098
  444. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/inst.isle +0 -5184
  445. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/aarch64/lower.isle +0 -3240
  446. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/call_conv.rs +0 -145
  447. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/pulley_shared/inst/emit.rs +0 -693
  448. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/pulley_shared/inst/mod.rs +0 -927
  449. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/pulley_shared/inst.isle +0 -783
  450. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/pulley_shared/lower.isle +0 -1831
  451. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/inst/emit.rs +0 -2856
  452. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/inst/mod.rs +0 -1925
  453. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/inst.isle +0 -3252
  454. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/lower.isle +0 -3133
  455. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/riscv64/mod.rs +0 -294
  456. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/abi.rs +0 -1526
  457. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/inst/emit.rs +0 -3543
  458. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/inst/mod.rs +0 -3533
  459. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/inst.isle +0 -4934
  460. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/s390x/lower.isle +0 -4069
  461. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/abi.rs +0 -1334
  462. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/inst/args.rs +0 -1048
  463. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/inst/emit.rs +0 -2183
  464. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/inst/mod.rs +0 -1652
  465. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/inst.isle +0 -4074
  466. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/lower/isle.rs +0 -1245
  467. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/lower.isle +0 -5055
  468. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/mod.rs +0 -262
  469. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/isa/x64/pcc.rs +0 -322
  470. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/lib.rs +0 -123
  471. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/machinst/abi.rs +0 -2567
  472. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/machinst/blockorder.rs +0 -471
  473. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/machinst/isle.rs +0 -815
  474. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/machinst/lower.rs +0 -1763
  475. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/arithmetic.isle +0 -333
  476. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/bitops.isle +0 -204
  477. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/icmp.isle +0 -300
  478. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/selects.isle +0 -100
  479. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/opts/shifts.isle +0 -307
  480. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/prelude_lower.isle +0 -1196
  481. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/settings.rs +0 -572
  482. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/verifier/mod.rs +0 -2205
  483. data/ext/cargo-vendor/cranelift-codegen-0.124.2/src/write.rs +0 -723
  484. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/.cargo-checksum.json +0 -1
  485. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/.cargo_vcs_info.json +0 -6
  486. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/Cargo.lock +0 -110
  487. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/Cargo.toml +0 -90
  488. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/Cargo.toml.orig +0 -26
  489. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/formats.rs +0 -144
  490. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/instructions.rs +0 -494
  491. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/mod.rs +0 -72
  492. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/operands.rs +0 -169
  493. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/cdsl/settings.rs +0 -429
  494. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/gen_asm.rs +0 -740
  495. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/gen_inst.rs +0 -1311
  496. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/gen_isle.rs +0 -1199
  497. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/gen_settings.rs +0 -452
  498. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/isa/riscv64.rs +0 -195
  499. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/isa/x86.rs +0 -448
  500. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/shared/entities.rs +0 -131
  501. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/shared/formats.rs +0 -224
  502. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/shared/instructions.rs +0 -3873
  503. data/ext/cargo-vendor/cranelift-codegen-meta-0.124.2/src/shared/settings.rs +0 -411
  504. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/.cargo-checksum.json +0 -1
  505. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/.cargo_vcs_info.json +0 -6
  506. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/Cargo.lock +0 -7
  507. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/Cargo.toml +0 -34
  508. data/ext/cargo-vendor/cranelift-codegen-shared-0.124.2/Cargo.toml.orig +0 -14
  509. data/ext/cargo-vendor/cranelift-control-0.124.2/.cargo-checksum.json +0 -1
  510. data/ext/cargo-vendor/cranelift-control-0.124.2/.cargo_vcs_info.json +0 -6
  511. data/ext/cargo-vendor/cranelift-control-0.124.2/Cargo.lock +0 -16
  512. data/ext/cargo-vendor/cranelift-control-0.124.2/Cargo.toml +0 -45
  513. data/ext/cargo-vendor/cranelift-control-0.124.2/Cargo.toml.orig +0 -25
  514. data/ext/cargo-vendor/cranelift-entity-0.124.2/.cargo-checksum.json +0 -1
  515. data/ext/cargo-vendor/cranelift-entity-0.124.2/.cargo_vcs_info.json +0 -6
  516. data/ext/cargo-vendor/cranelift-entity-0.124.2/Cargo.lock +0 -77
  517. data/ext/cargo-vendor/cranelift-entity-0.124.2/Cargo.toml +0 -95
  518. data/ext/cargo-vendor/cranelift-entity-0.124.2/Cargo.toml.orig +0 -24
  519. data/ext/cargo-vendor/cranelift-entity-0.124.2/src/primary.rs +0 -548
  520. data/ext/cargo-vendor/cranelift-frontend-0.124.2/.cargo-checksum.json +0 -1
  521. data/ext/cargo-vendor/cranelift-frontend-0.124.2/.cargo_vcs_info.json +0 -6
  522. data/ext/cargo-vendor/cranelift-frontend-0.124.2/Cargo.lock +0 -531
  523. data/ext/cargo-vendor/cranelift-frontend-0.124.2/Cargo.toml +0 -117
  524. data/ext/cargo-vendor/cranelift-frontend-0.124.2/Cargo.toml.orig +0 -32
  525. data/ext/cargo-vendor/cranelift-frontend-0.124.2/src/frontend.rs +0 -2028
  526. data/ext/cargo-vendor/cranelift-isle-0.124.2/.cargo-checksum.json +0 -1
  527. data/ext/cargo-vendor/cranelift-isle-0.124.2/.cargo_vcs_info.json +0 -6
  528. data/ext/cargo-vendor/cranelift-isle-0.124.2/Cargo.lock +0 -322
  529. data/ext/cargo-vendor/cranelift-isle-0.124.2/Cargo.toml +0 -89
  530. data/ext/cargo-vendor/cranelift-isle-0.124.2/Cargo.toml.orig +0 -26
  531. data/ext/cargo-vendor/cranelift-native-0.124.2/.cargo-checksum.json +0 -1
  532. data/ext/cargo-vendor/cranelift-native-0.124.2/.cargo_vcs_info.json +0 -6
  533. data/ext/cargo-vendor/cranelift-native-0.124.2/Cargo.lock +0 -305
  534. data/ext/cargo-vendor/cranelift-native-0.124.2/Cargo.toml +0 -54
  535. data/ext/cargo-vendor/cranelift-native-0.124.2/Cargo.toml.orig +0 -24
  536. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/.cargo-checksum.json +0 -1
  537. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/.cargo_vcs_info.json +0 -6
  538. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/Cargo.lock +0 -7
  539. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/Cargo.toml +0 -70
  540. data/ext/cargo-vendor/cranelift-srcgen-0.124.2/Cargo.toml.orig +0 -14
  541. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/.cargo-checksum.json +0 -1
  542. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/.cargo_vcs_info.json +0 -6
  543. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/Cargo.lock +0 -2192
  544. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/Cargo.toml +0 -79
  545. data/ext/cargo-vendor/deterministic-wasi-ctx-3.0.2/Cargo.toml.orig +0 -27
  546. data/ext/cargo-vendor/fxhash-0.2.1/.cargo-checksum.json +0 -1
  547. data/ext/cargo-vendor/fxhash-0.2.1/Cargo.toml +0 -38
  548. data/ext/cargo-vendor/fxhash-0.2.1/Cargo.toml.orig +0 -26
  549. data/ext/cargo-vendor/fxhash-0.2.1/README.md +0 -62
  550. data/ext/cargo-vendor/fxhash-0.2.1/bench.rs +0 -78
  551. data/ext/cargo-vendor/fxhash-0.2.1/lib.rs +0 -324
  552. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/.cargo-checksum.json +0 -1
  553. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/.cargo_vcs_info.json +0 -6
  554. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/Cargo.toml +0 -41
  555. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/Cargo.toml.orig +0 -20
  556. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/README.md +0 -27
  557. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/category.rs +0 -98
  558. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/category_color.rs +0 -41
  559. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/counters.rs +0 -130
  560. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/cpu_delta.rs +0 -59
  561. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/fast_hash_map.rs +0 -5
  562. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/frame.rs +0 -54
  563. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/frame_table.rs +0 -166
  564. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/func_table.rs +0 -110
  565. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/global_lib_table.rs +0 -76
  566. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/lib.rs +0 -74
  567. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/lib_mappings.rs +0 -140
  568. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/library_info.rs +0 -120
  569. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/marker_table.rs +0 -78
  570. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/markers.rs +0 -224
  571. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/native_symbols.rs +0 -73
  572. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/process.rs +0 -117
  573. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/profile.rs +0 -718
  574. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/reference_timestamp.rs +0 -43
  575. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/resource_table.rs +0 -63
  576. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/sample_table.rs +0 -50
  577. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/serialization_helpers.rs +0 -30
  578. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/stack_table.rs +0 -80
  579. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/string_table.rs +0 -66
  580. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/thread.rs +0 -225
  581. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/thread_string_table.rs +0 -50
  582. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/src/timestamp.rs +0 -29
  583. data/ext/cargo-vendor/fxprof-processed-profile-0.6.0/tests/integration_tests/main.rs +0 -1270
  584. data/ext/cargo-vendor/pulley-interpreter-37.0.2/.cargo-checksum.json +0 -1
  585. data/ext/cargo-vendor/pulley-interpreter-37.0.2/.cargo_vcs_info.json +0 -6
  586. data/ext/cargo-vendor/pulley-interpreter-37.0.2/Cargo.lock +0 -426
  587. data/ext/cargo-vendor/pulley-interpreter-37.0.2/Cargo.toml +0 -144
  588. data/ext/cargo-vendor/pulley-interpreter-37.0.2/src/lib.rs +0 -1423
  589. data/ext/cargo-vendor/pulley-macros-37.0.2/.cargo-checksum.json +0 -1
  590. data/ext/cargo-vendor/pulley-macros-37.0.2/.cargo_vcs_info.json +0 -6
  591. data/ext/cargo-vendor/pulley-macros-37.0.2/Cargo.lock +0 -47
  592. data/ext/cargo-vendor/pulley-macros-37.0.2/Cargo.toml +0 -42
  593. data/ext/cargo-vendor/wasmtime-37.0.2/.cargo-checksum.json +0 -1
  594. data/ext/cargo-vendor/wasmtime-37.0.2/.cargo_vcs_info.json +0 -6
  595. data/ext/cargo-vendor/wasmtime-37.0.2/Cargo.lock +0 -2250
  596. data/ext/cargo-vendor/wasmtime-37.0.2/Cargo.toml +0 -558
  597. data/ext/cargo-vendor/wasmtime-37.0.2/Cargo.toml.orig +0 -412
  598. data/ext/cargo-vendor/wasmtime-37.0.2/build.rs +0 -99
  599. data/ext/cargo-vendor/wasmtime-37.0.2/src/compile.rs +0 -1271
  600. data/ext/cargo-vendor/wasmtime-37.0.2/src/config.rs +0 -3792
  601. data/ext/cargo-vendor/wasmtime-37.0.2/src/engine/serialization.rs +0 -801
  602. data/ext/cargo-vendor/wasmtime-37.0.2/src/engine.rs +0 -976
  603. data/ext/cargo-vendor/wasmtime-37.0.2/src/lib.rs +0 -440
  604. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/component.rs +0 -898
  605. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/concurrent/futures_and_streams.rs +0 -4239
  606. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/concurrent.rs +0 -4585
  607. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/func/host.rs +0 -957
  608. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/func/typed.rs +0 -2888
  609. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/func.rs +0 -972
  610. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/instance.rs +0 -1024
  611. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/component/mod.rs +0 -758
  612. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/coredump.rs +0 -350
  613. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/func.rs +0 -2680
  614. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/instantiate.rs +0 -300
  615. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/memory.rs +0 -1115
  616. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/module.rs +0 -1224
  617. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/profiling.rs +0 -338
  618. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/store.rs +0 -2782
  619. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/trampoline/memory.rs +0 -277
  620. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/trampoline/table.rs +0 -50
  621. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/trampoline/tag.rs +0 -54
  622. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/trap.rs +0 -634
  623. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/component/libcalls.rs +0 -1257
  624. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/component.rs +0 -1022
  625. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/helpers.c +0 -121
  626. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/instance.rs +0 -1862
  627. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/interpreter.rs +0 -619
  628. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/interpreter_disabled.rs +0 -70
  629. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/stack_switching/stack/unix/x86_64.rs +0 -83
  630. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/stack_switching/stack/unix.rs +0 -353
  631. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/stack_switching.rs +0 -691
  632. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/custom/capi.rs +0 -219
  633. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/custom/traphandlers.rs +0 -69
  634. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/miri/traphandlers.rs +0 -34
  635. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/unix/machports.rs +0 -515
  636. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/unix/signals.rs +0 -566
  637. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/unix/traphandlers.rs +0 -79
  638. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/windows/traphandlers.rs +0 -31
  639. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/sys/windows/vectored_exceptions.rs +0 -125
  640. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/throw.rs +0 -123
  641. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/traphandlers.rs +0 -1438
  642. data/ext/cargo-vendor/wasmtime-37.0.2/src/runtime/vm/vmcontext.rs +0 -1705
  643. data/ext/cargo-vendor/wasmtime-environ-37.0.2/.cargo-checksum.json +0 -1
  644. data/ext/cargo-vendor/wasmtime-environ-37.0.2/.cargo_vcs_info.json +0 -6
  645. data/ext/cargo-vendor/wasmtime-environ-37.0.2/Cargo.lock +0 -650
  646. data/ext/cargo-vendor/wasmtime-environ-37.0.2/Cargo.toml +0 -234
  647. data/ext/cargo-vendor/wasmtime-environ-37.0.2/Cargo.toml.orig +0 -80
  648. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/address_map.rs +0 -126
  649. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/builtin.rs +0 -451
  650. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/compile/key.rs +0 -221
  651. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/compile/mod.rs +0 -490
  652. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/compile/module_artifacts.rs +0 -318
  653. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/compile/module_environ.rs +0 -1312
  654. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/artifacts.rs +0 -68
  655. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/compiler.rs +0 -21
  656. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/dfg.rs +0 -1100
  657. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/info.rs +0 -1124
  658. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component/translate/inline.rs +0 -1792
  659. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/component.rs +0 -213
  660. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/hostcall.rs +0 -82
  661. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/lib.rs +0 -80
  662. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/module.rs +0 -760
  663. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/module_artifacts.rs +0 -119
  664. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/trap_encoding.rs +0 -244
  665. data/ext/cargo-vendor/wasmtime-environ-37.0.2/src/vmoffsets.rs +0 -1167
  666. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/.cargo-checksum.json +0 -1
  667. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/.cargo_vcs_info.json +0 -6
  668. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/Cargo.lock +0 -16
  669. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/Cargo.toml +0 -35
  670. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/Cargo.toml.orig +0 -14
  671. data/ext/cargo-vendor/wasmtime-internal-asm-macros-37.0.2/src/lib.rs +0 -90
  672. data/ext/cargo-vendor/wasmtime-internal-cache-37.0.2/.cargo-checksum.json +0 -1
  673. data/ext/cargo-vendor/wasmtime-internal-cache-37.0.2/.cargo_vcs_info.json +0 -6
  674. data/ext/cargo-vendor/wasmtime-internal-cache-37.0.2/Cargo.lock +0 -840
  675. data/ext/cargo-vendor/wasmtime-internal-cache-37.0.2/Cargo.toml +0 -128
  676. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/.cargo-checksum.json +0 -1
  677. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/.cargo_vcs_info.json +0 -6
  678. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/Cargo.lock +0 -285
  679. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/Cargo.toml +0 -146
  680. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/codegen.rs +0 -731
  681. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path1_async.rs +0 -206
  682. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path1_concurrent.rs +0 -206
  683. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path1_tracing_async.rs +0 -206
  684. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path2_async.rs +0 -206
  685. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path2_concurrent.rs +0 -206
  686. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/path2_tracing_async.rs +0 -206
  687. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/worlds-with-types_async.rs +0 -272
  688. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/worlds-with-types_concurrent.rs +0 -272
  689. data/ext/cargo-vendor/wasmtime-internal-component-macro-37.0.2/tests/expanded/worlds-with-types_tracing_async.rs +0 -280
  690. data/ext/cargo-vendor/wasmtime-internal-component-util-37.0.2/.cargo-checksum.json +0 -1
  691. data/ext/cargo-vendor/wasmtime-internal-component-util-37.0.2/.cargo_vcs_info.json +0 -6
  692. data/ext/cargo-vendor/wasmtime-internal-component-util-37.0.2/Cargo.lock +0 -7
  693. data/ext/cargo-vendor/wasmtime-internal-component-util-37.0.2/Cargo.toml +0 -38
  694. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/.cargo-checksum.json +0 -1
  695. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/.cargo_vcs_info.json +0 -6
  696. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/Cargo.lock +0 -711
  697. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/Cargo.toml +0 -187
  698. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/compiler/component.rs +0 -1623
  699. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/compiler.rs +0 -1476
  700. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/func_environ/stack_switching/instructions.rs +0 -1917
  701. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/func_environ.rs +0 -4313
  702. data/ext/cargo-vendor/wasmtime-internal-cranelift-37.0.2/src/lib.rs +0 -449
  703. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/.cargo-checksum.json +0 -1
  704. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/.cargo_vcs_info.json +0 -6
  705. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/Cargo.lock +0 -353
  706. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/Cargo.toml +0 -111
  707. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/Cargo.toml.orig +0 -42
  708. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/build.rs +0 -39
  709. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/lib.rs +0 -434
  710. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/aarch64.rs +0 -184
  711. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/arm.rs +0 -86
  712. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/riscv64.rs +0 -158
  713. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/s390x.S +0 -123
  714. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/x86.rs +0 -109
  715. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch/x86_64.rs +0 -160
  716. data/ext/cargo-vendor/wasmtime-internal-fiber-37.0.2/src/stackswitch.rs +0 -80
  717. data/ext/cargo-vendor/wasmtime-internal-jit-debug-37.0.2/.cargo-checksum.json +0 -1
  718. data/ext/cargo-vendor/wasmtime-internal-jit-debug-37.0.2/.cargo_vcs_info.json +0 -6
  719. data/ext/cargo-vendor/wasmtime-internal-jit-debug-37.0.2/Cargo.lock +0 -203
  720. data/ext/cargo-vendor/wasmtime-internal-jit-debug-37.0.2/Cargo.toml +0 -110
  721. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-37.0.2/.cargo-checksum.json +0 -1
  722. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-37.0.2/.cargo_vcs_info.json +0 -6
  723. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-37.0.2/Cargo.lock +0 -104
  724. data/ext/cargo-vendor/wasmtime-internal-jit-icache-coherence-37.0.2/Cargo.toml +0 -91
  725. data/ext/cargo-vendor/wasmtime-internal-math-37.0.2/.cargo-checksum.json +0 -1
  726. data/ext/cargo-vendor/wasmtime-internal-math-37.0.2/.cargo_vcs_info.json +0 -6
  727. data/ext/cargo-vendor/wasmtime-internal-math-37.0.2/Cargo.lock +0 -16
  728. data/ext/cargo-vendor/wasmtime-internal-math-37.0.2/Cargo.toml +0 -78
  729. data/ext/cargo-vendor/wasmtime-internal-slab-37.0.2/.cargo-checksum.json +0 -1
  730. data/ext/cargo-vendor/wasmtime-internal-slab-37.0.2/.cargo_vcs_info.json +0 -6
  731. data/ext/cargo-vendor/wasmtime-internal-slab-37.0.2/Cargo.lock +0 -7
  732. data/ext/cargo-vendor/wasmtime-internal-slab-37.0.2/Cargo.toml +0 -70
  733. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/.cargo-checksum.json +0 -1
  734. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/.cargo_vcs_info.json +0 -6
  735. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/Cargo.lock +0 -328
  736. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/Cargo.toml +0 -106
  737. data/ext/cargo-vendor/wasmtime-internal-unwinder-37.0.2/src/stackwalk.rs +0 -219
  738. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-37.0.2/.cargo-checksum.json +0 -1
  739. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-37.0.2/.cargo_vcs_info.json +0 -6
  740. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-37.0.2/Cargo.lock +0 -47
  741. data/ext/cargo-vendor/wasmtime-internal-versioned-export-macros-37.0.2/Cargo.toml +0 -43
  742. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/.cargo-checksum.json +0 -1
  743. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/.cargo_vcs_info.json +0 -6
  744. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/Cargo.lock +0 -649
  745. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/Cargo.toml +0 -132
  746. data/ext/cargo-vendor/wasmtime-internal-winch-37.0.2/src/compiler.rs +0 -402
  747. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/.cargo-checksum.json +0 -1
  748. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/.cargo_vcs_info.json +0 -6
  749. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/Cargo.lock +0 -193
  750. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/Cargo.toml +0 -90
  751. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/src/config.rs +0 -164
  752. data/ext/cargo-vendor/wasmtime-internal-wit-bindgen-37.0.2/src/lib.rs +0 -3527
  753. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/.cargo-checksum.json +0 -1
  754. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/.cargo_vcs_info.json +0 -6
  755. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/Cargo.lock +0 -2512
  756. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/Cargo.toml +0 -262
  757. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/src/lib.rs +0 -48
  758. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/src/sockets/tcp.rs +0 -819
  759. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/src/view.rs +0 -95
  760. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/tests/all/p3/mod.rs +0 -144
  761. data/ext/cargo-vendor/wasmtime-wasi-37.0.2/tests/all/store.rs +0 -81
  762. data/ext/cargo-vendor/wasmtime-wasi-io-37.0.2/.cargo-checksum.json +0 -1
  763. data/ext/cargo-vendor/wasmtime-wasi-io-37.0.2/.cargo_vcs_info.json +0 -6
  764. data/ext/cargo-vendor/wasmtime-wasi-io-37.0.2/Cargo.lock +0 -1211
  765. data/ext/cargo-vendor/wasmtime-wasi-io-37.0.2/Cargo.toml +0 -105
  766. data/ext/cargo-vendor/wiggle-37.0.2/.cargo-checksum.json +0 -1
  767. data/ext/cargo-vendor/wiggle-37.0.2/.cargo_vcs_info.json +0 -6
  768. data/ext/cargo-vendor/wiggle-37.0.2/Cargo.lock +0 -1168
  769. data/ext/cargo-vendor/wiggle-37.0.2/Cargo.toml +0 -139
  770. data/ext/cargo-vendor/wiggle-generate-37.0.2/.cargo-checksum.json +0 -1
  771. data/ext/cargo-vendor/wiggle-generate-37.0.2/.cargo_vcs_info.json +0 -6
  772. data/ext/cargo-vendor/wiggle-generate-37.0.2/Cargo.lock +0 -115
  773. data/ext/cargo-vendor/wiggle-generate-37.0.2/Cargo.toml +0 -102
  774. data/ext/cargo-vendor/wiggle-macro-37.0.2/.cargo-checksum.json +0 -1
  775. data/ext/cargo-vendor/wiggle-macro-37.0.2/.cargo_vcs_info.json +0 -6
  776. data/ext/cargo-vendor/wiggle-macro-37.0.2/Cargo.lock +0 -127
  777. data/ext/cargo-vendor/wiggle-macro-37.0.2/Cargo.toml +0 -98
  778. data/ext/cargo-vendor/winch-codegen-37.0.2/.cargo-checksum.json +0 -1
  779. data/ext/cargo-vendor/winch-codegen-37.0.2/.cargo_vcs_info.json +0 -6
  780. data/ext/cargo-vendor/winch-codegen-37.0.2/Cargo.lock +0 -620
  781. data/ext/cargo-vendor/winch-codegen-37.0.2/Cargo.toml +0 -133
  782. data/ext/cargo-vendor/winch-codegen-37.0.2/src/codegen/env.rs +0 -415
  783. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/COPYRIGHT +0 -0
  784. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/LICENSE-APACHE +0 -0
  785. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  786. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/LICENSE-MIT +0 -0
  787. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/README.md +0 -0
  788. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/build.rs +0 -0
  789. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/access.rs +0 -0
  790. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/assert_same_file.rs +0 -0
  791. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/canonicalize.rs +0 -0
  792. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/copy.rs +0 -0
  793. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/create_dir.rs +0 -0
  794. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/dir_builder.rs +0 -0
  795. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/dir_entry.rs +0 -0
  796. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/dir_options.rs +0 -0
  797. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/errors.rs +0 -0
  798. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/file.rs +0 -0
  799. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/file_path_by_searching.rs +0 -0
  800. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/file_type.rs +0 -0
  801. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/follow_symlinks.rs +0 -0
  802. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/hard_link.rs +0 -0
  803. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/is_file_read_write.rs +0 -0
  804. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/canonical_path.rs +0 -0
  805. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/canonicalize.rs +0 -0
  806. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/cow_component.rs +0 -0
  807. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/mod.rs +0 -0
  808. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/open.rs +0 -0
  809. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/open_entry.rs +0 -0
  810. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/manually/read_link_one.rs +0 -0
  811. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/maybe_owned_file.rs +0 -0
  812. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/metadata.rs +0 -0
  813. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/mod.rs +0 -0
  814. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open.rs +0 -0
  815. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open_ambient.rs +0 -0
  816. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open_dir.rs +0 -0
  817. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open_options.rs +0 -0
  818. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/open_unchecked_error.rs +0 -0
  819. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/permissions.rs +0 -0
  820. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/read_dir.rs +0 -0
  821. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/read_link.rs +0 -0
  822. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/remove_dir.rs +0 -0
  823. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/remove_dir_all.rs +0 -0
  824. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/remove_file.rs +0 -0
  825. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/remove_open_dir.rs +0 -0
  826. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/rename.rs +0 -0
  827. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/reopen.rs +0 -0
  828. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/set_permissions.rs +0 -0
  829. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/set_times.rs +0 -0
  830. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/stat.rs +0 -0
  831. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/symlink.rs +0 -0
  832. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/system_time_spec.rs +0 -0
  833. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/access.rs +0 -0
  834. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/create_dir.rs +0 -0
  835. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/hard_link.rs +0 -0
  836. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/mod.rs +0 -0
  837. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/read_link.rs +0 -0
  838. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/remove_dir.rs +0 -0
  839. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/remove_file.rs +0 -0
  840. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/rename.rs +0 -0
  841. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/set_permissions.rs +0 -0
  842. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/set_symlink_permissions.rs +0 -0
  843. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/set_times_nofollow.rs +0 -0
  844. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/fs/via_parent/symlink.rs +0 -0
  845. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/lib.rs +0 -0
  846. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/net/mod.rs +0 -0
  847. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/net/pool.rs +0 -0
  848. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/darwin/fs/file_path.rs +0 -0
  849. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/darwin/fs/mod.rs +0 -0
  850. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/darwin/mod.rs +0 -0
  851. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/check.rs +0 -0
  852. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/mod.rs +0 -0
  853. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/open_entry_impl.rs +0 -0
  854. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/open_impl.rs +0 -0
  855. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/remove_dir_impl.rs +0 -0
  856. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/remove_file_impl.rs +0 -0
  857. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/set_permissions_impl.rs +0 -0
  858. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/set_times_impl.rs +0 -0
  859. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/fs/stat_impl.rs +0 -0
  860. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/freebsd/mod.rs +0 -0
  861. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/access_unchecked.rs +0 -0
  862. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/copy_impl.rs +0 -0
  863. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/create_dir_unchecked.rs +0 -0
  864. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/cvt.rs +0 -0
  865. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/dir_entry_inner.rs +0 -0
  866. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/dir_options_ext.rs +0 -0
  867. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/dir_utils.rs +0 -0
  868. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/errors.rs +0 -0
  869. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/file_path.rs +0 -0
  870. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/file_type_ext.rs +0 -0
  871. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/hard_link_unchecked.rs +0 -0
  872. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/is_file_read_write_impl.rs +0 -0
  873. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/is_root_dir.rs +0 -0
  874. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/is_same_file.rs +0 -0
  875. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/metadata_ext.rs +0 -0
  876. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/mod.rs +0 -0
  877. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/oflags.rs +0 -0
  878. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/open_options_ext.rs +0 -0
  879. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/open_unchecked.rs +0 -0
  880. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/permissions_ext.rs +0 -0
  881. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/read_dir_inner.rs +0 -0
  882. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/read_link_unchecked.rs +0 -0
  883. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/remove_dir_all_impl.rs +0 -0
  884. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/remove_dir_unchecked.rs +0 -0
  885. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/remove_file_unchecked.rs +0 -0
  886. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/remove_open_dir_by_searching.rs +0 -0
  887. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/rename_unchecked.rs +0 -0
  888. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/reopen_impl.rs +0 -0
  889. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/set_permissions_impl.rs +0 -0
  890. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/set_symlink_permissions_unchecked.rs +0 -0
  891. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/set_times_impl.rs +0 -0
  892. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/stat_unchecked.rs +0 -0
  893. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/symlink_unchecked.rs +0 -0
  894. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/fs/times.rs +0 -0
  895. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/canonicalize_impl.rs +0 -0
  896. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/file_metadata.rs +0 -0
  897. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/file_path.rs +0 -0
  898. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/mod.rs +0 -0
  899. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/open_entry_impl.rs +0 -0
  900. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/open_impl.rs +0 -0
  901. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/procfs.rs +0 -0
  902. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/set_permissions_impl.rs +0 -0
  903. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/fs/set_times_impl.rs +0 -0
  904. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/linux/mod.rs +0 -0
  905. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/rustix/mod.rs +0 -0
  906. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/instant.rs +0 -0
  907. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/mod.rs +0 -0
  908. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/monotonic_clock.rs +0 -0
  909. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/system_clock.rs +0 -0
  910. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/time/system_time.rs +0 -0
  911. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/access_unchecked.rs +0 -0
  912. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/copy.rs +0 -0
  913. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/create_dir_unchecked.rs +0 -0
  914. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/create_file_at_w.rs +0 -0
  915. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/dir_entry_inner.rs +0 -0
  916. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/dir_options_ext.rs +0 -0
  917. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/dir_utils.rs +0 -0
  918. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/errors.rs +0 -0
  919. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/file_type_ext.rs +0 -0
  920. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/get_path.rs +0 -0
  921. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/hard_link_unchecked.rs +0 -0
  922. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/is_file_read_write_impl.rs +0 -0
  923. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/is_same_file.rs +0 -0
  924. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/metadata_ext.rs +0 -0
  925. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/mod.rs +0 -0
  926. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/oflags.rs +0 -0
  927. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/open_impl.rs +0 -0
  928. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/open_options_ext.rs +0 -0
  929. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/open_unchecked.rs +0 -0
  930. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/read_dir_inner.rs +0 -0
  931. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/read_link_impl.rs +0 -0
  932. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/read_link_unchecked.rs +0 -0
  933. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/remove_dir_all_impl.rs +0 -0
  934. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/remove_dir_unchecked.rs +0 -0
  935. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/remove_file_unchecked.rs +0 -0
  936. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/remove_open_dir_impl.rs +0 -0
  937. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/rename_unchecked.rs +0 -0
  938. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/reopen_impl.rs +0 -0
  939. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/set_permissions_unchecked.rs +0 -0
  940. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/set_symlink_permissions_unchecked.rs +0 -0
  941. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/set_times_impl.rs +0 -0
  942. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/stat_unchecked.rs +0 -0
  943. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/fs/symlink_unchecked.rs +0 -0
  944. /data/ext/cargo-vendor/{cap-primitives-3.4.4 → cap-primitives-3.4.5}/src/windows/mod.rs +0 -0
  945. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/COPYRIGHT +0 -0
  946. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/LICENSE-APACHE +0 -0
  947. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/LICENSE-Apache-2.0_WITH_LLVM-exception +0 -0
  948. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/LICENSE-MIT +0 -0
  949. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/README.md +0 -0
  950. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/build.rs +0 -0
  951. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/dir.rs +0 -0
  952. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/dir_entry.rs +0 -0
  953. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/file.rs +0 -0
  954. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/mod.rs +0 -0
  955. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs/read_dir.rs +0 -0
  956. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/dir.rs +0 -0
  957. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/dir_entry.rs +0 -0
  958. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/file.rs +0 -0
  959. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/mod.rs +0 -0
  960. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/fs_utf8/read_dir.rs +0 -0
  961. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/lib.rs +0 -0
  962. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/incoming.rs +0 -0
  963. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/mod.rs +0 -0
  964. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/pool.rs +0 -0
  965. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/tcp_stream.rs +0 -0
  966. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/net/udp_socket.rs +0 -0
  967. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/mod.rs +0 -0
  968. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/mod.rs +0 -0
  969. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/net/incoming.rs +0 -0
  970. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/net/mod.rs +0 -0
  971. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/net/unix_datagram.rs +0 -0
  972. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/os/unix/net/unix_stream.rs +0 -0
  973. /data/ext/cargo-vendor/{cap-std-3.4.4 → cap-std-3.4.5}/src/time/mod.rs +0 -0
  974. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/README.md +0 -0
  975. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/build.rs +0 -0
  976. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/api.rs +0 -0
  977. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/custom.rs +0 -0
  978. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/evex.rs +0 -0
  979. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/features.rs +0 -0
  980. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/fixed.rs +0 -0
  981. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/fuzz.rs +0 -0
  982. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/gpr.rs +0 -0
  983. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/imm.rs +0 -0
  984. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/inst.rs +0 -0
  985. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/lib.rs +0 -0
  986. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/main.rs +0 -0
  987. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/mem.rs +0 -0
  988. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/vex.rs +0 -0
  989. /data/ext/cargo-vendor/{cranelift-assembler-x64-0.124.2 → cranelift-assembler-x64-0.125.4}/src/xmm.rs +0 -0
  990. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/README.md +0 -0
  991. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl/custom.rs +0 -0
  992. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl/encoding.rs +0 -0
  993. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl/features.rs +0 -0
  994. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl/format.rs +0 -0
  995. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/dsl.rs +0 -0
  996. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/generate/features.rs +0 -0
  997. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/generate/format.rs +0 -0
  998. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/generate/operand.rs +0 -0
  999. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/abs.rs +0 -0
  1000. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/add.rs +0 -0
  1001. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/align.rs +0 -0
  1002. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/and.rs +0 -0
  1003. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/atomic.rs +0 -0
  1004. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/avg.rs +0 -0
  1005. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/bitmanip.rs +0 -0
  1006. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/cmov.rs +0 -0
  1007. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/cmp.rs +0 -0
  1008. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/cvt.rs +0 -0
  1009. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/div.rs +0 -0
  1010. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/fma.rs +0 -0
  1011. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/jmp.rs +0 -0
  1012. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/lanes.rs +0 -0
  1013. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/max.rs +0 -0
  1014. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/min.rs +0 -0
  1015. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/misc.rs +0 -0
  1016. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/mov.rs +0 -0
  1017. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/mul.rs +0 -0
  1018. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/neg.rs +0 -0
  1019. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/nop.rs +0 -0
  1020. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/or.rs +0 -0
  1021. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/pack.rs +0 -0
  1022. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/pma.rs +0 -0
  1023. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/recip.rs +0 -0
  1024. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/round.rs +0 -0
  1025. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/setcc.rs +0 -0
  1026. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/shift.rs +0 -0
  1027. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/sqrt.rs +0 -0
  1028. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/stack.rs +0 -0
  1029. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/sub.rs +0 -0
  1030. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/unpack.rs +0 -0
  1031. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions/xor.rs +0 -0
  1032. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/instructions.rs +0 -0
  1033. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/lib.rs +0 -0
  1034. /data/ext/cargo-vendor/{cranelift-assembler-x64-meta-0.124.2 → cranelift-assembler-x64-meta-0.125.4}/src/main.rs +0 -0
  1035. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/LICENSE +0 -0
  1036. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/README.md +0 -0
  1037. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/lib.rs +0 -0
  1038. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/map.rs +0 -0
  1039. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/node.rs +0 -0
  1040. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/path.rs +0 -0
  1041. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/pool.rs +0 -0
  1042. /data/ext/cargo-vendor/{cranelift-bforest-0.124.2 → cranelift-bforest-0.125.4}/src/set.rs +0 -0
  1043. /data/ext/cargo-vendor/{cranelift-bitset-0.124.2 → cranelift-bitset-0.125.4}/src/compound.rs +0 -0
  1044. /data/ext/cargo-vendor/{cranelift-bitset-0.124.2 → cranelift-bitset-0.125.4}/src/lib.rs +0 -0
  1045. /data/ext/cargo-vendor/{cranelift-bitset-0.124.2 → cranelift-bitset-0.125.4}/src/scalar.rs +0 -0
  1046. /data/ext/cargo-vendor/{cranelift-bitset-0.124.2 → cranelift-bitset-0.125.4}/tests/bitset.rs +0 -0
  1047. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/LICENSE +0 -0
  1048. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/README.md +0 -0
  1049. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/build.rs +0 -0
  1050. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/alias_analysis.rs +0 -0
  1051. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/binemit/mod.rs +0 -0
  1052. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/cfg_printer.rs +0 -0
  1053. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/constant_hash.rs +0 -0
  1054. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/context.rs +0 -0
  1055. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ctxhash.rs +0 -0
  1056. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/cursor.rs +0 -0
  1057. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/data_value.rs +0 -0
  1058. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/dbg.rs +0 -0
  1059. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/dominator_tree/simple.rs +0 -0
  1060. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/dominator_tree.rs +0 -0
  1061. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/egraph/cost.rs +0 -0
  1062. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/egraph/elaborate.rs +0 -0
  1063. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/egraph.rs +0 -0
  1064. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/flowgraph.rs +0 -0
  1065. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/incremental_cache.rs +0 -0
  1066. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/inst_predicates.rs +0 -0
  1067. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/inst_specs.isle +0 -0
  1068. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/atomic_rmw_op.rs +0 -0
  1069. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/builder.rs +0 -0
  1070. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/condcodes.rs +0 -0
  1071. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/constant.rs +0 -0
  1072. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/dfg.rs +0 -0
  1073. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/dynamic_type.rs +0 -0
  1074. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/entities.rs +0 -0
  1075. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/exception_table.rs +0 -0
  1076. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/extfunc.rs +0 -0
  1077. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/extname.rs +0 -0
  1078. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/function.rs +0 -0
  1079. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/globalvalue.rs +0 -0
  1080. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/immediates.rs +0 -0
  1081. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/jumptable.rs +0 -0
  1082. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/known_symbol.rs +0 -0
  1083. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/layout.rs +0 -0
  1084. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/libcall.rs +0 -0
  1085. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/memflags.rs +0 -0
  1086. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/memtype.rs +0 -0
  1087. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/mod.rs +0 -0
  1088. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/pcc.rs +0 -0
  1089. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/progpoint.rs +0 -0
  1090. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/sourceloc.rs +0 -0
  1091. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/stackslot.rs +0 -0
  1092. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/trapcode.rs +0 -0
  1093. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/types.rs +0 -0
  1094. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ir/user_stack_maps.rs +0 -0
  1095. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  1096. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/imms.rs +0 -0
  1097. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/regs.rs +0 -0
  1098. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  1099. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst/unwind.rs +0 -0
  1100. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/inst_neon.isle +0 -0
  1101. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1102. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/lower/isle.rs +0 -0
  1103. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/lower.rs +0 -0
  1104. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1105. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/mod.rs +0 -0
  1106. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/pcc.rs +0 -0
  1107. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/aarch64/settings.rs +0 -0
  1108. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/mod.rs +0 -0
  1109. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley32.rs +0 -0
  1110. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley64.rs +0 -0
  1111. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/abi.rs +0 -0
  1112. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/inst/args.rs +0 -0
  1113. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/inst/regs.rs +0 -0
  1114. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/lower/isle/generated_code.rs +0 -0
  1115. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/lower/isle.rs +0 -0
  1116. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/lower.rs +0 -0
  1117. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/mod.rs +0 -0
  1118. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/pulley_shared/settings.rs +0 -0
  1119. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/abi.rs +0 -0
  1120. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/args.rs +0 -0
  1121. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  1122. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/encode.rs +0 -0
  1123. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/imms.rs +0 -0
  1124. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/regs.rs +0 -0
  1125. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  1126. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/unwind.rs +0 -0
  1127. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst/vector.rs +0 -0
  1128. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/inst_vector.isle +0 -0
  1129. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1130. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/lower/isle.rs +0 -0
  1131. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/lower.rs +0 -0
  1132. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/riscv64/settings.rs +0 -0
  1133. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/args.rs +0 -0
  1134. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/emit_tests.rs +0 -0
  1135. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/imms.rs +0 -0
  1136. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/regs.rs +0 -0
  1137. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1138. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/inst/unwind.rs +0 -0
  1139. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1140. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/lower/isle.rs +0 -0
  1141. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/lower.rs +0 -0
  1142. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/mod.rs +0 -0
  1143. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/s390x/settings.rs +0 -0
  1144. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/unwind/systemv.rs +0 -0
  1145. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/unwind/winarm64.rs +0 -0
  1146. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/unwind/winx64.rs +0 -0
  1147. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/unwind.rs +0 -0
  1148. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/winch.rs +0 -0
  1149. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/emit_state.rs +0 -0
  1150. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/emit_tests.rs +0 -0
  1151. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/external.rs +0 -0
  1152. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/regs.rs +0 -0
  1153. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/stack_switch.rs +0 -0
  1154. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1155. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1156. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/inst/unwind.rs +0 -0
  1157. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1158. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/lower.rs +0 -0
  1159. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isa/x64/settings.rs +0 -0
  1160. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/isle_prelude.rs +0 -0
  1161. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/legalizer/branch_to_trap.rs +0 -0
  1162. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/legalizer/globalvalue.rs +0 -0
  1163. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/legalizer/mod.rs +0 -0
  1164. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/loop_analysis.rs +0 -0
  1165. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/buffer.rs +0 -0
  1166. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/compile.rs +0 -0
  1167. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/helpers.rs +0 -0
  1168. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/inst_common.rs +0 -0
  1169. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/mod.rs +0 -0
  1170. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/pcc.rs +0 -0
  1171. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/reg.rs +0 -0
  1172. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/valueregs.rs +0 -0
  1173. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/machinst/vcode.rs +0 -0
  1174. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/nan_canonicalization.rs +0 -0
  1175. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/README.md +0 -0
  1176. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/cprop.isle +0 -0
  1177. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/div_const.rs +0 -0
  1178. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/extends.isle +0 -0
  1179. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/generated_code.rs +0 -0
  1180. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/remat.isle +0 -0
  1181. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/skeleton.isle +0 -0
  1182. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/spaceship.isle +0 -0
  1183. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/spectre.isle +0 -0
  1184. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts/vector.isle +0 -0
  1185. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/opts.rs +0 -0
  1186. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/prelude.isle +0 -0
  1187. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/prelude_opt.isle +0 -0
  1188. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/print_errors.rs +0 -0
  1189. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/ranges.rs +0 -0
  1190. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/remove_constant_phis.rs +0 -0
  1191. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/result.rs +0 -0
  1192. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/scoped_hash_map.rs +0 -0
  1193. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/souper_harvest.rs +0 -0
  1194. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/take_and_replace.rs +0 -0
  1195. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/timing.rs +0 -0
  1196. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/traversals.rs +0 -0
  1197. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/unreachable_code.rs +0 -0
  1198. /data/ext/cargo-vendor/{cranelift-codegen-0.124.2 → cranelift-codegen-0.125.4}/src/value_label.rs +0 -0
  1199. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/LICENSE +0 -0
  1200. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/README.md +0 -0
  1201. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/cdsl/isa.rs +0 -0
  1202. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/cdsl/types.rs +0 -0
  1203. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/cdsl/typevar.rs +0 -0
  1204. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/constant_hash.rs +0 -0
  1205. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/gen_types.rs +0 -0
  1206. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isa/arm64.rs +0 -0
  1207. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isa/mod.rs +0 -0
  1208. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isa/pulley.rs +0 -0
  1209. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isa/s390x.rs +0 -0
  1210. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/isle.rs +0 -0
  1211. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/lib.rs +0 -0
  1212. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/pulley.rs +0 -0
  1213. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/shared/immediates.rs +0 -0
  1214. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/shared/mod.rs +0 -0
  1215. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/shared/types.rs +0 -0
  1216. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.124.2 → cranelift-codegen-meta-0.125.4}/src/unique_table.rs +0 -0
  1217. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/LICENSE +0 -0
  1218. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/README.md +0 -0
  1219. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/src/constant_hash.rs +0 -0
  1220. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/src/constants.rs +0 -0
  1221. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.124.2 → cranelift-codegen-shared-0.125.4}/src/lib.rs +0 -0
  1222. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/LICENSE +0 -0
  1223. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/README.md +0 -0
  1224. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/src/chaos.rs +0 -0
  1225. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/src/lib.rs +0 -0
  1226. /data/ext/cargo-vendor/{cranelift-control-0.124.2 → cranelift-control-0.125.4}/src/zero_sized.rs +0 -0
  1227. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/LICENSE +0 -0
  1228. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/README.md +0 -0
  1229. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/boxed_slice.rs +0 -0
  1230. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/iter.rs +0 -0
  1231. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/keys.rs +0 -0
  1232. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/lib.rs +0 -0
  1233. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/list.rs +0 -0
  1234. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/map.rs +0 -0
  1235. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/packed_option.rs +0 -0
  1236. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/set.rs +0 -0
  1237. /data/ext/cargo-vendor/{cranelift-entity-0.124.2 → cranelift-entity-0.125.4}/src/sparse.rs +0 -0
  1238. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/LICENSE +0 -0
  1239. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/README.md +0 -0
  1240. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/frontend/safepoints.rs +0 -0
  1241. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/lib.rs +0 -0
  1242. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/ssa.rs +0 -0
  1243. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/switch.rs +0 -0
  1244. /data/ext/cargo-vendor/{cranelift-frontend-0.124.2 → cranelift-frontend-0.125.4}/src/variable.rs +0 -0
  1245. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/README.md +0 -0
  1246. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/build.rs +0 -0
  1247. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/bad_converters.isle +0 -0
  1248. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1249. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1250. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/error1.isle +0 -0
  1251. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/extra_parens.isle +0 -0
  1252. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/impure_expression.isle +0 -0
  1253. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/impure_rhs.isle +0 -0
  1254. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1255. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/fail/multi_prio.isle +0 -0
  1256. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/borrows.isle +0 -0
  1257. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/borrows_main.rs +0 -0
  1258. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/iflets.isle +0 -0
  1259. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/iflets_main.rs +0 -0
  1260. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/multi_constructor.isle +0 -0
  1261. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/multi_constructor_main.rs +0 -0
  1262. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/multi_extractor.isle +0 -0
  1263. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/multi_extractor_main.rs +0 -0
  1264. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/test.isle +0 -0
  1265. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/link/test_main.rs +0 -0
  1266. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/bound_var.isle +0 -0
  1267. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/construct_and_extract.isle +0 -0
  1268. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/conversions.isle +0 -0
  1269. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/conversions_extern.isle +0 -0
  1270. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/let.isle +0 -0
  1271. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/nodebug.isle +0 -0
  1272. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1273. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/test2.isle +0 -0
  1274. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/test3.isle +0 -0
  1275. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/test4.isle +0 -0
  1276. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/tutorial.isle +0 -0
  1277. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/pass/veri_spec.isle +0 -0
  1278. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/run/iconst.isle +0 -0
  1279. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/run/iconst_main.rs +0 -0
  1280. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/run/let_shadowing.isle +0 -0
  1281. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/isle_examples/run/let_shadowing_main.rs +0 -0
  1282. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/ast.rs +0 -0
  1283. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/codegen.rs +0 -0
  1284. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/compile.rs +0 -0
  1285. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/disjointsets.rs +0 -0
  1286. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/error.rs +0 -0
  1287. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/files.rs +0 -0
  1288. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/lexer.rs +0 -0
  1289. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/lib.rs +0 -0
  1290. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/log.rs +0 -0
  1291. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/overlap.rs +0 -0
  1292. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/parser.rs +0 -0
  1293. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/printer.rs +0 -0
  1294. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/sema.rs +0 -0
  1295. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/serialize.rs +0 -0
  1296. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/stablemapset.rs +0 -0
  1297. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/src/trie_again.rs +0 -0
  1298. /data/ext/cargo-vendor/{cranelift-isle-0.124.2 → cranelift-isle-0.125.4}/tests/run_tests.rs +0 -0
  1299. /data/ext/cargo-vendor/{cranelift-native-0.124.2 → cranelift-native-0.125.4}/LICENSE +0 -0
  1300. /data/ext/cargo-vendor/{cranelift-native-0.124.2 → cranelift-native-0.125.4}/README.md +0 -0
  1301. /data/ext/cargo-vendor/{cranelift-native-0.124.2 → cranelift-native-0.125.4}/src/lib.rs +0 -0
  1302. /data/ext/cargo-vendor/{cranelift-native-0.124.2 → cranelift-native-0.125.4}/src/riscv.rs +0 -0
  1303. /data/ext/cargo-vendor/{cranelift-srcgen-0.124.2 → cranelift-srcgen-0.125.4}/src/error.rs +0 -0
  1304. /data/ext/cargo-vendor/{cranelift-srcgen-0.124.2 → cranelift-srcgen-0.125.4}/src/lib.rs +0 -0
  1305. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/README.md +0 -0
  1306. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/src/clocks.rs +0 -0
  1307. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/src/lib.rs +0 -0
  1308. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/src/scheduling.rs +0 -0
  1309. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/tests/clocks.rs +0 -0
  1310. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/tests/common/mod.rs +0 -0
  1311. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/tests/random.rs +0 -0
  1312. /data/ext/cargo-vendor/{deterministic-wasi-ctx-3.0.2 → deterministic-wasi-ctx-3.0.3}/tests/scheduler.rs +0 -0
  1313. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/CONTRIBUTING.md +0 -0
  1314. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/Cargo.toml.orig +0 -0
  1315. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/README.md +0 -0
  1316. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/examples/profiler-html.rs +0 -0
  1317. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/decode.rs +0 -0
  1318. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/disas.rs +0 -0
  1319. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/encode.rs +0 -0
  1320. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/imms.rs +0 -0
  1321. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/interp/debug.rs +0 -0
  1322. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/interp/match_loop.rs +0 -0
  1323. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/interp/tail_loop.rs +0 -0
  1324. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/interp.rs +0 -0
  1325. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/op.rs +0 -0
  1326. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/opcode.rs +0 -0
  1327. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/profile.rs +0 -0
  1328. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/profile_disabled.rs +0 -0
  1329. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/src/regs.rs +0 -0
  1330. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/tests/all/disas.rs +0 -0
  1331. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/tests/all/interp.rs +0 -0
  1332. /data/ext/cargo-vendor/{pulley-interpreter-37.0.2 → pulley-interpreter-38.0.4}/tests/all/main.rs +0 -0
  1333. /data/ext/cargo-vendor/{pulley-macros-37.0.2 → pulley-macros-38.0.4}/Cargo.toml.orig +0 -0
  1334. /data/ext/cargo-vendor/{pulley-macros-37.0.2 → pulley-macros-38.0.4}/src/interp_disable_if_cfg.rs +0 -0
  1335. /data/ext/cargo-vendor/{pulley-macros-37.0.2 → pulley-macros-38.0.4}/src/lib.rs +0 -0
  1336. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/LICENSE +0 -0
  1337. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/README.md +0 -0
  1338. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/proptest-regressions/runtime/vm/instance/allocator/pooling/memory_pool.txt +0 -0
  1339. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/call_graph.rs +0 -0
  1340. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/code_builder.rs +0 -0
  1341. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/runtime.rs +0 -0
  1342. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/scc.rs +0 -0
  1343. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/compile/stratify.rs +0 -0
  1344. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent/jitdump.rs +0 -0
  1345. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent/perfmap.rs +0 -0
  1346. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent/pulley.rs +0 -0
  1347. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent/vtune.rs +0 -0
  1348. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/profiling_agent.rs +0 -0
  1349. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/code.rs +0 -0
  1350. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/code_memory.rs +0 -0
  1351. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_0_hello_world.rs +0 -0
  1352. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_1_world_imports.rs +0 -0
  1353. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_2_world_exports.rs +0 -0
  1354. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_3_interface_imports.rs +0 -0
  1355. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_4_imported_resources.rs +0 -0
  1356. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_5_all_world_export_kinds.rs +0 -0
  1357. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_6_exported_resources.rs +0 -0
  1358. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_7_async.rs +0 -0
  1359. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/_8_store_in_imports.rs +0 -0
  1360. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/bindgen_examples/mod.rs +0 -0
  1361. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/abort.rs +0 -0
  1362. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/error_contexts.rs +0 -0
  1363. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/futures_and_streams/buffers.rs +0 -0
  1364. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/table.rs +0 -0
  1365. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent/tls.rs +0 -0
  1366. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/concurrent_disabled.rs +0 -0
  1367. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/func/options.rs +0 -0
  1368. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/has_data.rs +0 -0
  1369. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/linker.rs +0 -0
  1370. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/matching.rs +0 -0
  1371. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/resource_table.rs +0 -0
  1372. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/resources.rs +0 -0
  1373. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/storage.rs +0 -0
  1374. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/store.rs +0 -0
  1375. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/types.rs +0 -0
  1376. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/component/values.rs +0 -0
  1377. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/debug.rs +0 -0
  1378. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/exception.rs +0 -0
  1379. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/externals/global.rs +0 -0
  1380. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/externals/table.rs +0 -0
  1381. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/externals/tag.rs +0 -0
  1382. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/externals.rs +0 -0
  1383. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/fiber.rs +0 -0
  1384. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/func/typed.rs +0 -0
  1385. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/anyref.rs +0 -0
  1386. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/arrayref.rs +0 -0
  1387. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/eqref.rs +0 -0
  1388. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/exnref.rs +0 -0
  1389. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/externref.rs +0 -0
  1390. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/i31.rs +0 -0
  1391. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/rooting.rs +0 -0
  1392. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled/structref.rs +0 -0
  1393. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/disabled.rs +0 -0
  1394. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/anyref.rs +0 -0
  1395. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/arrayref.rs +0 -0
  1396. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/eqref.rs +0 -0
  1397. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/exnref.rs +0 -0
  1398. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/externref.rs +0 -0
  1399. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/i31.rs +0 -0
  1400. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/rooting.rs +0 -0
  1401. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled/structref.rs +0 -0
  1402. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/enabled.rs +0 -0
  1403. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/noextern.rs +0 -0
  1404. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc/none_ref.rs +0 -0
  1405. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/gc.rs +0 -0
  1406. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/instance.rs +0 -0
  1407. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/limits.rs +0 -0
  1408. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/linker.rs +0 -0
  1409. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/module/registry.rs +0 -0
  1410. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/resources.rs +0 -0
  1411. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/stack.rs +0 -0
  1412. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/async_.rs +0 -0
  1413. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/context.rs +0 -0
  1414. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/data.rs +0 -0
  1415. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/func_refs.rs +0 -0
  1416. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/gc.rs +0 -0
  1417. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/store/token.rs +0 -0
  1418. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/trampoline/func.rs +0 -0
  1419. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/trampoline/global.rs +0 -0
  1420. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/trampoline.rs +0 -0
  1421. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/type_registry.rs +0 -0
  1422. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/types/matching.rs +0 -0
  1423. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/types.rs +0 -0
  1424. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/uninhabited.rs +0 -0
  1425. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/unix.rs +0 -0
  1426. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/v128.rs +0 -0
  1427. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/values.rs +0 -0
  1428. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/always_mut.rs +0 -0
  1429. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/async_yield.rs +0 -0
  1430. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/byte_count.rs +0 -0
  1431. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/component/handle_table.rs +0 -0
  1432. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/component/resources.rs +0 -0
  1433. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/const_expr.rs +0 -0
  1434. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/cow.rs +0 -0
  1435. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/cow_disabled.rs +0 -0
  1436. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/debug_builtins.rs +0 -0
  1437. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/export.rs +0 -0
  1438. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/disabled.rs +0 -0
  1439. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/arrayref.rs +0 -0
  1440. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/data.rs +0 -0
  1441. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/drc.rs +0 -0
  1442. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/exnref.rs +0 -0
  1443. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/externref.rs +0 -0
  1444. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/free_list.rs +0 -0
  1445. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/null.rs +0 -0
  1446. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled/structref.rs +0 -0
  1447. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/enabled.rs +0 -0
  1448. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/func_ref.rs +0 -0
  1449. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/gc_ref.rs +0 -0
  1450. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/gc_runtime.rs +0 -0
  1451. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/host_data.rs +0 -0
  1452. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc/i31.rs +0 -0
  1453. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/gc.rs +0 -0
  1454. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/imports.rs +0 -0
  1455. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/on_demand.rs +0 -0
  1456. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/decommit_queue.rs +0 -0
  1457. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +0 -0
  1458. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +0 -0
  1459. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +0 -0
  1460. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +0 -0
  1461. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/metrics.rs +0 -0
  1462. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/table_pool.rs +0 -0
  1463. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +0 -0
  1464. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator/pooling.rs +0 -0
  1465. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/instance/allocator.rs +0 -0
  1466. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/libcalls.rs +0 -0
  1467. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/malloc.rs +0 -0
  1468. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/mmap.rs +0 -0
  1469. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/shared_memory.rs +0 -0
  1470. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/shared_memory_disabled.rs +0 -0
  1471. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory/static_.rs +0 -0
  1472. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/memory.rs +0 -0
  1473. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mmap.rs +0 -0
  1474. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mmap_vec.rs +0 -0
  1475. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/module_id.rs +0 -0
  1476. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/disabled.rs +0 -0
  1477. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/enabled.rs +0 -0
  1478. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/mod.rs +0 -0
  1479. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/pkru.rs +0 -0
  1480. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/mpk/sys.rs +0 -0
  1481. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/pagemap_disabled.rs +0 -0
  1482. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/parking_spot.rs +0 -0
  1483. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/provenance.rs +0 -0
  1484. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/send_sync_ptr.rs +0 -0
  1485. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/send_sync_unsafe_cell.rs +0 -0
  1486. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/stack_switching/stack/dummy.rs +0 -0
  1487. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/stack_switching/stack.rs +0 -0
  1488. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/store_box.rs +0 -0
  1489. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/custom/mmap.rs +0 -0
  1490. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/custom/mod.rs +0 -0
  1491. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/custom/unwind.rs +0 -0
  1492. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/custom/vm.rs +0 -0
  1493. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/miri/mmap.rs +0 -0
  1494. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/miri/mod.rs +0 -0
  1495. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/miri/unwind.rs +0 -0
  1496. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/miri/vm.rs +0 -0
  1497. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/mod.rs +0 -0
  1498. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/mmap.rs +0 -0
  1499. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/mod.rs +0 -0
  1500. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/pagemap.rs +0 -0
  1501. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/unwind.rs +0 -0
  1502. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/unix/vm.rs +0 -0
  1503. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/windows/mmap.rs +0 -0
  1504. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/windows/mod.rs +0 -0
  1505. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/windows/unwind64.rs +0 -0
  1506. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/sys/windows/vm.rs +0 -0
  1507. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/table.rs +0 -0
  1508. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/traphandlers/backtrace.rs +0 -0
  1509. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/traphandlers/coredump_disabled.rs +0 -0
  1510. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/traphandlers/coredump_enabled.rs +0 -0
  1511. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/traphandlers/signals.rs +0 -0
  1512. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm/vmcontext/vm_host_func_context.rs +0 -0
  1513. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/vm.rs +0 -0
  1514. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/wave/component.rs +0 -0
  1515. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/wave/core.rs +0 -0
  1516. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/wave.rs +0 -0
  1517. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime/windows.rs +0 -0
  1518. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/runtime.rs +0 -0
  1519. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/sync_nostd.rs +0 -0
  1520. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/src/sync_std.rs +0 -0
  1521. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/custom_signal_handler.rs +0 -0
  1522. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/engine_across_forks.rs +0 -0
  1523. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/host_segfault.rs +0 -0
  1524. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/pooling_alloc_near_oom.rs +0 -0
  1525. /data/ext/cargo-vendor/{wasmtime-37.0.2 → wasmtime-38.0.4}/tests/unload-engine.rs +0 -0
  1526. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/LICENSE +0 -0
  1527. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/examples/factc.rs +0 -0
  1528. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/compile/address_map.rs +0 -0
  1529. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/compile/module_types.rs +0 -0
  1530. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/compile/stack_maps.rs +0 -0
  1531. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/compile/trap_encoding.rs +0 -0
  1532. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/names.rs +0 -0
  1533. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/translate/adapt.rs +0 -0
  1534. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/translate.rs +0 -0
  1535. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/types.rs +0 -0
  1536. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/types_builder/resources.rs +0 -0
  1537. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/types_builder.rs +0 -0
  1538. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/component/vmcomponent_offsets.rs +0 -0
  1539. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/demangling.rs +0 -0
  1540. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/error.rs +0 -0
  1541. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/ext.rs +0 -0
  1542. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/core_types.rs +0 -0
  1543. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/signature.rs +0 -0
  1544. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/trampoline.rs +0 -0
  1545. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/transcode.rs +0 -0
  1546. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact/traps.rs +0 -0
  1547. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/fact.rs +0 -0
  1548. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/gc/drc.rs +0 -0
  1549. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/gc/null.rs +0 -0
  1550. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/gc.rs +0 -0
  1551. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/module_types.rs +0 -0
  1552. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/obj.rs +0 -0
  1553. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/prelude.rs +0 -0
  1554. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/ref_bits.rs +0 -0
  1555. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/scopevec.rs +0 -0
  1556. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/stack_map.rs +0 -0
  1557. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/stack_switching.rs +0 -0
  1558. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/tunables.rs +0 -0
  1559. /data/ext/cargo-vendor/{wasmtime-environ-37.0.2 → wasmtime-environ-38.0.4}/src/types.rs +0 -0
  1560. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/Cargo.toml.orig +0 -0
  1561. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/LICENSE +0 -0
  1562. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/build.rs +0 -0
  1563. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/config/tests.rs +0 -0
  1564. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/config.rs +0 -0
  1565. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/lib.rs +0 -0
  1566. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/tests.rs +0 -0
  1567. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/worker/tests/system_time_stub.rs +0 -0
  1568. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/worker/tests.rs +0 -0
  1569. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/src/worker.rs +0 -0
  1570. /data/ext/cargo-vendor/{wasmtime-internal-cache-37.0.2 → wasmtime-internal-cache-38.0.4}/tests/cache_write_default_config.rs +0 -0
  1571. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/Cargo.toml.orig +0 -0
  1572. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/build.rs +0 -0
  1573. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/src/bindgen.rs +0 -0
  1574. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/src/component.rs +0 -0
  1575. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/src/lib.rs +0 -0
  1576. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/char.wit +0 -0
  1577. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/conventions.wit +0 -0
  1578. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/dead-code.wit +0 -0
  1579. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/direct-import.wit +0 -0
  1580. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/empty.wit +0 -0
  1581. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/flags.wit +0 -0
  1582. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/floats.wit +0 -0
  1583. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/function-new.wit +0 -0
  1584. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/host-world.wit +0 -0
  1585. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/integers.wit +0 -0
  1586. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/lists.wit +0 -0
  1587. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/many-arguments.wit +0 -0
  1588. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1589. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1590. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/multiversion/root.wit +0 -0
  1591. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/path1/world.wit +0 -0
  1592. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/path2/world.wit +0 -0
  1593. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/records.wit +0 -0
  1594. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/rename.wit +0 -0
  1595. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/resources-export.wit +0 -0
  1596. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/resources-import.wit +0 -0
  1597. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/share-types.wit +0 -0
  1598. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/simple-functions.wit +0 -0
  1599. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/simple-lists.wit +0 -0
  1600. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/simple-wasi.wit +0 -0
  1601. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/small-anonymous.wit +0 -0
  1602. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/smoke-default.wit +0 -0
  1603. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/smoke-export.wit +0 -0
  1604. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/smoke.wit +0 -0
  1605. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/strings.wit +0 -0
  1606. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/unstable-features.wit +0 -0
  1607. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/unversioned-foo.wit +0 -0
  1608. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/use-paths.wit +0 -0
  1609. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/variants.wit +0 -0
  1610. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/wat.wit +0 -0
  1611. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen/worlds-with-types.wit +0 -0
  1612. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/codegen_no_std.rs +0 -0
  1613. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/char.rs +0 -0
  1614. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/char_async.rs +0 -0
  1615. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/char_concurrent.rs +0 -0
  1616. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/char_tracing_async.rs +0 -0
  1617. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/conventions.rs +0 -0
  1618. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/conventions_async.rs +0 -0
  1619. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/conventions_concurrent.rs +0 -0
  1620. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/conventions_tracing_async.rs +0 -0
  1621. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/dead-code.rs +0 -0
  1622. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/dead-code_async.rs +0 -0
  1623. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/dead-code_concurrent.rs +0 -0
  1624. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/dead-code_tracing_async.rs +0 -0
  1625. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/direct-import.rs +0 -0
  1626. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/direct-import_async.rs +0 -0
  1627. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/direct-import_concurrent.rs +0 -0
  1628. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/direct-import_tracing_async.rs +0 -0
  1629. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/empty.rs +0 -0
  1630. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/empty_async.rs +0 -0
  1631. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/empty_concurrent.rs +0 -0
  1632. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/empty_tracing_async.rs +0 -0
  1633. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/flags.rs +0 -0
  1634. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/flags_async.rs +0 -0
  1635. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/flags_concurrent.rs +0 -0
  1636. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/flags_tracing_async.rs +0 -0
  1637. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/floats.rs +0 -0
  1638. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/floats_async.rs +0 -0
  1639. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/floats_concurrent.rs +0 -0
  1640. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/floats_tracing_async.rs +0 -0
  1641. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/function-new.rs +0 -0
  1642. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/function-new_async.rs +0 -0
  1643. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/function-new_concurrent.rs +0 -0
  1644. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/function-new_tracing_async.rs +0 -0
  1645. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/host-world.rs +0 -0
  1646. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/host-world_async.rs +0 -0
  1647. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/host-world_concurrent.rs +0 -0
  1648. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/host-world_tracing_async.rs +0 -0
  1649. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/integers.rs +0 -0
  1650. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/integers_async.rs +0 -0
  1651. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/integers_concurrent.rs +0 -0
  1652. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/integers_tracing_async.rs +0 -0
  1653. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/lists.rs +0 -0
  1654. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/lists_async.rs +0 -0
  1655. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/lists_concurrent.rs +0 -0
  1656. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/lists_tracing_async.rs +0 -0
  1657. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/many-arguments.rs +0 -0
  1658. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/many-arguments_async.rs +0 -0
  1659. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/many-arguments_concurrent.rs +0 -0
  1660. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/many-arguments_tracing_async.rs +0 -0
  1661. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multi-return.rs +0 -0
  1662. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multiversion.rs +0 -0
  1663. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multiversion_async.rs +0 -0
  1664. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multiversion_concurrent.rs +0 -0
  1665. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/multiversion_tracing_async.rs +0 -0
  1666. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/path1.rs +0 -0
  1667. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/path2.rs +0 -0
  1668. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/records.rs +0 -0
  1669. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/records_async.rs +0 -0
  1670. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/records_concurrent.rs +0 -0
  1671. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/records_tracing_async.rs +0 -0
  1672. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/rename.rs +0 -0
  1673. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/rename_async.rs +0 -0
  1674. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/rename_concurrent.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/rename_tracing_async.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-export.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-export_async.rs +0 -0
  1678. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-export_concurrent.rs +0 -0
  1679. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-export_tracing_async.rs +0 -0
  1680. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-import.rs +0 -0
  1681. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-import_async.rs +0 -0
  1682. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-import_concurrent.rs +0 -0
  1683. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/resources-import_tracing_async.rs +0 -0
  1684. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/share-types.rs +0 -0
  1685. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/share-types_async.rs +0 -0
  1686. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/share-types_concurrent.rs +0 -0
  1687. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/share-types_tracing_async.rs +0 -0
  1688. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-functions.rs +0 -0
  1689. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-functions_async.rs +0 -0
  1690. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-functions_concurrent.rs +0 -0
  1691. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-functions_tracing_async.rs +0 -0
  1692. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-lists.rs +0 -0
  1693. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-lists_async.rs +0 -0
  1694. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-lists_concurrent.rs +0 -0
  1695. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-lists_tracing_async.rs +0 -0
  1696. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-wasi.rs +0 -0
  1697. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-wasi_async.rs +0 -0
  1698. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-wasi_concurrent.rs +0 -0
  1699. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/simple-wasi_tracing_async.rs +0 -0
  1700. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/small-anonymous.rs +0 -0
  1701. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/small-anonymous_async.rs +0 -0
  1702. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/small-anonymous_concurrent.rs +0 -0
  1703. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/small-anonymous_tracing_async.rs +0 -0
  1704. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-default.rs +0 -0
  1705. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-default_async.rs +0 -0
  1706. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-default_concurrent.rs +0 -0
  1707. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-default_tracing_async.rs +0 -0
  1708. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-export.rs +0 -0
  1709. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-export_async.rs +0 -0
  1710. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-export_concurrent.rs +0 -0
  1711. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke-export_tracing_async.rs +0 -0
  1712. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke.rs +0 -0
  1713. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke_async.rs +0 -0
  1714. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke_concurrent.rs +0 -0
  1715. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/smoke_tracing_async.rs +0 -0
  1716. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/strings.rs +0 -0
  1717. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/strings_async.rs +0 -0
  1718. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/strings_concurrent.rs +0 -0
  1719. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/strings_tracing_async.rs +0 -0
  1720. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unstable-features.rs +0 -0
  1721. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unstable-features_async.rs +0 -0
  1722. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unstable-features_concurrent.rs +0 -0
  1723. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unstable-features_tracing_async.rs +0 -0
  1724. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unversioned-foo.rs +0 -0
  1725. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unversioned-foo_async.rs +0 -0
  1726. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unversioned-foo_concurrent.rs +0 -0
  1727. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/unversioned-foo_tracing_async.rs +0 -0
  1728. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/use-paths.rs +0 -0
  1729. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/use-paths_async.rs +0 -0
  1730. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/use-paths_concurrent.rs +0 -0
  1731. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/use-paths_tracing_async.rs +0 -0
  1732. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/variants.rs +0 -0
  1733. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/variants_async.rs +0 -0
  1734. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/variants_concurrent.rs +0 -0
  1735. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/variants_tracing_async.rs +0 -0
  1736. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/wat.rs +0 -0
  1737. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/wat_async.rs +0 -0
  1738. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/wat_concurrent.rs +0 -0
  1739. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/wat_tracing_async.rs +0 -0
  1740. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded/worlds-with-types.rs +0 -0
  1741. /data/ext/cargo-vendor/{wasmtime-internal-component-macro-37.0.2 → wasmtime-internal-component-macro-38.0.4}/tests/expanded.rs +0 -0
  1742. /data/ext/cargo-vendor/{wasmtime-internal-component-util-37.0.2 → wasmtime-internal-component-util-38.0.4}/Cargo.toml.orig +0 -0
  1743. /data/ext/cargo-vendor/{wasmtime-internal-component-util-37.0.2 → wasmtime-internal-component-util-38.0.4}/src/lib.rs +0 -0
  1744. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/Cargo.toml.orig +0 -0
  1745. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/LICENSE +0 -0
  1746. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/SECURITY.md +0 -0
  1747. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/bounds_checks.rs +0 -0
  1748. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/builder.rs +0 -0
  1749. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/compiled_function.rs +0 -0
  1750. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/gc.rs +0 -0
  1751. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/address_transform.rs +0 -0
  1752. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/attr.rs +0 -0
  1753. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/debug_transform_logging.rs +0 -0
  1754. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/expression.rs +0 -0
  1755. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/line_program.rs +0 -0
  1756. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/mod.rs +0 -0
  1757. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/range_info_builder.rs +0 -0
  1758. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/refs.rs +0 -0
  1759. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/simulate.rs +0 -0
  1760. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/synthetic.rs +0 -0
  1761. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/unit.rs +0 -0
  1762. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/transform/utils.rs +0 -0
  1763. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug/write_debuginfo.rs +0 -0
  1764. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/debug.rs +0 -0
  1765. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc/disabled.rs +0 -0
  1766. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc/enabled/drc.rs +0 -0
  1767. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc/enabled/null.rs +0 -0
  1768. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc/enabled.rs +0 -0
  1769. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/gc.rs +0 -0
  1770. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/stack_switching/control_effect.rs +0 -0
  1771. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/stack_switching/fatpointer.rs +0 -0
  1772. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/func_environ/stack_switching/mod.rs +0 -0
  1773. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/isa_builder.rs +0 -0
  1774. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/obj.rs +0 -0
  1775. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/code_translator.rs +0 -0
  1776. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/environ/mod.rs +0 -0
  1777. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/environ/spec.rs +0 -0
  1778. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/func_translator.rs +0 -0
  1779. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/heap.rs +0 -0
  1780. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/mod.rs +0 -0
  1781. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/stack.rs +0 -0
  1782. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/table.rs +0 -0
  1783. /data/ext/cargo-vendor/{wasmtime-internal-cranelift-37.0.2 → wasmtime-internal-cranelift-38.0.4}/src/translate/translation_utils.rs +0 -0
  1784. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/LICENSE +0 -0
  1785. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/miri.rs +0 -0
  1786. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/nostd.rs +0 -0
  1787. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/unix.rs +0 -0
  1788. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/windows.c +0 -0
  1789. /data/ext/cargo-vendor/{wasmtime-internal-fiber-37.0.2 → wasmtime-internal-fiber-38.0.4}/src/windows.rs +0 -0
  1790. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/Cargo.toml.orig +0 -0
  1791. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/README.md +0 -0
  1792. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/build.rs +0 -0
  1793. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/gdbjit.c +0 -0
  1794. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/src/gdb_jit_int.rs +0 -0
  1795. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/src/lib.rs +0 -0
  1796. /data/ext/cargo-vendor/{wasmtime-internal-jit-debug-37.0.2 → wasmtime-internal-jit-debug-38.0.4}/src/perf_jitdump.rs +0 -0
  1797. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/Cargo.toml.orig +0 -0
  1798. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/src/lib.rs +0 -0
  1799. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/src/libc.rs +0 -0
  1800. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/src/miri.rs +0 -0
  1801. /data/ext/cargo-vendor/{wasmtime-internal-jit-icache-coherence-37.0.2 → wasmtime-internal-jit-icache-coherence-38.0.4}/src/win.rs +0 -0
  1802. /data/ext/cargo-vendor/{wasmtime-internal-math-37.0.2 → wasmtime-internal-math-38.0.4}/Cargo.toml.orig +0 -0
  1803. /data/ext/cargo-vendor/{wasmtime-internal-math-37.0.2 → wasmtime-internal-math-38.0.4}/src/lib.rs +0 -0
  1804. /data/ext/cargo-vendor/{wasmtime-internal-slab-37.0.2 → wasmtime-internal-slab-38.0.4}/Cargo.toml.orig +0 -0
  1805. /data/ext/cargo-vendor/{wasmtime-internal-slab-37.0.2 → wasmtime-internal-slab-38.0.4}/src/lib.rs +0 -0
  1806. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/Cargo.toml.orig +0 -0
  1807. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/LICENSE +0 -0
  1808. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/README.md +0 -0
  1809. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/build.rs +0 -0
  1810. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/aarch64.rs +0 -0
  1811. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/mod.rs +0 -0
  1812. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/riscv64.rs +0 -0
  1813. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/s390x.rs +0 -0
  1814. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/arch/x86.rs +0 -0
  1815. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/exception_table.rs +0 -0
  1816. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/lib.rs +0 -0
  1817. /data/ext/cargo-vendor/{wasmtime-internal-unwinder-37.0.2 → wasmtime-internal-unwinder-38.0.4}/src/throw.rs +0 -0
  1818. /data/ext/cargo-vendor/{wasmtime-internal-versioned-export-macros-37.0.2 → wasmtime-internal-versioned-export-macros-38.0.4}/Cargo.toml.orig +0 -0
  1819. /data/ext/cargo-vendor/{wasmtime-internal-versioned-export-macros-37.0.2 → wasmtime-internal-versioned-export-macros-38.0.4}/src/lib.rs +0 -0
  1820. /data/ext/cargo-vendor/{wasmtime-internal-winch-37.0.2 → wasmtime-internal-winch-38.0.4}/Cargo.toml.orig +0 -0
  1821. /data/ext/cargo-vendor/{wasmtime-internal-winch-37.0.2 → wasmtime-internal-winch-38.0.4}/LICENSE +0 -0
  1822. /data/ext/cargo-vendor/{wasmtime-internal-winch-37.0.2 → wasmtime-internal-winch-38.0.4}/src/builder.rs +0 -0
  1823. /data/ext/cargo-vendor/{wasmtime-internal-winch-37.0.2 → wasmtime-internal-winch-38.0.4}/src/lib.rs +0 -0
  1824. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-37.0.2 → wasmtime-internal-wit-bindgen-38.0.4}/Cargo.toml.orig +0 -0
  1825. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-37.0.2 → wasmtime-internal-wit-bindgen-38.0.4}/src/rust.rs +0 -0
  1826. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-37.0.2 → wasmtime-internal-wit-bindgen-38.0.4}/src/source.rs +0 -0
  1827. /data/ext/cargo-vendor/{wasmtime-internal-wit-bindgen-37.0.2 → wasmtime-internal-wit-bindgen-38.0.4}/src/types.rs +0 -0
  1828. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/Cargo.toml.orig +0 -0
  1829. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/LICENSE +0 -0
  1830. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/README.md +0 -0
  1831. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/empty.rs +0 -0
  1832. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/file.rs +0 -0
  1833. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/locked_async.rs +0 -0
  1834. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/mem.rs +0 -0
  1835. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/stdout.rs +0 -0
  1836. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli/worker_thread_stdin.rs +0 -0
  1837. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/cli.rs +0 -0
  1838. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/clocks.rs +0 -0
  1839. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/ctx.rs +0 -0
  1840. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/error.rs +0 -0
  1841. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/filesystem.rs +0 -0
  1842. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p0.rs +0 -0
  1843. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p1.rs +0 -0
  1844. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/bindings.rs +0 -0
  1845. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/filesystem.rs +0 -0
  1846. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/clocks.rs +0 -0
  1847. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/env.rs +0 -0
  1848. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/exit.rs +0 -0
  1849. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/filesystem/sync.rs +0 -0
  1850. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/filesystem.rs +0 -0
  1851. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/instance_network.rs +0 -0
  1852. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/io.rs +0 -0
  1853. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/mod.rs +0 -0
  1854. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/network.rs +0 -0
  1855. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/random.rs +0 -0
  1856. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/tcp.rs +0 -0
  1857. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/tcp_create_socket.rs +0 -0
  1858. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/udp.rs +0 -0
  1859. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/host/udp_create_socket.rs +0 -0
  1860. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/ip_name_lookup.rs +0 -0
  1861. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/mod.rs +0 -0
  1862. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/network.rs +0 -0
  1863. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/pipe.rs +0 -0
  1864. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/poll.rs +0 -0
  1865. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/stdio.rs +0 -0
  1866. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/tcp.rs +0 -0
  1867. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/udp.rs +0 -0
  1868. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/command.wit +0 -0
  1869. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/environment.wit +0 -0
  1870. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/exit.wit +0 -0
  1871. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/imports.wit +0 -0
  1872. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/run.wit +0 -0
  1873. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/stdio.wit +0 -0
  1874. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/cli/terminal.wit +0 -0
  1875. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/clocks/monotonic-clock.wit +0 -0
  1876. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/clocks/timezone.wit +0 -0
  1877. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/clocks/wall-clock.wit +0 -0
  1878. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/clocks/world.wit +0 -0
  1879. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/filesystem/preopens.wit +0 -0
  1880. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/filesystem/types.wit +0 -0
  1881. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/filesystem/world.wit +0 -0
  1882. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/io/error.wit +0 -0
  1883. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/io/poll.wit +0 -0
  1884. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/io/streams.wit +0 -0
  1885. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/io/world.wit +0 -0
  1886. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/random/insecure-seed.wit +0 -0
  1887. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/random/insecure.wit +0 -0
  1888. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/random/random.wit +0 -0
  1889. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/random/world.wit +0 -0
  1890. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/instance-network.wit +0 -0
  1891. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1892. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/network.wit +0 -0
  1893. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1894. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/tcp.wit +0 -0
  1895. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/udp-create-socket.wit +0 -0
  1896. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/udp.wit +0 -0
  1897. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/deps/sockets/world.wit +0 -0
  1898. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/test.wit +0 -0
  1899. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/wit/world.wit +0 -0
  1900. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p2/write_stream.rs +0 -0
  1901. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/bindings.rs +0 -0
  1902. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/cli/host.rs +0 -0
  1903. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/cli/mod.rs +0 -0
  1904. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/clocks/host.rs +0 -0
  1905. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/clocks/mod.rs +0 -0
  1906. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/filesystem/host.rs +0 -0
  1907. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/filesystem/mod.rs +0 -0
  1908. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/mod.rs +0 -0
  1909. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/random/host.rs +0 -0
  1910. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/random/mod.rs +0 -0
  1911. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/conv.rs +0 -0
  1912. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/ip_name_lookup.rs +0 -0
  1913. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/mod.rs +0 -0
  1914. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/types/mod.rs +0 -0
  1915. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/types/tcp.rs +0 -0
  1916. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/host/types/udp.rs +0 -0
  1917. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/sockets/mod.rs +0 -0
  1918. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/command.wit +0 -0
  1919. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/environment.wit +0 -0
  1920. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/exit.wit +0 -0
  1921. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/imports.wit +0 -0
  1922. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/run.wit +0 -0
  1923. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/stdio.wit +0 -0
  1924. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/cli/terminal.wit +0 -0
  1925. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/monotonic-clock.wit +0 -0
  1926. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/timezone.wit +0 -0
  1927. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/types.wit +0 -0
  1928. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/wall-clock.wit +0 -0
  1929. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/clocks/world.wit +0 -0
  1930. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/filesystem/preopens.wit +0 -0
  1931. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/filesystem/types.wit +0 -0
  1932. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/filesystem/world.wit +0 -0
  1933. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/random/insecure-seed.wit +0 -0
  1934. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/random/insecure.wit +0 -0
  1935. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/random/random.wit +0 -0
  1936. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/random/world.wit +0 -0
  1937. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1938. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/sockets/types.wit +0 -0
  1939. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/deps/sockets/world.wit +0 -0
  1940. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/p3/wit/package.wit +0 -0
  1941. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/random.rs +0 -0
  1942. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/runtime.rs +0 -0
  1943. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/sockets/mod.rs +0 -0
  1944. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/sockets/udp.rs +0 -0
  1945. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/src/sockets/util.rs +0 -0
  1946. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/main.rs +0 -0
  1947. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p1.rs +0 -0
  1948. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p2/api.rs +0 -0
  1949. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p2/async_.rs +0 -0
  1950. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p2/mod.rs +0 -0
  1951. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/all/p2/sync.rs +0 -0
  1952. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/tests/process_stdin.rs +0 -0
  1953. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/witx/p0/typenames.witx +0 -0
  1954. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/witx/p0/wasi_unstable.witx +0 -0
  1955. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/witx/p1/typenames.witx +0 -0
  1956. /data/ext/cargo-vendor/{wasmtime-wasi-37.0.2 → wasmtime-wasi-38.0.4}/witx/p1/wasi_snapshot_preview1.witx +0 -0
  1957. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/Cargo.toml.orig +0 -0
  1958. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/bindings.rs +0 -0
  1959. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/impls.rs +0 -0
  1960. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/lib.rs +0 -0
  1961. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/poll.rs +0 -0
  1962. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/src/streams.rs +0 -0
  1963. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/deps/io/error.wit +0 -0
  1964. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/deps/io/poll.wit +0 -0
  1965. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/deps/io/streams.wit +0 -0
  1966. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/deps/io/world.wit +0 -0
  1967. /data/ext/cargo-vendor/{wasmtime-wasi-io-37.0.2 → wasmtime-wasi-io-38.0.4}/wit/world.wit +0 -0
  1968. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/Cargo.toml.orig +0 -0
  1969. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/LICENSE +0 -0
  1970. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/README.md +0 -0
  1971. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/src/error.rs +0 -0
  1972. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/src/guest_type.rs +0 -0
  1973. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/src/lib.rs +0 -0
  1974. /data/ext/cargo-vendor/{wiggle-37.0.2 → wiggle-38.0.4}/src/region.rs +0 -0
  1975. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/Cargo.toml.orig +0 -0
  1976. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/LICENSE +0 -0
  1977. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/README.md +0 -0
  1978. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/codegen_settings.rs +0 -0
  1979. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/config.rs +0 -0
  1980. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/funcs.rs +0 -0
  1981. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/lib.rs +0 -0
  1982. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/lifetimes.rs +0 -0
  1983. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/module_trait.rs +0 -0
  1984. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/names.rs +0 -0
  1985. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/error.rs +0 -0
  1986. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/flags.rs +0 -0
  1987. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/handle.rs +0 -0
  1988. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/mod.rs +0 -0
  1989. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/record.rs +0 -0
  1990. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/types/variant.rs +0 -0
  1991. /data/ext/cargo-vendor/{wiggle-generate-37.0.2 → wiggle-generate-38.0.4}/src/wasmtime.rs +0 -0
  1992. /data/ext/cargo-vendor/{wiggle-macro-37.0.2 → wiggle-macro-38.0.4}/Cargo.toml.orig +0 -0
  1993. /data/ext/cargo-vendor/{wiggle-macro-37.0.2 → wiggle-macro-38.0.4}/LICENSE +0 -0
  1994. /data/ext/cargo-vendor/{wiggle-macro-37.0.2 → wiggle-macro-38.0.4}/build.rs +0 -0
  1995. /data/ext/cargo-vendor/{wiggle-macro-37.0.2 → wiggle-macro-38.0.4}/src/lib.rs +0 -0
  1996. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/Cargo.toml.orig +0 -0
  1997. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/LICENSE +0 -0
  1998. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/build.rs +0 -0
  1999. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/abi/local.rs +0 -0
  2000. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/abi/mod.rs +0 -0
  2001. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/bounds.rs +0 -0
  2002. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/builtin.rs +0 -0
  2003. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/call.rs +0 -0
  2004. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/context.rs +0 -0
  2005. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/control.rs +0 -0
  2006. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/error.rs +0 -0
  2007. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/mod.rs +0 -0
  2008. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/codegen/phase.rs +0 -0
  2009. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/constant_pool.rs +0 -0
  2010. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/frame/mod.rs +0 -0
  2011. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/abi.rs +0 -0
  2012. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/address.rs +0 -0
  2013. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/asm.rs +0 -0
  2014. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/masm.rs +0 -0
  2015. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/mod.rs +0 -0
  2016. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/aarch64/regs.rs +0 -0
  2017. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/mod.rs +0 -0
  2018. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/reg.rs +0 -0
  2019. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/abi.rs +0 -0
  2020. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/address.rs +0 -0
  2021. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/asm.rs +0 -0
  2022. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/masm.rs +0 -0
  2023. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/mod.rs +0 -0
  2024. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/isa/x64/regs.rs +0 -0
  2025. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/lib.rs +0 -0
  2026. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/masm.rs +0 -0
  2027. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/regalloc.rs +0 -0
  2028. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/regset.rs +0 -0
  2029. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/stack.rs +0 -0
  2030. /data/ext/cargo-vendor/{winch-codegen-37.0.2 → winch-codegen-38.0.4}/src/visitor.rs +0 -0
@@ -1,4585 +0,0 @@
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::{
52
- Component, ComponentInstanceId, HasData, HasSelf, Instance, Resource, ResourceTable,
53
- ResourceTableError,
54
- };
55
- use crate::fiber::{self, StoreFiber, StoreFiberYield};
56
- use crate::store::{StoreInner, StoreOpaque, StoreToken};
57
- use crate::vm::component::{
58
- CallContext, ComponentInstance, InstanceFlags, ResourceTables, TransmitLocalState,
59
- };
60
- use crate::vm::{AlwaysMut, SendSyncPtr, VMFuncRef, VMMemoryDefinition, VMStore};
61
- use crate::{AsContext, AsContextMut, StoreContext, StoreContextMut, ValRaw};
62
- use anyhow::{Context as _, Result, anyhow, bail};
63
- use error_contexts::GlobalErrorContextRefCount;
64
- use futures::channel::oneshot;
65
- use futures::future::{self, Either, FutureExt};
66
- use futures::stream::{FuturesUnordered, StreamExt};
67
- use futures_and_streams::{FlatAbi, ReturnCode, TransmitHandle, TransmitIndex};
68
- use std::any::Any;
69
- use std::borrow::ToOwned;
70
- use std::boxed::Box;
71
- use std::cell::UnsafeCell;
72
- use std::collections::{BTreeMap, BTreeSet, HashMap, HashSet};
73
- use std::fmt;
74
- use std::future::Future;
75
- use std::marker::PhantomData;
76
- use std::mem::{self, ManuallyDrop, MaybeUninit};
77
- use std::ops::DerefMut;
78
- use std::pin::{Pin, pin};
79
- use std::ptr::{self, NonNull};
80
- use std::slice;
81
- use std::sync::Arc;
82
- use std::task::{Context, Poll, Waker};
83
- use std::vec::Vec;
84
- use table::{TableDebug, TableId};
85
- use wasmtime_environ::component::{
86
- CanonicalOptions, CanonicalOptionsDataModel, ExportIndex, MAX_FLAT_PARAMS, MAX_FLAT_RESULTS,
87
- OptionsIndex, PREPARE_ASYNC_NO_RESULT, PREPARE_ASYNC_WITH_RESULT,
88
- RuntimeComponentInstanceIndex, StringEncoding, TypeComponentGlobalErrorContextTableIndex,
89
- TypeComponentLocalErrorContextTableIndex, TypeFutureTableIndex, TypeStreamTableIndex,
90
- TypeTupleIndex,
91
- };
92
-
93
- pub use abort::JoinHandle;
94
- pub use futures_and_streams::{
95
- Destination, DirectDestination, DirectSource, ErrorContext, FutureConsumer, FutureProducer,
96
- FutureReader, GuardedFutureReader, GuardedStreamReader, ReadBuffer, Source, StreamConsumer,
97
- StreamProducer, StreamReader, StreamResult, VecBuffer, WriteBuffer,
98
- };
99
- pub(crate) use futures_and_streams::{
100
- ResourcePair, lower_error_context_to_index, lower_future_to_index, lower_stream_to_index,
101
- };
102
-
103
- mod abort;
104
- mod error_contexts;
105
- mod futures_and_streams;
106
- mod table;
107
- pub(crate) mod tls;
108
-
109
- /// Constant defined in the Component Model spec to indicate that the async
110
- /// intrinsic (e.g. `future.write`) has not yet completed.
111
- const BLOCKED: u32 = 0xffff_ffff;
112
-
113
- /// Corresponds to `CallState` in the upstream spec.
114
- #[derive(Clone, Copy, Eq, PartialEq, Debug)]
115
- pub enum Status {
116
- Starting = 0,
117
- Started = 1,
118
- Returned = 2,
119
- StartCancelled = 3,
120
- ReturnCancelled = 4,
121
- }
122
-
123
- impl Status {
124
- /// Packs this status and the optional `waitable` provided into a 32-bit
125
- /// result that the canonical ABI requires.
126
- ///
127
- /// The low 4 bits are reserved for the status while the upper 28 bits are
128
- /// the waitable, if present.
129
- pub fn pack(self, waitable: Option<u32>) -> u32 {
130
- assert!(matches!(self, Status::Returned) == waitable.is_none());
131
- let waitable = waitable.unwrap_or(0);
132
- assert!(waitable < (1 << 28));
133
- (waitable << 4) | (self as u32)
134
- }
135
- }
136
-
137
- /// Corresponds to `EventCode` in the Component Model spec, plus related payload
138
- /// data.
139
- #[derive(Clone, Copy, Debug)]
140
- enum Event {
141
- None,
142
- Cancelled,
143
- Subtask {
144
- status: Status,
145
- },
146
- StreamRead {
147
- code: ReturnCode,
148
- pending: Option<(TypeStreamTableIndex, u32)>,
149
- },
150
- StreamWrite {
151
- code: ReturnCode,
152
- pending: Option<(TypeStreamTableIndex, u32)>,
153
- },
154
- FutureRead {
155
- code: ReturnCode,
156
- pending: Option<(TypeFutureTableIndex, u32)>,
157
- },
158
- FutureWrite {
159
- code: ReturnCode,
160
- pending: Option<(TypeFutureTableIndex, u32)>,
161
- },
162
- }
163
-
164
- impl Event {
165
- /// Lower this event to core Wasm integers for delivery to the guest.
166
- ///
167
- /// Note that the waitable handle, if any, is assumed to be lowered
168
- /// separately.
169
- fn parts(self) -> (u32, u32) {
170
- const EVENT_NONE: u32 = 0;
171
- const EVENT_SUBTASK: u32 = 1;
172
- const EVENT_STREAM_READ: u32 = 2;
173
- const EVENT_STREAM_WRITE: u32 = 3;
174
- const EVENT_FUTURE_READ: u32 = 4;
175
- const EVENT_FUTURE_WRITE: u32 = 5;
176
- const EVENT_CANCELLED: u32 = 6;
177
- match self {
178
- Event::None => (EVENT_NONE, 0),
179
- Event::Cancelled => (EVENT_CANCELLED, 0),
180
- Event::Subtask { status } => (EVENT_SUBTASK, status as u32),
181
- Event::StreamRead { code, .. } => (EVENT_STREAM_READ, code.encode()),
182
- Event::StreamWrite { code, .. } => (EVENT_STREAM_WRITE, code.encode()),
183
- Event::FutureRead { code, .. } => (EVENT_FUTURE_READ, code.encode()),
184
- Event::FutureWrite { code, .. } => (EVENT_FUTURE_WRITE, code.encode()),
185
- }
186
- }
187
- }
188
-
189
- /// Corresponds to `CallbackCode` in the spec.
190
- mod callback_code {
191
- pub const EXIT: u32 = 0;
192
- pub const YIELD: u32 = 1;
193
- pub const WAIT: u32 = 2;
194
- pub const POLL: u32 = 3;
195
- }
196
-
197
- /// A flag indicating that the callee is an async-lowered export.
198
- ///
199
- /// This may be passed to the `async-start` intrinsic from a fused adapter.
200
- const START_FLAG_ASYNC_CALLEE: u32 = wasmtime_environ::component::START_FLAG_ASYNC_CALLEE as u32;
201
-
202
- /// Provides access to either store data (via the `get` method) or the store
203
- /// itself (via [`AsContext`]/[`AsContextMut`]), as well as the component
204
- /// instance to which the current host task belongs.
205
- ///
206
- /// See [`Accessor::with`] for details.
207
- pub struct Access<'a, T: 'static, D: HasData + ?Sized = HasSelf<T>> {
208
- store: StoreContextMut<'a, T>,
209
- get_data: fn(&mut T) -> D::Data<'_>,
210
- instance: Option<Instance>,
211
- }
212
-
213
- impl<'a, T, D> Access<'a, T, D>
214
- where
215
- D: HasData + ?Sized,
216
- T: 'static,
217
- {
218
- /// Creates a new [`Access`] from its component parts.
219
- pub fn new(store: StoreContextMut<'a, T>, get_data: fn(&mut T) -> D::Data<'_>) -> Self {
220
- Self {
221
- store,
222
- get_data,
223
- instance: None,
224
- }
225
- }
226
-
227
- /// Get mutable access to the store data.
228
- pub fn data_mut(&mut self) -> &mut T {
229
- self.store.data_mut()
230
- }
231
-
232
- /// Get mutable access to the store data.
233
- pub fn get(&mut self) -> D::Data<'_> {
234
- (self.get_data)(self.data_mut())
235
- }
236
-
237
- /// Spawn a background task.
238
- ///
239
- /// See [`Accessor::spawn`] for details.
240
- pub fn spawn(&mut self, task: impl AccessorTask<T, D, Result<()>>) -> JoinHandle
241
- where
242
- T: 'static,
243
- {
244
- let accessor = Accessor {
245
- get_data: self.get_data,
246
- instance: self.instance,
247
- token: StoreToken::new(self.store.as_context_mut()),
248
- };
249
- self.instance
250
- .unwrap()
251
- .spawn_with_accessor(self.store.as_context_mut(), accessor, task)
252
- }
253
-
254
- /// Retrieve the component instance of the caller.
255
- pub fn instance(&self) -> Instance {
256
- self.instance.unwrap()
257
- }
258
- }
259
-
260
- impl<'a, T, D> AsContext for Access<'a, T, D>
261
- where
262
- D: HasData + ?Sized,
263
- T: 'static,
264
- {
265
- type Data = T;
266
-
267
- fn as_context(&self) -> StoreContext<'_, T> {
268
- self.store.as_context()
269
- }
270
- }
271
-
272
- impl<'a, T, D> AsContextMut for Access<'a, T, D>
273
- where
274
- D: HasData + ?Sized,
275
- T: 'static,
276
- {
277
- fn as_context_mut(&mut self) -> StoreContextMut<'_, T> {
278
- self.store.as_context_mut()
279
- }
280
- }
281
-
282
- /// Provides scoped mutable access to store data in the context of a concurrent
283
- /// host task future.
284
- ///
285
- /// This allows multiple host task futures to execute concurrently and access
286
- /// the store between (but not across) `await` points.
287
- ///
288
- /// # Rationale
289
- ///
290
- /// This structure is sort of like `&mut T` plus a projection from `&mut T` to
291
- /// `D::Data<'_>`. The problem this is solving, however, is that it does not
292
- /// literally store these values. The basic problem is that when a concurrent
293
- /// host future is being polled it has access to `&mut T` (and the whole
294
- /// `Store`) but when it's not being polled it does not have access to these
295
- /// values. This reflects how the store is only ever polling one future at a
296
- /// time so the store is effectively being passed between futures.
297
- ///
298
- /// Rust's `Future` trait, however, has no means of passing a `Store`
299
- /// temporarily between futures. The [`Context`](std::task::Context) type does
300
- /// not have the ability to attach arbitrary information to it at this time.
301
- /// This type, [`Accessor`], is used to bridge this expressivity gap.
302
- ///
303
- /// The [`Accessor`] type here represents the ability to acquire, temporarily in
304
- /// a synchronous manner, the current store. The [`Accessor::with`] function
305
- /// yields an [`Access`] which can be used to access [`StoreContextMut`], `&mut
306
- /// T`, or `D::Data<'_>`. Note though that [`Accessor::with`] intentionally does
307
- /// not take an `async` closure as its argument, instead it's a synchronous
308
- /// closure which must complete during on run of `Future::poll`. This reflects
309
- /// how the store is temporarily made available while a host future is being
310
- /// polled.
311
- ///
312
- /// # Implementation
313
- ///
314
- /// This type does not actually store `&mut T` nor `StoreContextMut<T>`, and
315
- /// this type additionally doesn't even have a lifetime parameter. This is
316
- /// instead a representation of proof of the ability to acquire these while a
317
- /// future is being polled. Wasmtime will, when it polls a host future,
318
- /// configure ambient state such that the `Accessor` that a future closes over
319
- /// will work and be able to access the store.
320
- ///
321
- /// This has a number of implications for users such as:
322
- ///
323
- /// * It's intentional that `Accessor` cannot be cloned, it needs to stay within
324
- /// the lifetime of a single future.
325
- /// * A future is expected to, however, close over an `Accessor` and keep it
326
- /// alive probably for the duration of the entire future.
327
- /// * Different host futures will be given different `Accessor`s, and that's
328
- /// intentional.
329
- /// * The `Accessor` type is `Send` and `Sync` irrespective of `T` which
330
- /// alleviates some otherwise required bounds to be written down.
331
- ///
332
- /// # Using `Accessor` in `Drop`
333
- ///
334
- /// The methods on `Accessor` are only expected to work in the context of
335
- /// `Future::poll` and are not guaranteed to work in `Drop`. This is because a
336
- /// host future can be dropped at any time throughout the system and Wasmtime
337
- /// store context is not necessarily available at that time. It's recommended to
338
- /// not use `Accessor` methods in anything connected to a `Drop` implementation
339
- /// as they will panic and have unintended results. If you run into this though
340
- /// feel free to file an issue on the Wasmtime repository.
341
- pub struct Accessor<T: 'static, D = HasSelf<T>>
342
- where
343
- D: HasData + ?Sized,
344
- {
345
- token: StoreToken<T>,
346
- get_data: fn(&mut T) -> D::Data<'_>,
347
- instance: Option<Instance>,
348
- }
349
-
350
- /// A helper trait to take any type of accessor-with-data in functions.
351
- ///
352
- /// This trait is similar to [`AsContextMut`] except that it's used when
353
- /// working with an [`Accessor`] instead of a [`StoreContextMut`]. The
354
- /// [`Accessor`] is the main type used in concurrent settings and is passed to
355
- /// functions such as [`Func::call_concurrent`] or [`FutureWriter::write`].
356
- ///
357
- /// This trait is implemented for [`Accessor`] and `&T` where `T` implements
358
- /// this trait. This effectively means that regardless of the `D` in
359
- /// `Accessor<T, D>` it can still be passed to a function which just needs a
360
- /// store accessor.
361
- ///
362
- /// Acquiring an [`Accessor`] can be done through [`Instance::run_concurrent`]
363
- /// for example or in a host function through
364
- /// [`Linker::func_wrap_concurrent`](crate::component::Linker::func_wrap_concurrent).
365
- pub trait AsAccessor {
366
- /// The `T` in `Store<T>` that this accessor refers to.
367
- type Data: 'static;
368
-
369
- /// The `D` in `Accessor<T, D>`, or the projection out of
370
- /// `Self::Data`.
371
- type AccessorData: HasData + ?Sized;
372
-
373
- /// Returns the accessor that this is referring to.
374
- fn as_accessor(&self) -> &Accessor<Self::Data, Self::AccessorData>;
375
- }
376
-
377
- impl<T: AsAccessor + ?Sized> AsAccessor for &T {
378
- type Data = T::Data;
379
- type AccessorData = T::AccessorData;
380
-
381
- fn as_accessor(&self) -> &Accessor<Self::Data, Self::AccessorData> {
382
- T::as_accessor(self)
383
- }
384
- }
385
-
386
- impl<T, D: HasData + ?Sized> AsAccessor for Accessor<T, D> {
387
- type Data = T;
388
- type AccessorData = D;
389
-
390
- fn as_accessor(&self) -> &Accessor<T, D> {
391
- self
392
- }
393
- }
394
-
395
- // Note that it is intentional at this time that `Accessor` does not actually
396
- // store `&mut T` or anything similar. This distinctly enables the `Accessor`
397
- // structure to be both `Send` and `Sync` regardless of what `T` is (or `D` for
398
- // that matter). This is used to ergonomically simplify bindings where the
399
- // majority of the time `Accessor` is closed over in a future which then needs
400
- // to be `Send` and `Sync`. To avoid needing to write `T: Send` everywhere (as
401
- // you already have to write `T: 'static`...) it helps to avoid this.
402
- //
403
- // Note as well that `Accessor` doesn't actually store its data at all. Instead
404
- // it's more of a "proof" of what can be accessed from TLS. API design around
405
- // `Accessor` and functions like `Linker::func_wrap_concurrent` are
406
- // intentionally made to ensure that `Accessor` is ideally only used in the
407
- // context that TLS variables are actually set. For example host functions are
408
- // given `&Accessor`, not `Accessor`, and this prevents them from persisting
409
- // the value outside of a future. Within the future the TLS variables are all
410
- // guaranteed to be set while the future is being polled.
411
- //
412
- // Finally though this is not an ironclad guarantee, but nor does it need to be.
413
- // The TLS APIs are designed to panic or otherwise model usage where they're
414
- // called recursively or similar. It's hoped that code cannot be constructed to
415
- // actually hit this at runtime but this is not a safety requirement at this
416
- // time.
417
- const _: () = {
418
- const fn assert<T: Send + Sync>() {}
419
- assert::<Accessor<UnsafeCell<u32>>>();
420
- };
421
-
422
- impl<T> Accessor<T> {
423
- /// Creates a new `Accessor` backed by the specified functions.
424
- ///
425
- /// - `get`: used to retrieve the store
426
- ///
427
- /// - `get_data`: used to "project" from the store's associated data to
428
- /// another type (e.g. a field of that data or a wrapper around it).
429
- ///
430
- /// - `spawn`: used to queue spawned background tasks to be run later
431
- ///
432
- /// - `instance`: used to access the `Instance` to which this `Accessor`
433
- /// (and the future which closes over it) belongs
434
- pub(crate) fn new(token: StoreToken<T>, instance: Option<Instance>) -> Self {
435
- Self {
436
- token,
437
- get_data: |x| x,
438
- instance,
439
- }
440
- }
441
- }
442
-
443
- impl<T, D> Accessor<T, D>
444
- where
445
- D: HasData + ?Sized,
446
- {
447
- /// Run the specified closure, passing it mutable access to the store.
448
- ///
449
- /// This function is one of the main building blocks of the [`Accessor`]
450
- /// type. This yields synchronous, blocking, access to store via an
451
- /// [`Access`]. The [`Access`] implements [`AsContextMut`] in addition to
452
- /// providing the ability to access `D` via [`Access::get`]. Note that the
453
- /// `fun` here is given only temporary access to the store and `T`/`D`
454
- /// meaning that the return value `R` here is not allowed to capture borrows
455
- /// into the two. If access is needed to data within `T` or `D` outside of
456
- /// this closure then it must be `clone`d out, for example.
457
- ///
458
- /// # Panics
459
- ///
460
- /// This function will panic if it is call recursively with any other
461
- /// accessor already in scope. For example if `with` is called within `fun`,
462
- /// then this function will panic. It is up to the embedder to ensure that
463
- /// this does not happen.
464
- pub fn with<R>(&self, fun: impl FnOnce(Access<'_, T, D>) -> R) -> R {
465
- tls::get(|vmstore| {
466
- fun(Access {
467
- store: self.token.as_context_mut(vmstore),
468
- get_data: self.get_data,
469
- instance: self.instance,
470
- })
471
- })
472
- }
473
-
474
- /// Returns the getter this accessor is using to project from `T` into
475
- /// `D::Data`.
476
- pub fn getter(&self) -> fn(&mut T) -> D::Data<'_> {
477
- self.get_data
478
- }
479
-
480
- /// Changes this accessor to access `D2` instead of the current type
481
- /// parameter `D`.
482
- ///
483
- /// This changes the underlying data access from `T` to `D2::Data<'_>`.
484
- ///
485
- /// # Panics
486
- ///
487
- /// When using this API the returned value is disconnected from `&self` and
488
- /// the lifetime binding the `self` argument. An `Accessor` only works
489
- /// within the context of the closure or async closure that it was
490
- /// originally given to, however. This means that due to the fact that the
491
- /// returned value has no lifetime connection it's possible to use the
492
- /// accessor outside of `&self`, the original accessor, and panic.
493
- ///
494
- /// The returned value should only be used within the scope of the original
495
- /// `Accessor` that `self` refers to.
496
- pub fn with_getter<D2: HasData>(
497
- &self,
498
- get_data: fn(&mut T) -> D2::Data<'_>,
499
- ) -> Accessor<T, D2> {
500
- Accessor {
501
- token: self.token,
502
- get_data,
503
- instance: self.instance,
504
- }
505
- }
506
-
507
- /// Spawn a background task which will receive an `&Accessor<T, D>` and
508
- /// run concurrently with any other tasks in progress for the current
509
- /// instance.
510
- ///
511
- /// This is particularly useful for host functions which return a `stream`
512
- /// or `future` such that the code to write to the write end of that
513
- /// `stream` or `future` must run after the function returns.
514
- ///
515
- /// The returned [`JoinHandle`] may be used to cancel the task.
516
- ///
517
- /// # Panics
518
- ///
519
- /// Panics if called within a closure provided to the [`Accessor::with`]
520
- /// function. This can only be called outside an active invocation of
521
- /// [`Accessor::with`].
522
- pub fn spawn(&self, task: impl AccessorTask<T, D, Result<()>>) -> JoinHandle
523
- where
524
- T: 'static,
525
- {
526
- let instance = self.instance.unwrap();
527
- let accessor = self.clone_for_spawn();
528
- self.with(|mut access| {
529
- instance.spawn_with_accessor(access.as_context_mut(), accessor, task)
530
- })
531
- }
532
-
533
- /// Retrieve the component instance of the caller.
534
- pub fn instance(&self) -> Instance {
535
- self.instance.unwrap()
536
- }
537
-
538
- fn clone_for_spawn(&self) -> Self {
539
- Self {
540
- token: self.token,
541
- get_data: self.get_data,
542
- instance: self.instance,
543
- }
544
- }
545
- }
546
-
547
- /// Represents a task which may be provided to `Accessor::spawn`,
548
- /// `Accessor::forward`, or `Instance::spawn`.
549
- // TODO: Replace this with `std::ops::AsyncFnOnce` when that becomes a viable
550
- // option.
551
- //
552
- // `AsyncFnOnce` is still nightly-only in latest stable Rust version as of this
553
- // writing (1.84.1), and even with 1.85.0-beta it's not possible to specify
554
- // e.g. `Send` and `Sync` bounds on the `Future` type returned by an
555
- // `AsyncFnOnce`. Also, using `F: Future<Output = Result<()>> + Send + Sync,
556
- // FN: FnOnce(&Accessor<T>) -> F + Send + Sync + 'static` fails with a type
557
- // mismatch error when we try to pass it an async closure (e.g. `async move |_|
558
- // { ... }`). So this seems to be the best we can do for the time being.
559
- pub trait AccessorTask<T, D, R>: Send + 'static
560
- where
561
- D: HasData + ?Sized,
562
- {
563
- /// Run the task.
564
- fn run(self, accessor: &Accessor<T, D>) -> impl Future<Output = R> + Send;
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,
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 waitable set the event belongs to, if any.
614
- ///
615
- /// If this is `None` the event will be waiting in the
616
- /// `GuestTask::event` field for the task.
617
- set: Option<TableId<WaitableSet>>,
618
- },
619
- /// Indicates that a new guest task call is pending and may be executed
620
- /// using the specified closure.
621
- Start(Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send + Sync>),
622
- }
623
-
624
- impl fmt::Debug for GuestCallKind {
625
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
626
- match self {
627
- Self::DeliverEvent { set } => f.debug_struct("DeliverEvent").field("set", set).finish(),
628
- Self::Start(_) => f.debug_tuple("Start").finish(),
629
- }
630
- }
631
- }
632
-
633
- /// Represents a pending call into guest code for a given guest task.
634
- #[derive(Debug)]
635
- struct GuestCall {
636
- task: TableId<GuestTask>,
637
- kind: GuestCallKind,
638
- }
639
-
640
- impl GuestCall {
641
- /// Returns whether or not the call is ready to run.
642
- ///
643
- /// A call will not be ready to run if either:
644
- ///
645
- /// - the (sub-)component instance to be called has already been entered and
646
- /// cannot be reentered until an in-progress call completes
647
- ///
648
- /// - the call is for a not-yet started task and the (sub-)component
649
- /// instance to be called has backpressure enabled
650
- fn is_ready(&self, state: &mut ConcurrentState) -> Result<bool> {
651
- let task_instance = state.get_mut(self.task)?.instance;
652
- let state = state.instance_state(task_instance);
653
- let ready = match &self.kind {
654
- GuestCallKind::DeliverEvent { .. } => !state.do_not_enter,
655
- GuestCallKind::Start(_) => !(state.do_not_enter || state.backpressure > 0),
656
- };
657
- log::trace!(
658
- "call {self:?} ready? {ready} (do_not_enter: {}; backpressure: {})",
659
- state.do_not_enter,
660
- state.backpressure
661
- );
662
- Ok(ready)
663
- }
664
- }
665
-
666
- /// Job to be run on a worker fiber.
667
- enum WorkerItem {
668
- GuestCall(GuestCall),
669
- Function(AlwaysMut<Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send>>),
670
- }
671
-
672
- /// Represents state related to an in-progress poll operation (e.g. `task.poll`
673
- /// or `CallbackCode.POLL`).
674
- #[derive(Debug)]
675
- struct PollParams {
676
- /// Identifies the polling task.
677
- task: TableId<GuestTask>,
678
- /// The waitable set being polled.
679
- set: TableId<WaitableSet>,
680
- }
681
-
682
- /// Represents a pending work item to be handled by the event loop for a given
683
- /// component instance.
684
- enum WorkItem {
685
- /// A host task to be pushed to `ConcurrentState::futures`.
686
- PushFuture(AlwaysMut<HostTaskFuture>),
687
- /// A fiber to resume.
688
- ResumeFiber(StoreFiber<'static>),
689
- /// A pending call into guest code for a given guest task.
690
- GuestCall(GuestCall),
691
- /// A pending `task.poll` or `CallbackCode.POLL` operation.
692
- Poll(PollParams),
693
- /// A job to run on a worker fiber.
694
- WorkerFunction(AlwaysMut<Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send>>),
695
- }
696
-
697
- impl fmt::Debug for WorkItem {
698
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
699
- match self {
700
- Self::PushFuture(_) => f.debug_tuple("PushFuture").finish(),
701
- Self::ResumeFiber(_) => f.debug_tuple("ResumeFiber").finish(),
702
- Self::GuestCall(call) => f.debug_tuple("GuestCall").field(call).finish(),
703
- Self::Poll(params) => f.debug_tuple("Poll").field(params).finish(),
704
- Self::WorkerFunction(_) => f.debug_tuple("WorkerFunction").finish(),
705
- }
706
- }
707
- }
708
-
709
- impl ComponentInstance {
710
- /// Handle the `CallbackCode` returned from an async-lifted export or its
711
- /// callback.
712
- ///
713
- /// If `initial_call` is `true`, then the code was received from the
714
- /// async-lifted export; otherwise, it was received from its callback.
715
- fn handle_callback_code(
716
- mut self: Pin<&mut Self>,
717
- guest_task: TableId<GuestTask>,
718
- runtime_instance: RuntimeComponentInstanceIndex,
719
- code: u32,
720
- initial_call: bool,
721
- ) -> Result<()> {
722
- let (code, set) = unpack_callback_code(code);
723
-
724
- log::trace!("received callback code from {guest_task:?}: {code} (set: {set})");
725
-
726
- let state = self.as_mut().concurrent_state_mut();
727
- let task = state.get_mut(guest_task)?;
728
-
729
- if task.lift_result.is_some() {
730
- if code == callback_code::EXIT {
731
- return Err(anyhow!(crate::Trap::NoAsyncResult));
732
- }
733
- if initial_call {
734
- // Notify any current or future waiters that this subtask has
735
- // started.
736
- Waitable::Guest(guest_task).set_event(
737
- state,
738
- Some(Event::Subtask {
739
- status: Status::Started,
740
- }),
741
- )?;
742
- }
743
- }
744
-
745
- let get_set = |instance: Pin<&mut Self>, handle| {
746
- if handle == 0 {
747
- bail!("invalid waitable-set handle");
748
- }
749
-
750
- let set = instance.guest_tables().0[runtime_instance].waitable_set_rep(handle)?;
751
-
752
- Ok(TableId::<WaitableSet>::new(set))
753
- };
754
-
755
- match code {
756
- callback_code::EXIT => {
757
- let task = state.get_mut(guest_task)?;
758
- match &task.caller {
759
- Caller::Host {
760
- remove_task_automatically,
761
- ..
762
- } => {
763
- if *remove_task_automatically {
764
- log::trace!("handle_callback_code will delete task {guest_task:?}");
765
- Waitable::Guest(guest_task).delete_from(state)?;
766
- }
767
- }
768
- Caller::Guest { .. } => {
769
- task.exited = true;
770
- task.callback = None;
771
- }
772
- }
773
- }
774
- callback_code::YIELD => {
775
- // Push this task onto the "low priority" queue so it runs after
776
- // any other tasks have had a chance to run.
777
- let task = state.get_mut(guest_task)?;
778
- assert!(task.event.is_none());
779
- task.event = Some(Event::None);
780
- state.push_low_priority(WorkItem::GuestCall(GuestCall {
781
- task: guest_task,
782
- kind: GuestCallKind::DeliverEvent { set: None },
783
- }));
784
- }
785
- callback_code::WAIT | callback_code::POLL => {
786
- let set = get_set(self.as_mut(), set)?;
787
- let state = self.concurrent_state_mut();
788
-
789
- if state.get_mut(guest_task)?.event.is_some()
790
- || !state.get_mut(set)?.ready.is_empty()
791
- {
792
- // An event is immediately available; deliver it ASAP.
793
- state.push_high_priority(WorkItem::GuestCall(GuestCall {
794
- task: guest_task,
795
- kind: GuestCallKind::DeliverEvent { set: Some(set) },
796
- }));
797
- } else {
798
- // No event is immediately available.
799
- match code {
800
- callback_code::POLL => {
801
- // We're polling, so just yield and check whether an
802
- // event has arrived after that.
803
- state.push_low_priority(WorkItem::Poll(PollParams {
804
- task: guest_task,
805
- set,
806
- }));
807
- }
808
- callback_code::WAIT => {
809
- // We're waiting, so register to be woken up when an
810
- // event is published for this waitable set.
811
- //
812
- // Here we also set `GuestTask::wake_on_cancel`
813
- // which allows `subtask.cancel` to interrupt the
814
- // wait.
815
- let old = state.get_mut(guest_task)?.wake_on_cancel.replace(set);
816
- assert!(old.is_none());
817
- let old = state
818
- .get_mut(set)?
819
- .waiting
820
- .insert(guest_task, WaitMode::Callback);
821
- assert!(old.is_none());
822
- }
823
- _ => unreachable!(),
824
- }
825
- }
826
- }
827
- _ => bail!("unsupported callback code: {code}"),
828
- }
829
-
830
- Ok(())
831
- }
832
-
833
- /// Get the next pending event for the specified task and (optional)
834
- /// waitable set, along with the waitable handle if applicable.
835
- fn get_event(
836
- mut self: Pin<&mut Self>,
837
- guest_task: TableId<GuestTask>,
838
- set: Option<TableId<WaitableSet>>,
839
- cancellable: bool,
840
- ) -> Result<Option<(Event, Option<(Waitable, u32)>)>> {
841
- let state = self.as_mut().concurrent_state_mut();
842
-
843
- if let Some(event) = state.get_mut(guest_task)?.event.take() {
844
- log::trace!("deliver event {event:?} to {guest_task:?}");
845
-
846
- if cancellable || !matches!(event, Event::Cancelled) {
847
- return Ok(Some((event, None)));
848
- } else {
849
- state.get_mut(guest_task)?.event = Some(event);
850
- }
851
- }
852
-
853
- Ok(
854
- if let Some((set, waitable)) = set
855
- .and_then(|set| {
856
- state
857
- .get_mut(set)
858
- .map(|v| v.ready.pop_first().map(|v| (set, v)))
859
- .transpose()
860
- })
861
- .transpose()?
862
- {
863
- let common = waitable.common(state)?;
864
- let handle = common.handle.unwrap();
865
- let event = common.event.take().unwrap();
866
-
867
- log::trace!(
868
- "deliver event {event:?} to {guest_task:?} for {waitable:?} (handle {handle}); set {set:?}"
869
- );
870
-
871
- waitable.on_delivery(self, event);
872
-
873
- Some((event, Some((waitable, handle))))
874
- } else {
875
- None
876
- },
877
- )
878
- }
879
-
880
- /// Implements the `waitable-set.new` intrinsic.
881
- pub(crate) fn waitable_set_new(
882
- mut self: Pin<&mut Self>,
883
- caller_instance: RuntimeComponentInstanceIndex,
884
- ) -> Result<u32> {
885
- let set = self
886
- .as_mut()
887
- .concurrent_state_mut()
888
- .push(WaitableSet::default())?;
889
- let handle = self.guest_tables().0[caller_instance].waitable_set_insert(set.rep())?;
890
- log::trace!("new waitable set {set:?} (handle {handle})");
891
- Ok(handle)
892
- }
893
-
894
- /// Implements the `waitable-set.drop` intrinsic.
895
- pub(crate) fn waitable_set_drop(
896
- mut self: Pin<&mut Self>,
897
- caller_instance: RuntimeComponentInstanceIndex,
898
- set: u32,
899
- ) -> Result<()> {
900
- let rep = self.as_mut().guest_tables().0[caller_instance].waitable_set_remove(set)?;
901
-
902
- log::trace!("drop waitable set {rep} (handle {set})");
903
-
904
- let set = self
905
- .concurrent_state_mut()
906
- .delete(TableId::<WaitableSet>::new(rep))?;
907
-
908
- if !set.waiting.is_empty() {
909
- bail!("cannot drop waitable set with waiters");
910
- }
911
-
912
- Ok(())
913
- }
914
-
915
- /// Implements the `waitable.join` intrinsic.
916
- pub(crate) fn waitable_join(
917
- mut self: Pin<&mut Self>,
918
- caller_instance: RuntimeComponentInstanceIndex,
919
- waitable_handle: u32,
920
- set_handle: u32,
921
- ) -> Result<()> {
922
- let waitable = Waitable::from_instance(self.as_mut(), caller_instance, waitable_handle)?;
923
-
924
- let set = if set_handle == 0 {
925
- None
926
- } else {
927
- let set =
928
- self.as_mut().guest_tables().0[caller_instance].waitable_set_rep(set_handle)?;
929
-
930
- Some(TableId::<WaitableSet>::new(set))
931
- };
932
-
933
- log::trace!(
934
- "waitable {waitable:?} (handle {waitable_handle}) join set {set:?} (handle {set_handle})",
935
- );
936
-
937
- waitable.join(self.concurrent_state_mut(), set)
938
- }
939
-
940
- /// Implements the `subtask.drop` intrinsic.
941
- pub(crate) fn subtask_drop(
942
- mut self: Pin<&mut Self>,
943
- caller_instance: RuntimeComponentInstanceIndex,
944
- task_id: u32,
945
- ) -> Result<()> {
946
- self.as_mut().waitable_join(caller_instance, task_id, 0)?;
947
-
948
- let (rep, is_host) =
949
- self.as_mut().guest_tables().0[caller_instance].subtask_remove(task_id)?;
950
-
951
- let concurrent_state = self.concurrent_state_mut();
952
- let (waitable, expected_caller_instance, delete) = if is_host {
953
- let id = TableId::<HostTask>::new(rep);
954
- let task = concurrent_state.get_mut(id)?;
955
- if task.join_handle.is_some() {
956
- bail!("cannot drop a subtask which has not yet resolved");
957
- }
958
- (Waitable::Host(id), task.caller_instance, true)
959
- } else {
960
- let id = TableId::<GuestTask>::new(rep);
961
- let task = concurrent_state.get_mut(id)?;
962
- if task.lift_result.is_some() {
963
- bail!("cannot drop a subtask which has not yet resolved");
964
- }
965
- if let Caller::Guest { instance, .. } = &task.caller {
966
- (Waitable::Guest(id), *instance, task.exited)
967
- } else {
968
- unreachable!()
969
- }
970
- };
971
-
972
- waitable.common(concurrent_state)?.handle = None;
973
-
974
- if waitable.take_event(concurrent_state)?.is_some() {
975
- bail!("cannot drop a subtask with an undelivered event");
976
- }
977
-
978
- if delete {
979
- waitable.delete_from(concurrent_state)?;
980
- }
981
-
982
- // Since waitables can neither be passed between instances nor forged,
983
- // this should never fail unless there's a bug in Wasmtime, but we check
984
- // here to be sure:
985
- assert_eq!(expected_caller_instance, caller_instance);
986
- log::trace!("subtask_drop {waitable:?} (handle {task_id})");
987
- Ok(())
988
- }
989
- }
990
-
991
- impl Instance {
992
- /// Assert that all the relevant tables and queues in the concurrent state
993
- /// for this instance are empty.
994
- ///
995
- /// This is for sanity checking in integration tests
996
- /// (e.g. `component-async-tests`) that the relevant state has been cleared
997
- /// after each test concludes. This should help us catch leaks, e.g. guest
998
- /// tasks which haven't been deleted despite having completed and having
999
- /// been dropped by their supertasks.
1000
- #[doc(hidden)]
1001
- pub fn assert_concurrent_state_empty(&self, mut store: impl AsContextMut) {
1002
- let mut instance = self.id().get_mut(store.as_context_mut().0);
1003
- assert!(
1004
- instance
1005
- .as_mut()
1006
- .guest_tables()
1007
- .0
1008
- .iter()
1009
- .all(|(_, table)| table.is_empty())
1010
- );
1011
- let state = instance.concurrent_state_mut();
1012
- assert!(
1013
- state.table.get_mut().is_empty(),
1014
- "non-empty table: {:?}",
1015
- state.table.get_mut()
1016
- );
1017
- assert!(state.high_priority.is_empty());
1018
- assert!(state.low_priority.is_empty());
1019
- assert!(state.guest_task.is_none());
1020
- assert!(state.futures.get_mut().as_ref().unwrap().is_empty());
1021
- assert!(
1022
- state
1023
- .instance_states
1024
- .iter()
1025
- .all(|(_, state)| state.pending.is_empty())
1026
- );
1027
- assert!(state.global_error_context_ref_counts.is_empty());
1028
- }
1029
-
1030
- /// Run the specified closure `fun` to completion as part of this instance's
1031
- /// event loop.
1032
- ///
1033
- /// Like [`Self::run`], this will run `fun` as part of this instance's event
1034
- /// loop until it yields a result _or_ there are no more tasks to run.
1035
- /// Unlike [`Self::run`], `fun` is provided an [`Accessor`], which provides
1036
- /// controlled access to the `Store` and its data.
1037
- ///
1038
- /// This function can be used to invoke [`Func::call_concurrent`] for
1039
- /// example within the async closure provided here.
1040
- ///
1041
- /// # Example
1042
- ///
1043
- /// ```
1044
- /// # use {
1045
- /// # anyhow::{Result},
1046
- /// # wasmtime::{
1047
- /// # component::{ Component, Linker, Resource, ResourceTable},
1048
- /// # Config, Engine, Store
1049
- /// # },
1050
- /// # };
1051
- /// #
1052
- /// # struct MyResource(u32);
1053
- /// # struct Ctx { table: ResourceTable }
1054
- /// #
1055
- /// # async fn foo() -> Result<()> {
1056
- /// # let mut config = Config::new();
1057
- /// # let engine = Engine::new(&config)?;
1058
- /// # let mut store = Store::new(&engine, Ctx { table: ResourceTable::new() });
1059
- /// # let mut linker = Linker::new(&engine);
1060
- /// # let component = Component::new(&engine, "")?;
1061
- /// # let instance = linker.instantiate_async(&mut store, &component).await?;
1062
- /// # let foo = instance.get_typed_func::<(Resource<MyResource>,), (Resource<MyResource>,)>(&mut store, "foo")?;
1063
- /// # let bar = instance.get_typed_func::<(u32,), ()>(&mut store, "bar")?;
1064
- /// instance.run_concurrent(&mut store, async |accessor| -> wasmtime::Result<_> {
1065
- /// let resource = accessor.with(|mut access| access.get().table.push(MyResource(42)))?;
1066
- /// let (another_resource,) = foo.call_concurrent(accessor, (resource,)).await?.0;
1067
- /// let value = accessor.with(|mut access| access.get().table.delete(another_resource))?;
1068
- /// bar.call_concurrent(accessor, (value.0,)).await?;
1069
- /// Ok(())
1070
- /// }).await??;
1071
- /// # Ok(())
1072
- /// # }
1073
- /// ```
1074
- pub async fn run_concurrent<T, R>(
1075
- self,
1076
- mut store: impl AsContextMut<Data = T>,
1077
- fun: impl AsyncFnOnce(&Accessor<T>) -> R,
1078
- ) -> Result<R>
1079
- where
1080
- T: Send + 'static,
1081
- {
1082
- check_recursive_run();
1083
- let mut store = store.as_context_mut();
1084
- let token = StoreToken::new(store.as_context_mut());
1085
-
1086
- struct Dropper<'a, T: 'static, V> {
1087
- store: StoreContextMut<'a, T>,
1088
- value: ManuallyDrop<V>,
1089
- }
1090
-
1091
- impl<'a, T, V> Drop for Dropper<'a, T, V> {
1092
- fn drop(&mut self) {
1093
- tls::set(self.store.0, || {
1094
- // SAFETY: Here we drop the value without moving it for the
1095
- // first and only time -- per the contract for `Drop::drop`,
1096
- // this code won't run again, and the `value` field will no
1097
- // longer be accessible.
1098
- unsafe { ManuallyDrop::drop(&mut self.value) }
1099
- });
1100
- }
1101
- }
1102
-
1103
- let accessor = &Accessor::new(token, Some(self));
1104
- let dropper = &mut Dropper {
1105
- store,
1106
- value: ManuallyDrop::new(fun(accessor)),
1107
- };
1108
- // SAFETY: We never move `dropper` nor its `value` field.
1109
- let future = unsafe { Pin::new_unchecked(dropper.value.deref_mut()) };
1110
-
1111
- self.poll_until(dropper.store.as_context_mut(), future)
1112
- .await
1113
- }
1114
-
1115
- /// Spawn a background task to run as part of this instance's event loop.
1116
- ///
1117
- /// The task will receive an `&Accessor<U>` and run concurrently with
1118
- /// any other tasks in progress for the instance.
1119
- ///
1120
- /// Note that the task will only make progress if and when the event loop
1121
- /// for this instance is run.
1122
- ///
1123
- /// The returned [`SpawnHandle`] may be used to cancel the task.
1124
- pub fn spawn<U: 'static>(
1125
- self,
1126
- mut store: impl AsContextMut<Data = U>,
1127
- task: impl AccessorTask<U, HasSelf<U>, Result<()>>,
1128
- ) -> JoinHandle {
1129
- let mut store = store.as_context_mut();
1130
- let accessor = Accessor::new(StoreToken::new(store.as_context_mut()), Some(self));
1131
- self.spawn_with_accessor(store, accessor, task)
1132
- }
1133
-
1134
- /// Internal implementation of `spawn` functions where a `store` is
1135
- /// available along with an `Accessor`.
1136
- fn spawn_with_accessor<T, D>(
1137
- self,
1138
- mut store: StoreContextMut<T>,
1139
- accessor: Accessor<T, D>,
1140
- task: impl AccessorTask<T, D, Result<()>>,
1141
- ) -> JoinHandle
1142
- where
1143
- T: 'static,
1144
- D: HasData + ?Sized,
1145
- {
1146
- let store = store.as_context_mut();
1147
-
1148
- // Create an "abortable future" here where internally the future will
1149
- // hook calls to poll and possibly spawn more background tasks on each
1150
- // iteration.
1151
- let (handle, future) = JoinHandle::run(async move { task.run(&accessor).await });
1152
- self.concurrent_state_mut(store.0)
1153
- .push_future(Box::pin(async move { future.await.unwrap_or(Ok(())) }));
1154
-
1155
- handle
1156
- }
1157
-
1158
- /// Run this instance's event loop.
1159
- ///
1160
- /// The returned future will resolve when either the specified future
1161
- /// completes (in which case we return its result) or no further progress
1162
- /// can be made (in which case we trap with `Trap::AsyncDeadlock`).
1163
- async fn poll_until<T, R>(
1164
- self,
1165
- mut store: StoreContextMut<'_, T>,
1166
- mut future: Pin<&mut impl Future<Output = R>>,
1167
- ) -> Result<R>
1168
- where
1169
- T: Send,
1170
- {
1171
- loop {
1172
- // Take `ConcurrentState::futures` out of the instance so we can
1173
- // poll it while also safely giving any of the futures inside access
1174
- // to `self`.
1175
- let mut futures = self
1176
- .concurrent_state_mut(store.0)
1177
- .futures
1178
- .get_mut()
1179
- .take()
1180
- .unwrap();
1181
- let mut next = pin!(futures.next());
1182
-
1183
- let result = future::poll_fn(|cx| {
1184
- // First, poll the future we were passed as an argument and
1185
- // return immediately if it's ready.
1186
- if let Poll::Ready(value) = self.set_tls(store.0, || future.as_mut().poll(cx)) {
1187
- return Poll::Ready(Ok(Either::Left(value)));
1188
- }
1189
-
1190
- // Next, poll `ConcurrentState::futures` (which includes any
1191
- // pending host tasks and/or background tasks), returning
1192
- // immediately if one of them fails.
1193
- let next = match self.set_tls(store.0, || next.as_mut().poll(cx)) {
1194
- Poll::Ready(Some(output)) => {
1195
- match output {
1196
- Err(e) => return Poll::Ready(Err(e)),
1197
- Ok(()) => {}
1198
- }
1199
- Poll::Ready(true)
1200
- }
1201
- Poll::Ready(None) => Poll::Ready(false),
1202
- Poll::Pending => Poll::Pending,
1203
- };
1204
-
1205
- let mut instance = self.id().get_mut(store.0);
1206
-
1207
- // Next, check the "high priority" work queue and return
1208
- // immediately if it has at least one item.
1209
- let state = instance.as_mut().concurrent_state_mut();
1210
- let ready = mem::take(&mut state.high_priority);
1211
- let ready = if ready.is_empty() {
1212
- // Next, check the "low priority" work queue and return
1213
- // immediately if it has at least one item.
1214
- let ready = mem::take(&mut state.low_priority);
1215
- if ready.is_empty() {
1216
- return match next {
1217
- Poll::Ready(true) => {
1218
- // In this case, one of the futures in
1219
- // `ConcurrentState::futures` completed
1220
- // successfully, so we return now and continue
1221
- // the outer loop in case there is another one
1222
- // ready to complete.
1223
- Poll::Ready(Ok(Either::Right(Vec::new())))
1224
- }
1225
- Poll::Ready(false) => {
1226
- // Poll the future we were passed one last time
1227
- // in case one of `ConcurrentState::futures` had
1228
- // the side effect of unblocking it.
1229
- if let Poll::Ready(value) =
1230
- self.set_tls(store.0, || future.as_mut().poll(cx))
1231
- {
1232
- Poll::Ready(Ok(Either::Left(value)))
1233
- } else {
1234
- // In this case, there are no more pending
1235
- // futures in `ConcurrentState::futures`,
1236
- // there are no remaining work items, _and_
1237
- // the future we were passed as an argument
1238
- // still hasn't completed, meaning we're
1239
- // stuck, so we return an error. The
1240
- // underlying assumption is that `future`
1241
- // depends on this component instance making
1242
- // such progress, and thus there's no point
1243
- // in continuing to poll it given we've run
1244
- // out of work to do.
1245
- //
1246
- // Note that we'd also reach this point if
1247
- // the host embedder passed e.g. a
1248
- // `std::future::Pending` to
1249
- // `Instance::run_concurrent`, in which case
1250
- // we'd return a "deadlock" error even when
1251
- // any and all tasks have completed
1252
- // normally. However, that's not how
1253
- // `Instance::run_concurrent` is intended
1254
- // (and documented) to be used, so it seems
1255
- // reasonable to lump that case in with
1256
- // "real" deadlocks.
1257
- //
1258
- // TODO: Once we've added host APIs for
1259
- // cancelling in-progress tasks, we can
1260
- // return some other, non-error value here,
1261
- // treating it as "normal" and giving the
1262
- // host embedder a chance to intervene by
1263
- // cancelling one or more tasks and/or
1264
- // starting new tasks capable of waking the
1265
- // existing ones.
1266
- Poll::Ready(Err(anyhow!(crate::Trap::AsyncDeadlock)))
1267
- }
1268
- }
1269
- // There is at least one pending future in
1270
- // `ConcurrentState::futures` and we have nothing
1271
- // else to do but wait for now, so we return
1272
- // `Pending`.
1273
- Poll::Pending => Poll::Pending,
1274
- };
1275
- } else {
1276
- ready
1277
- }
1278
- } else {
1279
- ready
1280
- };
1281
-
1282
- Poll::Ready(Ok(Either::Right(ready)))
1283
- })
1284
- .await;
1285
-
1286
- // Put the `ConcurrentState::futures` back into the instance before
1287
- // we return or handle any work items since one or more of those
1288
- // items might append more futures.
1289
- *self.concurrent_state_mut(store.0).futures.get_mut() = Some(futures);
1290
-
1291
- match result? {
1292
- // The future we were passed as an argument completed, so we
1293
- // return the result.
1294
- Either::Left(value) => break Ok(value),
1295
- // The future we were passed has not yet completed, so handle
1296
- // any work items and then loop again.
1297
- Either::Right(ready) => {
1298
- struct Dispose<'a, T: 'static, I: Iterator<Item = WorkItem>> {
1299
- store: StoreContextMut<'a, T>,
1300
- ready: I,
1301
- }
1302
-
1303
- impl<'a, T, I: Iterator<Item = WorkItem>> Drop for Dispose<'a, T, I> {
1304
- fn drop(&mut self) {
1305
- while let Some(item) = self.ready.next() {
1306
- match item {
1307
- WorkItem::ResumeFiber(mut fiber) => fiber.dispose(self.store.0),
1308
- WorkItem::PushFuture(future) => {
1309
- tls::set(self.store.0, move || drop(future))
1310
- }
1311
- _ => {}
1312
- }
1313
- }
1314
- }
1315
- }
1316
-
1317
- let mut dispose = Dispose {
1318
- store: store.as_context_mut(),
1319
- ready: ready.into_iter(),
1320
- };
1321
-
1322
- while let Some(item) = dispose.ready.next() {
1323
- self.handle_work_item(dispose.store.as_context_mut(), item)
1324
- .await?;
1325
- }
1326
- }
1327
- }
1328
- }
1329
- }
1330
-
1331
- /// Handle the specified work item, possibly resuming a fiber if applicable.
1332
- async fn handle_work_item<T: Send>(
1333
- self,
1334
- store: StoreContextMut<'_, T>,
1335
- item: WorkItem,
1336
- ) -> Result<()> {
1337
- log::trace!("handle work item {item:?}");
1338
- match item {
1339
- WorkItem::PushFuture(future) => {
1340
- self.concurrent_state_mut(store.0)
1341
- .futures
1342
- .get_mut()
1343
- .as_mut()
1344
- .unwrap()
1345
- .push(future.into_inner());
1346
- }
1347
- WorkItem::ResumeFiber(fiber) => {
1348
- self.resume_fiber(store.0, fiber).await?;
1349
- }
1350
- WorkItem::GuestCall(call) => {
1351
- let state = self.concurrent_state_mut(store.0);
1352
- if call.is_ready(state)? {
1353
- self.run_on_worker(store, WorkerItem::GuestCall(call))
1354
- .await?;
1355
- } else {
1356
- let task = state.get_mut(call.task)?;
1357
- if !task.starting_sent {
1358
- task.starting_sent = true;
1359
- if let GuestCallKind::Start(_) = &call.kind {
1360
- Waitable::Guest(call.task).set_event(
1361
- state,
1362
- Some(Event::Subtask {
1363
- status: Status::Starting,
1364
- }),
1365
- )?;
1366
- }
1367
- }
1368
-
1369
- let runtime_instance = state.get_mut(call.task)?.instance;
1370
- state
1371
- .instance_state(runtime_instance)
1372
- .pending
1373
- .insert(call.task, call.kind);
1374
- }
1375
- }
1376
- WorkItem::Poll(params) => {
1377
- let state = self.concurrent_state_mut(store.0);
1378
- if state.get_mut(params.task)?.event.is_some()
1379
- || !state.get_mut(params.set)?.ready.is_empty()
1380
- {
1381
- // There's at least one event immediately available; deliver
1382
- // it to the guest ASAP.
1383
- state.push_high_priority(WorkItem::GuestCall(GuestCall {
1384
- task: params.task,
1385
- kind: GuestCallKind::DeliverEvent {
1386
- set: Some(params.set),
1387
- },
1388
- }));
1389
- } else {
1390
- // There are no events immediately available; deliver
1391
- // `Event::None` to the guest.
1392
- state.get_mut(params.task)?.event = Some(Event::None);
1393
- state.push_high_priority(WorkItem::GuestCall(GuestCall {
1394
- task: params.task,
1395
- kind: GuestCallKind::DeliverEvent {
1396
- set: Some(params.set),
1397
- },
1398
- }));
1399
- }
1400
- }
1401
- WorkItem::WorkerFunction(fun) => {
1402
- self.run_on_worker(store, WorkerItem::Function(fun)).await?;
1403
- }
1404
- }
1405
-
1406
- Ok(())
1407
- }
1408
-
1409
- /// Resume the specified fiber, giving it exclusive access to the specified
1410
- /// store.
1411
- async fn resume_fiber(self, store: &mut StoreOpaque, fiber: StoreFiber<'static>) -> Result<()> {
1412
- let old_task = self.concurrent_state_mut(store).guest_task;
1413
- log::trace!("resume_fiber: save current task {old_task:?}");
1414
-
1415
- let fiber = fiber::resolve_or_release(store, fiber).await?;
1416
-
1417
- let state = self.concurrent_state_mut(store);
1418
-
1419
- state.guest_task = old_task;
1420
- log::trace!("resume_fiber: restore current task {old_task:?}");
1421
-
1422
- if let Some(mut fiber) = fiber {
1423
- // See the `SuspendReason` documentation for what each case means.
1424
- match state.suspend_reason.take().unwrap() {
1425
- SuspendReason::NeedWork => {
1426
- if state.worker.is_none() {
1427
- state.worker = Some(fiber);
1428
- } else {
1429
- fiber.dispose(store);
1430
- }
1431
- }
1432
- SuspendReason::Yielding { .. } => {
1433
- state.push_low_priority(WorkItem::ResumeFiber(fiber));
1434
- }
1435
- SuspendReason::Waiting { set, task } => {
1436
- let old = state
1437
- .get_mut(set)?
1438
- .waiting
1439
- .insert(task, WaitMode::Fiber(fiber));
1440
- assert!(old.is_none());
1441
- }
1442
- }
1443
- }
1444
-
1445
- Ok(())
1446
- }
1447
-
1448
- /// Execute the specified guest call on a worker fiber.
1449
- async fn run_on_worker<T: Send>(
1450
- self,
1451
- store: StoreContextMut<'_, T>,
1452
- item: WorkerItem,
1453
- ) -> Result<()> {
1454
- let worker = if let Some(fiber) = self.concurrent_state_mut(store.0).worker.take() {
1455
- fiber
1456
- } else {
1457
- fiber::make_fiber(store.0, move |store| {
1458
- loop {
1459
- match self.concurrent_state_mut(store).worker_item.take().unwrap() {
1460
- WorkerItem::GuestCall(call) => self.handle_guest_call(store, call)?,
1461
- WorkerItem::Function(fun) => fun.into_inner()(store, self)?,
1462
- }
1463
-
1464
- self.suspend(store, SuspendReason::NeedWork)?;
1465
- }
1466
- })?
1467
- };
1468
-
1469
- let worker_item = &mut self.concurrent_state_mut(store.0).worker_item;
1470
- assert!(worker_item.is_none());
1471
- *worker_item = Some(item);
1472
-
1473
- self.resume_fiber(store.0, worker).await
1474
- }
1475
-
1476
- /// Execute the specified guest call.
1477
- fn handle_guest_call(self, store: &mut dyn VMStore, call: GuestCall) -> Result<()> {
1478
- match call.kind {
1479
- GuestCallKind::DeliverEvent { set } => {
1480
- let (event, waitable) = self
1481
- .id()
1482
- .get_mut(store)
1483
- .get_event(call.task, set, true)?
1484
- .unwrap();
1485
- let state = self.concurrent_state_mut(store);
1486
- let task = state.get_mut(call.task)?;
1487
- let runtime_instance = task.instance;
1488
- let handle = waitable.map(|(_, v)| v).unwrap_or(0);
1489
-
1490
- log::trace!(
1491
- "use callback to deliver event {event:?} to {:?} for {waitable:?}",
1492
- call.task,
1493
- );
1494
-
1495
- let old_task = state.guest_task.replace(call.task);
1496
- log::trace!(
1497
- "GuestCallKind::DeliverEvent: replaced {old_task:?} with {:?} as current task",
1498
- call.task
1499
- );
1500
-
1501
- self.maybe_push_call_context(store.store_opaque_mut(), call.task)?;
1502
-
1503
- let state = self.concurrent_state_mut(store);
1504
- state.enter_instance(runtime_instance);
1505
-
1506
- let callback = state.get_mut(call.task)?.callback.take().unwrap();
1507
-
1508
- let code = callback(store, self, runtime_instance, event, handle)?;
1509
-
1510
- let state = self.concurrent_state_mut(store);
1511
-
1512
- state.get_mut(call.task)?.callback = Some(callback);
1513
-
1514
- state.exit_instance(runtime_instance)?;
1515
-
1516
- self.maybe_pop_call_context(store.store_opaque_mut(), call.task)?;
1517
-
1518
- self.id().get_mut(store).handle_callback_code(
1519
- call.task,
1520
- runtime_instance,
1521
- code,
1522
- false,
1523
- )?;
1524
-
1525
- self.concurrent_state_mut(store).guest_task = old_task;
1526
- log::trace!("GuestCallKind::DeliverEvent: restored {old_task:?} as current task");
1527
- }
1528
- GuestCallKind::Start(fun) => {
1529
- fun(store, self)?;
1530
- }
1531
- }
1532
-
1533
- Ok(())
1534
- }
1535
-
1536
- /// Suspend the current fiber, storing the reason in
1537
- /// `ConcurrentState::suspend_reason` to indicate the conditions under which
1538
- /// it should be resumed.
1539
- ///
1540
- /// See the `SuspendReason` documentation for details.
1541
- fn suspend(self, store: &mut dyn VMStore, reason: SuspendReason) -> Result<()> {
1542
- log::trace!("suspend fiber: {reason:?}");
1543
-
1544
- // If we're yielding or waiting on behalf of a guest task, we'll need to
1545
- // pop the call context which manages resource borrows before suspending
1546
- // and then push it again once we've resumed.
1547
- let task = match &reason {
1548
- SuspendReason::Yielding { task } | SuspendReason::Waiting { task, .. } => Some(*task),
1549
- SuspendReason::NeedWork => None,
1550
- };
1551
-
1552
- let old_guest_task = if let Some(task) = task {
1553
- self.maybe_pop_call_context(store, task)?;
1554
- self.concurrent_state_mut(store).guest_task
1555
- } else {
1556
- None
1557
- };
1558
-
1559
- let suspend_reason = &mut self.concurrent_state_mut(store).suspend_reason;
1560
- assert!(suspend_reason.is_none());
1561
- *suspend_reason = Some(reason);
1562
-
1563
- store.with_blocking(|_, cx| cx.suspend(StoreFiberYield::ReleaseStore))?;
1564
-
1565
- if let Some(task) = task {
1566
- self.concurrent_state_mut(store).guest_task = old_guest_task;
1567
- self.maybe_push_call_context(store, task)?;
1568
- }
1569
-
1570
- Ok(())
1571
- }
1572
-
1573
- /// Push the call context for managing resource borrows for the specified
1574
- /// guest task if it has not yet either returned a result or cancelled
1575
- /// itself.
1576
- fn maybe_push_call_context(
1577
- self,
1578
- store: &mut StoreOpaque,
1579
- guest_task: TableId<GuestTask>,
1580
- ) -> Result<()> {
1581
- let task = self.concurrent_state_mut(store).get_mut(guest_task)?;
1582
- if task.lift_result.is_some() {
1583
- log::trace!("push call context for {guest_task:?}");
1584
- let call_context = task.call_context.take().unwrap();
1585
- store.component_resource_state().0.push(call_context);
1586
- }
1587
- Ok(())
1588
- }
1589
-
1590
- /// Pop the call context for managing resource borrows for the specified
1591
- /// guest task if it has not yet either returned a result or cancelled
1592
- /// itself.
1593
- fn maybe_pop_call_context(
1594
- self,
1595
- store: &mut StoreOpaque,
1596
- guest_task: TableId<GuestTask>,
1597
- ) -> Result<()> {
1598
- if self
1599
- .concurrent_state_mut(store)
1600
- .get_mut(guest_task)?
1601
- .lift_result
1602
- .is_some()
1603
- {
1604
- log::trace!("pop call context for {guest_task:?}");
1605
- let call_context = Some(store.component_resource_state().0.pop().unwrap());
1606
- self.concurrent_state_mut(store)
1607
- .get_mut(guest_task)?
1608
- .call_context = call_context;
1609
- }
1610
- Ok(())
1611
- }
1612
-
1613
- /// Add the specified guest call to the "high priority" work item queue, to
1614
- /// be started as soon as backpressure and/or reentrance rules allow.
1615
- ///
1616
- /// SAFETY: The raw pointer arguments must be valid references to guest
1617
- /// functions (with the appropriate signatures) when the closures queued by
1618
- /// this function are called.
1619
- unsafe fn queue_call<T: 'static>(
1620
- self,
1621
- mut store: StoreContextMut<T>,
1622
- guest_task: TableId<GuestTask>,
1623
- callee: SendSyncPtr<VMFuncRef>,
1624
- param_count: usize,
1625
- result_count: usize,
1626
- flags: Option<InstanceFlags>,
1627
- async_: bool,
1628
- callback: Option<SendSyncPtr<VMFuncRef>>,
1629
- post_return: Option<SendSyncPtr<VMFuncRef>>,
1630
- ) -> Result<()> {
1631
- /// Return a closure which will call the specified function in the scope
1632
- /// of the specified task.
1633
- ///
1634
- /// This will use `GuestTask::lower_params` to lower the parameters, but
1635
- /// will not lift the result; instead, it returns a
1636
- /// `[MaybeUninit<ValRaw>; MAX_FLAT_PARAMS]` from which the result, if
1637
- /// any, may be lifted. Note that an async-lifted export will have
1638
- /// returned its result using the `task.return` intrinsic (or not
1639
- /// returned a result at all, in the case of `task.cancel`), in which
1640
- /// case the "result" of this call will either be a callback code or
1641
- /// nothing.
1642
- ///
1643
- /// SAFETY: `callee` must be a valid `*mut VMFuncRef` at the time when
1644
- /// the returned closure is called.
1645
- unsafe fn make_call<T: 'static>(
1646
- store: StoreContextMut<T>,
1647
- guest_task: TableId<GuestTask>,
1648
- callee: SendSyncPtr<VMFuncRef>,
1649
- param_count: usize,
1650
- result_count: usize,
1651
- flags: Option<InstanceFlags>,
1652
- ) -> impl FnOnce(
1653
- &mut dyn VMStore,
1654
- Instance,
1655
- ) -> Result<[MaybeUninit<ValRaw>; MAX_FLAT_PARAMS]>
1656
- + Send
1657
- + Sync
1658
- + 'static
1659
- + use<T> {
1660
- let token = StoreToken::new(store);
1661
- move |store: &mut dyn VMStore, instance: Instance| {
1662
- let mut storage = [MaybeUninit::uninit(); MAX_FLAT_PARAMS];
1663
- let task = instance.concurrent_state_mut(store).get_mut(guest_task)?;
1664
- let may_enter_after_call = task.call_post_return_automatically();
1665
- let lower = task.lower_params.take().unwrap();
1666
-
1667
- lower(store, instance, &mut storage[..param_count])?;
1668
-
1669
- let mut store = token.as_context_mut(store);
1670
-
1671
- // SAFETY: Per the contract documented in `make_call's`
1672
- // documentation, `callee` must be a valid pointer.
1673
- unsafe {
1674
- if let Some(mut flags) = flags {
1675
- flags.set_may_enter(false);
1676
- }
1677
- crate::Func::call_unchecked_raw(
1678
- &mut store,
1679
- callee.as_non_null(),
1680
- NonNull::new(
1681
- &mut storage[..param_count.max(result_count)]
1682
- as *mut [MaybeUninit<ValRaw>] as _,
1683
- )
1684
- .unwrap(),
1685
- )?;
1686
- if let Some(mut flags) = flags {
1687
- flags.set_may_enter(may_enter_after_call);
1688
- }
1689
- }
1690
-
1691
- Ok(storage)
1692
- }
1693
- }
1694
-
1695
- // SAFETY: Per the contract described in this function documentation,
1696
- // the `callee` pointer which `call` closes over must be valid when
1697
- // called by the closure we queue below.
1698
- let call = unsafe {
1699
- make_call(
1700
- store.as_context_mut(),
1701
- guest_task,
1702
- callee,
1703
- param_count,
1704
- result_count,
1705
- flags,
1706
- )
1707
- };
1708
-
1709
- let callee_instance = self
1710
- .concurrent_state_mut(store.0)
1711
- .get_mut(guest_task)?
1712
- .instance;
1713
- let fun = if callback.is_some() {
1714
- assert!(async_);
1715
-
1716
- Box::new(move |store: &mut dyn VMStore, instance: Instance| {
1717
- let old_task = instance
1718
- .concurrent_state_mut(store)
1719
- .guest_task
1720
- .replace(guest_task);
1721
- log::trace!(
1722
- "stackless call: replaced {old_task:?} with {guest_task:?} as current task"
1723
- );
1724
-
1725
- instance.maybe_push_call_context(store.store_opaque_mut(), guest_task)?;
1726
-
1727
- instance
1728
- .concurrent_state_mut(store)
1729
- .enter_instance(callee_instance);
1730
-
1731
- // SAFETY: See the documentation for `make_call` to review the
1732
- // contract we must uphold for `call` here.
1733
- //
1734
- // Per the contract described in the `queue_call`
1735
- // documentation, the `callee` pointer which `call` closes
1736
- // over must be valid.
1737
- let storage = call(store, instance)?;
1738
-
1739
- instance
1740
- .concurrent_state_mut(store)
1741
- .exit_instance(callee_instance)?;
1742
-
1743
- instance.maybe_pop_call_context(store.store_opaque_mut(), guest_task)?;
1744
-
1745
- let state = instance.concurrent_state_mut(store);
1746
- state.guest_task = old_task;
1747
- log::trace!("stackless call: restored {old_task:?} as current task");
1748
-
1749
- // SAFETY: `wasmparser` will have validated that the callback
1750
- // function returns a `i32` result.
1751
- let code = unsafe { storage[0].assume_init() }.get_i32() as u32;
1752
-
1753
- instance.id().get_mut(store).handle_callback_code(
1754
- guest_task,
1755
- callee_instance,
1756
- code,
1757
- true,
1758
- )?;
1759
-
1760
- Ok(())
1761
- })
1762
- as Box<dyn FnOnce(&mut dyn VMStore, Instance) -> Result<()> + Send + Sync>
1763
- } else {
1764
- let token = StoreToken::new(store.as_context_mut());
1765
- Box::new(move |store: &mut dyn VMStore, instance: Instance| {
1766
- let old_task = instance
1767
- .concurrent_state_mut(store)
1768
- .guest_task
1769
- .replace(guest_task);
1770
- log::trace!(
1771
- "stackful call: replaced {old_task:?} with {guest_task:?} as current task",
1772
- );
1773
-
1774
- let mut flags = instance.id().get(store).instance_flags(callee_instance);
1775
-
1776
- instance.maybe_push_call_context(store.store_opaque_mut(), guest_task)?;
1777
-
1778
- // Unless this is a callback-less (i.e. stackful)
1779
- // async-lifted export, we need to record that the instance
1780
- // cannot be entered until the call returns.
1781
- if !async_ {
1782
- instance
1783
- .concurrent_state_mut(store)
1784
- .enter_instance(callee_instance);
1785
- }
1786
-
1787
- // SAFETY: See the documentation for `make_call` to review the
1788
- // contract we must uphold for `call` here.
1789
- //
1790
- // Per the contract described in the `queue_call`
1791
- // documentation, the `callee` pointer which `call` closes
1792
- // over must be valid.
1793
- let storage = call(store, instance)?;
1794
-
1795
- if async_ {
1796
- // This is a callback-less (i.e. stackful) async-lifted
1797
- // export, so there is no post-return function, and
1798
- // either `task.return` or `task.cancel` should have
1799
- // been called.
1800
- if instance
1801
- .concurrent_state_mut(store)
1802
- .get_mut(guest_task)?
1803
- .lift_result
1804
- .is_some()
1805
- {
1806
- return Err(anyhow!(crate::Trap::NoAsyncResult));
1807
- }
1808
- } else {
1809
- // This is a sync-lifted export, so now is when we lift the
1810
- // result, optionally call the post-return function, if any,
1811
- // and finally notify any current or future waiters that the
1812
- // subtask has returned.
1813
-
1814
- let lift = {
1815
- let state = instance.concurrent_state_mut(store);
1816
- state.exit_instance(callee_instance)?;
1817
-
1818
- assert!(state.get_mut(guest_task)?.result.is_none());
1819
-
1820
- state.get_mut(guest_task)?.lift_result.take().unwrap()
1821
- };
1822
-
1823
- // SAFETY: `result_count` represents the number of core Wasm
1824
- // results returned, per `wasmparser`.
1825
- let result = (lift.lift)(store, instance, unsafe {
1826
- mem::transmute::<&[MaybeUninit<ValRaw>], &[ValRaw]>(
1827
- &storage[..result_count],
1828
- )
1829
- })?;
1830
-
1831
- let post_return_arg = match result_count {
1832
- 0 => ValRaw::i32(0),
1833
- // SAFETY: `result_count` represents the number of
1834
- // core Wasm results returned, per `wasmparser`.
1835
- 1 => unsafe { storage[0].assume_init() },
1836
- _ => unreachable!(),
1837
- };
1838
-
1839
- if instance
1840
- .concurrent_state_mut(store)
1841
- .get_mut(guest_task)?
1842
- .call_post_return_automatically()
1843
- {
1844
- unsafe { flags.set_needs_post_return(false) }
1845
-
1846
- if let Some(func) = post_return {
1847
- let mut store = token.as_context_mut(store);
1848
-
1849
- // SAFETY: `func` is a valid `*mut VMFuncRef` from
1850
- // either `wasmtime-cranelift`-generated fused adapter
1851
- // code or `component::Options`. Per `wasmparser`
1852
- // post-return signature validation, we know it takes a
1853
- // single parameter.
1854
- unsafe {
1855
- crate::Func::call_unchecked_raw(
1856
- &mut store,
1857
- func.as_non_null(),
1858
- slice::from_ref(&post_return_arg).into(),
1859
- )?;
1860
- }
1861
- }
1862
-
1863
- unsafe { flags.set_may_enter(true) }
1864
- }
1865
-
1866
- instance.task_complete(
1867
- store,
1868
- guest_task,
1869
- result,
1870
- Status::Returned,
1871
- post_return_arg,
1872
- )?;
1873
- }
1874
-
1875
- instance.maybe_pop_call_context(store.store_opaque_mut(), guest_task)?;
1876
-
1877
- let task = instance.concurrent_state_mut(store).get_mut(guest_task)?;
1878
-
1879
- match &task.caller {
1880
- Caller::Host {
1881
- remove_task_automatically,
1882
- ..
1883
- } => {
1884
- if *remove_task_automatically {
1885
- Waitable::Guest(guest_task)
1886
- .delete_from(instance.concurrent_state_mut(store))?;
1887
- }
1888
- }
1889
- Caller::Guest { .. } => {
1890
- task.exited = true;
1891
- }
1892
- }
1893
-
1894
- Ok(())
1895
- })
1896
- };
1897
-
1898
- self.concurrent_state_mut(store.0)
1899
- .push_high_priority(WorkItem::GuestCall(GuestCall {
1900
- task: guest_task,
1901
- kind: GuestCallKind::Start(fun),
1902
- }));
1903
-
1904
- Ok(())
1905
- }
1906
-
1907
- /// Prepare (but do not start) a guest->guest call.
1908
- ///
1909
- /// This is called from fused adapter code generated in
1910
- /// `wasmtime_environ::fact::trampoline::Compiler`. `start` and `return_`
1911
- /// are synthesized Wasm functions which move the parameters from the caller
1912
- /// to the callee and the result from the callee to the caller,
1913
- /// respectively. The adapter will call `Self::start_call` immediately
1914
- /// after calling this function.
1915
- ///
1916
- /// SAFETY: All the pointer arguments must be valid pointers to guest
1917
- /// entities (and with the expected signatures for the function references
1918
- /// -- see `wasmtime_environ::fact::trampoline::Compiler` for details).
1919
- unsafe fn prepare_call<T: 'static>(
1920
- self,
1921
- mut store: StoreContextMut<T>,
1922
- start: *mut VMFuncRef,
1923
- return_: *mut VMFuncRef,
1924
- caller_instance: RuntimeComponentInstanceIndex,
1925
- callee_instance: RuntimeComponentInstanceIndex,
1926
- task_return_type: TypeTupleIndex,
1927
- memory: *mut VMMemoryDefinition,
1928
- string_encoding: u8,
1929
- caller_info: CallerInfo,
1930
- ) -> Result<()> {
1931
- enum ResultInfo {
1932
- Heap { results: u32 },
1933
- Stack { result_count: u32 },
1934
- }
1935
-
1936
- let result_info = match &caller_info {
1937
- CallerInfo::Async {
1938
- has_result: true,
1939
- params,
1940
- } => ResultInfo::Heap {
1941
- results: params.last().unwrap().get_u32(),
1942
- },
1943
- CallerInfo::Async {
1944
- has_result: false, ..
1945
- } => ResultInfo::Stack { result_count: 0 },
1946
- CallerInfo::Sync {
1947
- result_count,
1948
- params,
1949
- } if *result_count > u32::try_from(MAX_FLAT_RESULTS).unwrap() => ResultInfo::Heap {
1950
- results: params.last().unwrap().get_u32(),
1951
- },
1952
- CallerInfo::Sync { result_count, .. } => ResultInfo::Stack {
1953
- result_count: *result_count,
1954
- },
1955
- };
1956
-
1957
- let sync_caller = matches!(caller_info, CallerInfo::Sync { .. });
1958
-
1959
- // Create a new guest task for the call, closing over the `start` and
1960
- // `return_` functions to lift the parameters and lower the result,
1961
- // respectively.
1962
- let start = SendSyncPtr::new(NonNull::new(start).unwrap());
1963
- let return_ = SendSyncPtr::new(NonNull::new(return_).unwrap());
1964
- let token = StoreToken::new(store.as_context_mut());
1965
- let state = self.concurrent_state_mut(store.0);
1966
- let old_task = state.guest_task.take();
1967
- let new_task = GuestTask::new(
1968
- state,
1969
- Box::new(move |store, instance, dst| {
1970
- let mut store = token.as_context_mut(store);
1971
- assert!(dst.len() <= MAX_FLAT_PARAMS);
1972
- let mut src = [MaybeUninit::uninit(); MAX_FLAT_PARAMS];
1973
- let count = match caller_info {
1974
- // Async callers, if they have a result, use the last
1975
- // parameter as a return pointer so chop that off if
1976
- // relevant here.
1977
- CallerInfo::Async { params, has_result } => {
1978
- let params = &params[..params.len() - usize::from(has_result)];
1979
- for (param, src) in params.iter().zip(&mut src) {
1980
- src.write(*param);
1981
- }
1982
- params.len()
1983
- }
1984
-
1985
- // Sync callers forward everything directly.
1986
- CallerInfo::Sync { params, .. } => {
1987
- for (param, src) in params.iter().zip(&mut src) {
1988
- src.write(*param);
1989
- }
1990
- params.len()
1991
- }
1992
- };
1993
- // SAFETY: `start` is a valid `*mut VMFuncRef` from
1994
- // `wasmtime-cranelift`-generated fused adapter code. Based on
1995
- // how it was constructed (see
1996
- // `wasmtime_environ::fact::trampoline::Compiler::compile_async_start_adapter`
1997
- // for details) we know it takes count parameters and returns
1998
- // `dst.len()` results.
1999
- unsafe {
2000
- crate::Func::call_unchecked_raw(
2001
- &mut store,
2002
- start.as_non_null(),
2003
- NonNull::new(
2004
- &mut src[..count.max(dst.len())] as *mut [MaybeUninit<ValRaw>] as _,
2005
- )
2006
- .unwrap(),
2007
- )?;
2008
- }
2009
- dst.copy_from_slice(&src[..dst.len()]);
2010
- let state = instance.concurrent_state_mut(store.0);
2011
- let task = state.guest_task.unwrap();
2012
- Waitable::Guest(task).set_event(
2013
- state,
2014
- Some(Event::Subtask {
2015
- status: Status::Started,
2016
- }),
2017
- )?;
2018
- Ok(())
2019
- }),
2020
- LiftResult {
2021
- lift: Box::new(move |store, instance, src| {
2022
- // SAFETY: See comment in closure passed as `lower_params`
2023
- // parameter above.
2024
- let mut store = token.as_context_mut(store);
2025
- let mut my_src = src.to_owned(); // TODO: use stack to avoid allocation?
2026
- if let ResultInfo::Heap { results } = &result_info {
2027
- my_src.push(ValRaw::u32(*results));
2028
- }
2029
- // SAFETY: `return_` is a valid `*mut VMFuncRef` from
2030
- // `wasmtime-cranelift`-generated fused adapter code. Based
2031
- // on how it was constructed (see
2032
- // `wasmtime_environ::fact::trampoline::Compiler::compile_async_return_adapter`
2033
- // for details) we know it takes `src.len()` parameters and
2034
- // returns up to 1 result.
2035
- unsafe {
2036
- crate::Func::call_unchecked_raw(
2037
- &mut store,
2038
- return_.as_non_null(),
2039
- my_src.as_mut_slice().into(),
2040
- )?;
2041
- }
2042
- let state = instance.concurrent_state_mut(store.0);
2043
- let task = state.guest_task.unwrap();
2044
- if sync_caller {
2045
- state.get_mut(task)?.sync_result =
2046
- Some(if let ResultInfo::Stack { result_count } = &result_info {
2047
- match result_count {
2048
- 0 => None,
2049
- 1 => Some(my_src[0]),
2050
- _ => unreachable!(),
2051
- }
2052
- } else {
2053
- None
2054
- });
2055
- }
2056
- Ok(Box::new(DummyResult) as Box<dyn Any + Send + Sync>)
2057
- }),
2058
- ty: task_return_type,
2059
- memory: NonNull::new(memory).map(SendSyncPtr::new),
2060
- string_encoding: StringEncoding::from_u8(string_encoding).unwrap(),
2061
- },
2062
- Caller::Guest {
2063
- task: old_task.unwrap(),
2064
- instance: caller_instance,
2065
- },
2066
- None,
2067
- callee_instance,
2068
- )?;
2069
-
2070
- let guest_task = state.push(new_task)?;
2071
-
2072
- if let Some(old_task) = old_task {
2073
- if !state.may_enter(guest_task) {
2074
- bail!(crate::Trap::CannotEnterComponent);
2075
- }
2076
-
2077
- state.get_mut(old_task)?.subtasks.insert(guest_task);
2078
- };
2079
-
2080
- // Make the new task the current one so that `Self::start_call` knows
2081
- // which one to start.
2082
- state.guest_task = Some(guest_task);
2083
- log::trace!("pushed {guest_task:?} as current task; old task was {old_task:?}");
2084
-
2085
- Ok(())
2086
- }
2087
-
2088
- /// Call the specified callback function for an async-lifted export.
2089
- ///
2090
- /// SAFETY: `function` must be a valid reference to a guest function of the
2091
- /// correct signature for a callback.
2092
- unsafe fn call_callback<T>(
2093
- self,
2094
- mut store: StoreContextMut<T>,
2095
- callee_instance: RuntimeComponentInstanceIndex,
2096
- function: SendSyncPtr<VMFuncRef>,
2097
- event: Event,
2098
- handle: u32,
2099
- may_enter_after_call: bool,
2100
- ) -> Result<u32> {
2101
- let mut flags = self.id().get(store.0).instance_flags(callee_instance);
2102
-
2103
- let (ordinal, result) = event.parts();
2104
- let params = &mut [
2105
- ValRaw::u32(ordinal),
2106
- ValRaw::u32(handle),
2107
- ValRaw::u32(result),
2108
- ];
2109
- // SAFETY: `func` is a valid `*mut VMFuncRef` from either
2110
- // `wasmtime-cranelift`-generated fused adapter code or
2111
- // `component::Options`. Per `wasmparser` callback signature
2112
- // validation, we know it takes three parameters and returns one.
2113
- unsafe {
2114
- flags.set_may_enter(false);
2115
- crate::Func::call_unchecked_raw(
2116
- &mut store,
2117
- function.as_non_null(),
2118
- params.as_mut_slice().into(),
2119
- )?;
2120
- flags.set_may_enter(may_enter_after_call);
2121
- }
2122
- Ok(params[0].get_u32())
2123
- }
2124
-
2125
- /// Start a guest->guest call previously prepared using
2126
- /// `Self::prepare_call`.
2127
- ///
2128
- /// This is called from fused adapter code generated in
2129
- /// `wasmtime_environ::fact::trampoline::Compiler`. The adapter will call
2130
- /// this function immediately after calling `Self::prepare_call`.
2131
- ///
2132
- /// SAFETY: The `*mut VMFuncRef` arguments must be valid pointers to guest
2133
- /// functions with the appropriate signatures for the current guest task.
2134
- /// If this is a call to an async-lowered import, the actual call may be
2135
- /// deferred and run after this function returns, in which case the pointer
2136
- /// arguments must also be valid when the call happens.
2137
- unsafe fn start_call<T: 'static>(
2138
- self,
2139
- mut store: StoreContextMut<T>,
2140
- callback: *mut VMFuncRef,
2141
- post_return: *mut VMFuncRef,
2142
- callee: *mut VMFuncRef,
2143
- param_count: u32,
2144
- result_count: u32,
2145
- flags: u32,
2146
- storage: Option<&mut [MaybeUninit<ValRaw>]>,
2147
- ) -> Result<u32> {
2148
- let token = StoreToken::new(store.as_context_mut());
2149
- let async_caller = storage.is_none();
2150
- let state = self.concurrent_state_mut(store.0);
2151
- let guest_task = state.guest_task.unwrap();
2152
- let may_enter_after_call = state.get_mut(guest_task)?.call_post_return_automatically();
2153
- let callee = SendSyncPtr::new(NonNull::new(callee).unwrap());
2154
- let param_count = usize::try_from(param_count).unwrap();
2155
- assert!(param_count <= MAX_FLAT_PARAMS);
2156
- let result_count = usize::try_from(result_count).unwrap();
2157
- assert!(result_count <= MAX_FLAT_RESULTS);
2158
-
2159
- let task = state.get_mut(guest_task)?;
2160
- if !callback.is_null() {
2161
- // We're calling an async-lifted export with a callback, so store
2162
- // the callback and related context as part of the task so we can
2163
- // call it later when needed.
2164
- let callback = SendSyncPtr::new(NonNull::new(callback).unwrap());
2165
- task.callback = Some(Box::new(
2166
- move |store, instance, runtime_instance, event, handle| {
2167
- let store = token.as_context_mut(store);
2168
- unsafe {
2169
- instance.call_callback::<T>(
2170
- store,
2171
- runtime_instance,
2172
- callback,
2173
- event,
2174
- handle,
2175
- may_enter_after_call,
2176
- )
2177
- }
2178
- },
2179
- ));
2180
- }
2181
-
2182
- let Caller::Guest {
2183
- task: caller,
2184
- instance: runtime_instance,
2185
- } = &task.caller
2186
- else {
2187
- // As of this writing, `start_call` is only used for guest->guest
2188
- // calls.
2189
- unreachable!()
2190
- };
2191
- let caller = *caller;
2192
- let caller_instance = *runtime_instance;
2193
-
2194
- let callee_instance = task.instance;
2195
-
2196
- let instance_flags = if callback.is_null() {
2197
- None
2198
- } else {
2199
- Some(self.id().get(store.0).instance_flags(callee_instance))
2200
- };
2201
-
2202
- // Queue the call as a "high priority" work item.
2203
- unsafe {
2204
- self.queue_call(
2205
- store.as_context_mut(),
2206
- guest_task,
2207
- callee,
2208
- param_count,
2209
- result_count,
2210
- instance_flags,
2211
- (flags & START_FLAG_ASYNC_CALLEE) != 0,
2212
- NonNull::new(callback).map(SendSyncPtr::new),
2213
- NonNull::new(post_return).map(SendSyncPtr::new),
2214
- )?;
2215
- }
2216
-
2217
- let state = self.concurrent_state_mut(store.0);
2218
-
2219
- // Use the caller's `GuestTask::sync_call_set` to register interest in
2220
- // the subtask...
2221
- let guest_waitable = Waitable::Guest(guest_task);
2222
- let old_set = guest_waitable.common(state)?.set;
2223
- let set = state.get_mut(caller)?.sync_call_set;
2224
- guest_waitable.join(state, Some(set))?;
2225
-
2226
- // ... and suspend this fiber temporarily while we wait for it to start.
2227
- //
2228
- // Note that we _could_ call the callee directly using the current fiber
2229
- // rather than suspend this one, but that would make reasoning about the
2230
- // event loop more complicated and is probably only worth doing if
2231
- // there's a measurable performance benefit. In addition, it would mean
2232
- // blocking the caller if the callee calls a blocking sync-lowered
2233
- // import, and as of this writing the spec says we must not do that.
2234
- //
2235
- // Alternatively, the fused adapter code could be modified to call the
2236
- // callee directly without calling a host-provided intrinsic at all (in
2237
- // which case it would need to do its own, inline backpressure checks,
2238
- // etc.). Again, we'd want to see a measurable performance benefit
2239
- // before committing to such an optimization. And again, we'd need to
2240
- // update the spec to allow that.
2241
- let (status, waitable) = loop {
2242
- self.suspend(store.0, SuspendReason::Waiting { set, task: caller })?;
2243
-
2244
- let state = self.concurrent_state_mut(store.0);
2245
-
2246
- let event = guest_waitable.take_event(state)?;
2247
- let Some(Event::Subtask { status }) = event else {
2248
- unreachable!();
2249
- };
2250
-
2251
- log::trace!("status {status:?} for {guest_task:?}");
2252
-
2253
- if status == Status::Returned {
2254
- // It returned, so we can stop waiting.
2255
- break (status, None);
2256
- } else if async_caller {
2257
- // It hasn't returned yet, but the caller is calling via an
2258
- // async-lowered import, so we generate a handle for the task
2259
- // waitable and return the status.
2260
- let handle = self.id().get_mut(store.0).guest_tables().0[caller_instance]
2261
- .subtask_insert_guest(guest_task.rep())?;
2262
- self.concurrent_state_mut(store.0)
2263
- .get_mut(guest_task)?
2264
- .common
2265
- .handle = Some(handle);
2266
- break (status, Some(handle));
2267
- } else {
2268
- // The callee hasn't returned yet, and the caller is calling via
2269
- // a sync-lowered import, so we loop and keep waiting until the
2270
- // callee returns.
2271
- }
2272
- };
2273
-
2274
- let state = self.concurrent_state_mut(store.0);
2275
-
2276
- guest_waitable.join(state, old_set)?;
2277
-
2278
- if let Some(storage) = storage {
2279
- // The caller used a sync-lowered import to call an async-lifted
2280
- // export, in which case the result, if any, has been stashed in
2281
- // `GuestTask::sync_result`.
2282
- let task = state.get_mut(guest_task)?;
2283
- if let Some(result) = task.sync_result.take() {
2284
- if let Some(result) = result {
2285
- storage[0] = MaybeUninit::new(result);
2286
- }
2287
-
2288
- if task.exited {
2289
- Waitable::Guest(guest_task).delete_from(state)?;
2290
- }
2291
- } else {
2292
- // This means the callee failed to call either `task.return` or
2293
- // `task.cancel` before exiting.
2294
- return Err(anyhow!(crate::Trap::NoAsyncResult));
2295
- }
2296
- }
2297
-
2298
- // Reset the current task to point to the caller as it resumes control.
2299
- state.guest_task = Some(caller);
2300
- log::trace!("popped current task {guest_task:?}; new task is {caller:?}");
2301
-
2302
- Ok(status.pack(waitable))
2303
- }
2304
-
2305
- /// Wrap the specified host function in a future which will call it, passing
2306
- /// it an `&Accessor<T>`.
2307
- ///
2308
- /// See the `Accessor` documentation for details.
2309
- pub(crate) fn wrap_call<T, F, R>(
2310
- self,
2311
- store: StoreContextMut<T>,
2312
- closure: F,
2313
- ) -> impl Future<Output = Result<R>> + 'static
2314
- where
2315
- T: 'static,
2316
- F: FnOnce(&Accessor<T>) -> Pin<Box<dyn Future<Output = Result<R>> + Send + '_>>
2317
- + Send
2318
- + Sync
2319
- + 'static,
2320
- R: Send + Sync + 'static,
2321
- {
2322
- let token = StoreToken::new(store);
2323
- async move {
2324
- let mut accessor = Accessor::new(token, Some(self));
2325
- closure(&mut accessor).await
2326
- }
2327
- }
2328
-
2329
- /// Poll the specified future once on behalf of a guest->host call using an
2330
- /// async-lowered import.
2331
- ///
2332
- /// If it returns `Ready`, return `Ok(None)`. Otherwise, if it returns
2333
- /// `Pending`, add it to the set of futures to be polled as part of this
2334
- /// instance's event loop until it completes, and then return
2335
- /// `Ok(Some(handle))` where `handle` is the waitable handle to return.
2336
- ///
2337
- /// Whether the future returns `Ready` immediately or later, the `lower`
2338
- /// function will be used to lower the result, if any, into the guest caller's
2339
- /// stack and linear memory unless the task has been cancelled.
2340
- pub(crate) fn first_poll<T: 'static, R: Send + 'static>(
2341
- self,
2342
- mut store: StoreContextMut<T>,
2343
- future: impl Future<Output = Result<R>> + Send + 'static,
2344
- caller_instance: RuntimeComponentInstanceIndex,
2345
- lower: impl FnOnce(StoreContextMut<T>, Instance, R) -> Result<()> + Send + 'static,
2346
- ) -> Result<Option<u32>> {
2347
- let token = StoreToken::new(store.as_context_mut());
2348
- let state = self.concurrent_state_mut(store.0);
2349
- let caller = state.guest_task.unwrap();
2350
-
2351
- // Create an abortable future which hooks calls to poll and manages call
2352
- // context state for the future.
2353
- let (join_handle, future) = JoinHandle::run(async move {
2354
- let mut future = pin!(future);
2355
- let mut call_context = None;
2356
- future::poll_fn(move |cx| {
2357
- // Push the call context for managing any resource borrows
2358
- // for the task.
2359
- tls::get(|store| {
2360
- if let Some(call_context) = call_context.take() {
2361
- token
2362
- .as_context_mut(store)
2363
- .0
2364
- .component_resource_state()
2365
- .0
2366
- .push(call_context);
2367
- }
2368
- });
2369
-
2370
- let result = future.as_mut().poll(cx);
2371
-
2372
- if result.is_pending() {
2373
- // Pop the call context for managing any resource
2374
- // borrows for the task.
2375
- tls::get(|store| {
2376
- call_context = Some(
2377
- token
2378
- .as_context_mut(store)
2379
- .0
2380
- .component_resource_state()
2381
- .0
2382
- .pop()
2383
- .unwrap(),
2384
- );
2385
- });
2386
- }
2387
- result
2388
- })
2389
- .await
2390
- });
2391
-
2392
- // We create a new host task even though it might complete immediately
2393
- // (in which case we won't need to pass a waitable back to the guest).
2394
- // If it does complete immediately, we'll remove it before we return.
2395
- let task = state.push(HostTask::new(caller_instance, Some(join_handle)))?;
2396
-
2397
- log::trace!("new host task child of {caller:?}: {task:?}");
2398
-
2399
- let mut future = Box::pin(future);
2400
-
2401
- // Finally, poll the future. We can use a dummy `Waker` here because
2402
- // we'll add the future to `ConcurrentState::futures` and poll it
2403
- // automatically from the event loop if it doesn't complete immediately
2404
- // here.
2405
- let poll = self.set_tls(store.0, || {
2406
- future
2407
- .as_mut()
2408
- .poll(&mut Context::from_waker(&Waker::noop()))
2409
- });
2410
-
2411
- Ok(match poll {
2412
- Poll::Ready(None) => unreachable!(),
2413
- Poll::Ready(Some(result)) => {
2414
- // It finished immediately; lower the result and delete the
2415
- // task.
2416
- lower(store.as_context_mut(), self, result?)?;
2417
- log::trace!("delete host task {task:?} (already ready)");
2418
- self.concurrent_state_mut(store.0).delete(task)?;
2419
- None
2420
- }
2421
- Poll::Pending => {
2422
- // It hasn't finished yet; add the future to
2423
- // `ConcurrentState::futures` so it will be polled by the event
2424
- // loop and allocate a waitable handle to return to the guest.
2425
-
2426
- // Wrap the future in a closure responsible for lowering the result into
2427
- // the guest's stack and memory, as well as notifying any waiters that
2428
- // the task returned.
2429
- let future = Box::pin(async move {
2430
- let result = match future.await {
2431
- Some(result) => result?,
2432
- // Task was cancelled; nothing left to do.
2433
- None => return Ok(()),
2434
- };
2435
- tls::get(move |store| {
2436
- // Here we schedule a task to run on a worker fiber to do
2437
- // the lowering since it may involve a call to the guest's
2438
- // realloc function. This is necessary because calling the
2439
- // guest while there are host embedder frames on the stack
2440
- // is unsound.
2441
- self.concurrent_state_mut(store).push_high_priority(
2442
- WorkItem::WorkerFunction(AlwaysMut::new(Box::new(move |store, _| {
2443
- lower(token.as_context_mut(store), self, result)?;
2444
- let state = self.concurrent_state_mut(store);
2445
- state.get_mut(task)?.join_handle.take();
2446
- Waitable::Host(task).set_event(
2447
- state,
2448
- Some(Event::Subtask {
2449
- status: Status::Returned,
2450
- }),
2451
- )
2452
- }))),
2453
- );
2454
- Ok(())
2455
- })
2456
- });
2457
-
2458
- self.concurrent_state_mut(store.0).push_future(future);
2459
- let handle = self.id().get_mut(store.0).guest_tables().0[caller_instance]
2460
- .subtask_insert_host(task.rep())?;
2461
- self.concurrent_state_mut(store.0)
2462
- .get_mut(task)?
2463
- .common
2464
- .handle = Some(handle);
2465
- log::trace!(
2466
- "assign {task:?} handle {handle} for {caller:?} instance {caller_instance:?}"
2467
- );
2468
- Some(handle)
2469
- }
2470
- })
2471
- }
2472
-
2473
- /// Poll the specified future until it completes on behalf of a guest->host
2474
- /// call using a sync-lowered import.
2475
- ///
2476
- /// This is similar to `Self::first_poll` except it's for sync-lowered
2477
- /// imports, meaning we don't need to handle cancellation and we can block
2478
- /// the caller until the task completes, at which point the caller can
2479
- /// handle lowering the result to the guest's stack and linear memory.
2480
- pub(crate) fn poll_and_block<R: Send + Sync + 'static>(
2481
- self,
2482
- store: &mut dyn VMStore,
2483
- future: impl Future<Output = Result<R>> + Send + 'static,
2484
- caller_instance: RuntimeComponentInstanceIndex,
2485
- ) -> Result<R> {
2486
- let state = self.concurrent_state_mut(store);
2487
-
2488
- // If there is no current guest task set, that means the host function
2489
- // was registered using e.g. `LinkerInstance::func_wrap`, in which case
2490
- // it should complete immediately.
2491
- let Some(caller) = state.guest_task else {
2492
- return match pin!(future).poll(&mut Context::from_waker(&Waker::noop())) {
2493
- Poll::Ready(result) => result,
2494
- Poll::Pending => {
2495
- unreachable!()
2496
- }
2497
- };
2498
- };
2499
-
2500
- // Save any existing result stashed in `GuestTask::result` so we can
2501
- // replace it with the new result.
2502
- let old_result = state
2503
- .get_mut(caller)
2504
- .with_context(|| format!("bad handle: {caller:?}"))?
2505
- .result
2506
- .take();
2507
-
2508
- // Add a temporary host task into the table so we can track its
2509
- // progress. Note that we'll never allocate a waitable handle for the
2510
- // guest since we're being called synchronously.
2511
- let task = state.push(HostTask::new(caller_instance, None))?;
2512
-
2513
- log::trace!("new host task child of {caller:?}: {task:?}");
2514
-
2515
- // Wrap the future in a closure which will take care of stashing the
2516
- // result in `GuestTask::result` and resuming this fiber when the host
2517
- // task completes.
2518
- let mut future = Box::pin(async move {
2519
- let result = future.await?;
2520
- tls::get(move |store| {
2521
- let state = self.concurrent_state_mut(store);
2522
- state.get_mut(caller)?.result = Some(Box::new(result) as _);
2523
-
2524
- Waitable::Host(task).set_event(
2525
- state,
2526
- Some(Event::Subtask {
2527
- status: Status::Returned,
2528
- }),
2529
- )?;
2530
-
2531
- Ok(())
2532
- })
2533
- }) as HostTaskFuture;
2534
-
2535
- // Finally, poll the future. We can use a dummy `Waker` here because
2536
- // we'll add the future to `ConcurrentState::futures` and poll it
2537
- // automatically from the event loop if it doesn't complete immediately
2538
- // here.
2539
- let poll = self.set_tls(store, || {
2540
- future
2541
- .as_mut()
2542
- .poll(&mut Context::from_waker(&Waker::noop()))
2543
- });
2544
-
2545
- match poll {
2546
- Poll::Ready(result) => {
2547
- // It completed immediately; check the result and delete the task.
2548
- result?;
2549
- log::trace!("delete host task {task:?} (already ready)");
2550
- self.concurrent_state_mut(store).delete(task)?;
2551
- }
2552
- Poll::Pending => {
2553
- // It did not complete immediately; add it to
2554
- // `ConcurrentState::futures` so it will be polled via the event
2555
- // loop; then use `GuestTask::sync_call_set` to wait for the
2556
- // task to complete, suspending the current fiber until it does
2557
- // so.
2558
- let state = self.concurrent_state_mut(store);
2559
- state.push_future(future);
2560
-
2561
- let set = state.get_mut(caller)?.sync_call_set;
2562
- Waitable::Host(task).join(state, Some(set))?;
2563
-
2564
- self.suspend(store, SuspendReason::Waiting { set, task: caller })?;
2565
- }
2566
- }
2567
-
2568
- // Retrieve and return the result.
2569
- Ok(*mem::replace(
2570
- &mut self.concurrent_state_mut(store).get_mut(caller)?.result,
2571
- old_result,
2572
- )
2573
- .unwrap()
2574
- .downcast()
2575
- .unwrap())
2576
- }
2577
-
2578
- /// Implements the `task.return` intrinsic, lifting the result for the
2579
- /// current guest task.
2580
- pub(crate) fn task_return(
2581
- self,
2582
- store: &mut dyn VMStore,
2583
- ty: TypeTupleIndex,
2584
- options: OptionsIndex,
2585
- storage: &[ValRaw],
2586
- ) -> Result<()> {
2587
- let state = self.concurrent_state_mut(store);
2588
- let CanonicalOptions {
2589
- string_encoding,
2590
- data_model,
2591
- ..
2592
- } = *state.options(options);
2593
- let guest_task = state.guest_task.unwrap();
2594
- let lift = state
2595
- .get_mut(guest_task)?
2596
- .lift_result
2597
- .take()
2598
- .ok_or_else(|| {
2599
- anyhow!("`task.return` or `task.cancel` called more than once for current task")
2600
- })?;
2601
- assert!(state.get_mut(guest_task)?.result.is_none());
2602
-
2603
- let invalid = ty != lift.ty
2604
- || string_encoding != lift.string_encoding
2605
- || match data_model {
2606
- CanonicalOptionsDataModel::LinearMemory(opts) => match opts.memory {
2607
- Some(memory) => {
2608
- let expected = lift.memory.map(|v| v.as_ptr()).unwrap_or(ptr::null_mut());
2609
- let actual = self.id().get(store).runtime_memory(memory);
2610
- expected != actual
2611
- }
2612
- // Memory not specified, meaning it didn't need to be
2613
- // specified per validation, so not invalid.
2614
- None => false,
2615
- },
2616
- // Always invalid as this isn't supported.
2617
- CanonicalOptionsDataModel::Gc { .. } => true,
2618
- };
2619
-
2620
- if invalid {
2621
- bail!("invalid `task.return` signature and/or options for current task");
2622
- }
2623
-
2624
- log::trace!("task.return for {guest_task:?}");
2625
-
2626
- let result = (lift.lift)(store, self, storage)?;
2627
-
2628
- self.task_complete(store, guest_task, result, Status::Returned, ValRaw::i32(0))
2629
- }
2630
-
2631
- /// Implements the `task.cancel` intrinsic.
2632
- pub(crate) fn task_cancel(
2633
- self,
2634
- store: &mut dyn VMStore,
2635
- _caller_instance: RuntimeComponentInstanceIndex,
2636
- ) -> Result<()> {
2637
- let state = self.concurrent_state_mut(store);
2638
- let guest_task = state.guest_task.unwrap();
2639
- let task = state.get_mut(guest_task)?;
2640
- if !task.cancel_sent {
2641
- bail!("`task.cancel` called by task which has not been cancelled")
2642
- }
2643
- _ = task.lift_result.take().ok_or_else(|| {
2644
- anyhow!("`task.return` or `task.cancel` called more than once for current task")
2645
- })?;
2646
-
2647
- assert!(task.result.is_none());
2648
-
2649
- log::trace!("task.cancel for {guest_task:?}");
2650
-
2651
- self.task_complete(
2652
- store,
2653
- guest_task,
2654
- Box::new(DummyResult),
2655
- Status::ReturnCancelled,
2656
- ValRaw::i32(0),
2657
- )
2658
- }
2659
-
2660
- /// Complete the specified guest task (i.e. indicate that it has either
2661
- /// returned a (possibly empty) result or cancelled itself).
2662
- ///
2663
- /// This will return any resource borrows and notify any current or future
2664
- /// waiters that the task has completed.
2665
- fn task_complete(
2666
- self,
2667
- store: &mut dyn VMStore,
2668
- guest_task: TableId<GuestTask>,
2669
- result: Box<dyn Any + Send + Sync>,
2670
- status: Status,
2671
- post_return_arg: ValRaw,
2672
- ) -> Result<()> {
2673
- if self
2674
- .concurrent_state_mut(store)
2675
- .get_mut(guest_task)?
2676
- .call_post_return_automatically()
2677
- {
2678
- let (calls, host_table, _, instance) = store
2679
- .store_opaque_mut()
2680
- .component_resource_state_with_instance(self);
2681
- ResourceTables {
2682
- calls,
2683
- host_table: Some(host_table),
2684
- guest: Some(instance.guest_tables()),
2685
- }
2686
- .exit_call()?;
2687
- } else {
2688
- // As of this writing, the only scenario where `call_post_return_automatically`
2689
- // would be false for a `GuestTask` is for host-to-guest calls using
2690
- // `[Typed]Func::call_async`, in which case the `function_index`
2691
- // should be a non-`None` value.
2692
- let function_index = self
2693
- .concurrent_state_mut(store)
2694
- .get_mut(guest_task)?
2695
- .function_index
2696
- .unwrap();
2697
-
2698
- self.id()
2699
- .get_mut(store)
2700
- .post_return_arg_set(function_index, post_return_arg);
2701
- }
2702
-
2703
- let state = self.concurrent_state_mut(store);
2704
- let task = state.get_mut(guest_task)?;
2705
-
2706
- if let Caller::Host { tx, .. } = &mut task.caller {
2707
- if let Some(tx) = tx.take() {
2708
- _ = tx.send(result);
2709
- }
2710
- } else {
2711
- task.result = Some(result);
2712
- Waitable::Guest(guest_task).set_event(state, Some(Event::Subtask { status }))?;
2713
- }
2714
-
2715
- Ok(())
2716
- }
2717
-
2718
- /// Implements the `waitable-set.wait` intrinsic.
2719
- pub(crate) fn waitable_set_wait(
2720
- self,
2721
- store: &mut dyn VMStore,
2722
- options: OptionsIndex,
2723
- set: u32,
2724
- payload: u32,
2725
- ) -> Result<u32> {
2726
- let opts = self.concurrent_state_mut(store).options(options);
2727
- let cancellable = opts.cancellable;
2728
- let caller_instance = opts.instance;
2729
- let rep =
2730
- self.id().get_mut(store).guest_tables().0[caller_instance].waitable_set_rep(set)?;
2731
-
2732
- self.waitable_check(
2733
- store,
2734
- cancellable,
2735
- WaitableCheck::Wait(WaitableCheckParams {
2736
- set: TableId::new(rep),
2737
- options,
2738
- payload,
2739
- }),
2740
- )
2741
- }
2742
-
2743
- /// Implements the `waitable-set.poll` intrinsic.
2744
- pub(crate) fn waitable_set_poll(
2745
- self,
2746
- store: &mut dyn VMStore,
2747
- options: OptionsIndex,
2748
- set: u32,
2749
- payload: u32,
2750
- ) -> Result<u32> {
2751
- let opts = self.concurrent_state_mut(store).options(options);
2752
- let cancellable = opts.cancellable;
2753
- let caller_instance = opts.instance;
2754
- let rep =
2755
- self.id().get_mut(store).guest_tables().0[caller_instance].waitable_set_rep(set)?;
2756
-
2757
- self.waitable_check(
2758
- store,
2759
- cancellable,
2760
- WaitableCheck::Poll(WaitableCheckParams {
2761
- set: TableId::new(rep),
2762
- options,
2763
- payload,
2764
- }),
2765
- )
2766
- }
2767
-
2768
- /// Implements the `thread.yield` intrinsic.
2769
- pub(crate) fn thread_yield(self, store: &mut dyn VMStore, cancellable: bool) -> Result<bool> {
2770
- self.waitable_check(store, cancellable, WaitableCheck::Yield)
2771
- .map(|_| {
2772
- if cancellable {
2773
- let state = self.concurrent_state_mut(store);
2774
- let task = state.guest_task.unwrap();
2775
- if let Some(event) = state.get_mut(task).unwrap().event.take() {
2776
- assert!(matches!(event, Event::Cancelled));
2777
- true
2778
- } else {
2779
- false
2780
- }
2781
- } else {
2782
- false
2783
- }
2784
- })
2785
- }
2786
-
2787
- /// Helper function for the `waitable-set.wait`, `waitable-set.poll`, and
2788
- /// `yield` intrinsics.
2789
- fn waitable_check(
2790
- self,
2791
- store: &mut dyn VMStore,
2792
- cancellable: bool,
2793
- check: WaitableCheck,
2794
- ) -> Result<u32> {
2795
- let guest_task = self.concurrent_state_mut(store).guest_task.unwrap();
2796
-
2797
- let (wait, set) = match &check {
2798
- WaitableCheck::Wait(params) => (true, Some(params.set)),
2799
- WaitableCheck::Poll(params) => (false, Some(params.set)),
2800
- WaitableCheck::Yield => (false, None),
2801
- };
2802
-
2803
- // First, suspend this fiber, allowing any other tasks to run.
2804
- self.suspend(store, SuspendReason::Yielding { task: guest_task })?;
2805
-
2806
- log::trace!("waitable check for {guest_task:?}; set {set:?}");
2807
-
2808
- let state = self.concurrent_state_mut(store);
2809
- let task = state.get_mut(guest_task)?;
2810
-
2811
- if wait && task.callback.is_some() {
2812
- bail!("cannot call `task.wait` from async-lifted export with callback");
2813
- }
2814
-
2815
- // If we're waiting, and there are no events immediately available,
2816
- // suspend the fiber until that changes.
2817
- if wait {
2818
- let set = set.unwrap();
2819
-
2820
- if (task.event.is_none()
2821
- || (matches!(task.event, Some(Event::Cancelled)) && !cancellable))
2822
- && state.get_mut(set)?.ready.is_empty()
2823
- {
2824
- if cancellable {
2825
- let old = state.get_mut(guest_task)?.wake_on_cancel.replace(set);
2826
- assert!(old.is_none());
2827
- }
2828
-
2829
- self.suspend(
2830
- store,
2831
- SuspendReason::Waiting {
2832
- set,
2833
- task: guest_task,
2834
- },
2835
- )?;
2836
- }
2837
- }
2838
-
2839
- log::trace!("waitable check for {guest_task:?}; set {set:?}, part two");
2840
-
2841
- let result = match check {
2842
- // Deliver any pending events to the guest and return.
2843
- WaitableCheck::Wait(params) | WaitableCheck::Poll(params) => {
2844
- let event = self.id().get_mut(store).get_event(
2845
- guest_task,
2846
- Some(params.set),
2847
- cancellable,
2848
- )?;
2849
-
2850
- let (ordinal, handle, result) = if wait {
2851
- let (event, waitable) = event.unwrap();
2852
- let handle = waitable.map(|(_, v)| v).unwrap_or(0);
2853
- let (ordinal, result) = event.parts();
2854
- (ordinal, handle, result)
2855
- } else {
2856
- if let Some((event, waitable)) = event {
2857
- let handle = waitable.map(|(_, v)| v).unwrap_or(0);
2858
- let (ordinal, result) = event.parts();
2859
- (ordinal, handle, result)
2860
- } else {
2861
- log::trace!(
2862
- "no events ready to deliver via waitable-set.poll to {guest_task:?}; set {:?}",
2863
- params.set
2864
- );
2865
- let (ordinal, result) = Event::None.parts();
2866
- (ordinal, 0, result)
2867
- }
2868
- };
2869
- let store = store.store_opaque_mut();
2870
- let options = Options::new_index(store, self, params.options);
2871
- let ptr = func::validate_inbounds::<(u32, u32)>(
2872
- options.memory_mut(store),
2873
- &ValRaw::u32(params.payload),
2874
- )?;
2875
- options.memory_mut(store)[ptr + 0..][..4].copy_from_slice(&handle.to_le_bytes());
2876
- options.memory_mut(store)[ptr + 4..][..4].copy_from_slice(&result.to_le_bytes());
2877
- Ok(ordinal)
2878
- }
2879
- WaitableCheck::Yield => Ok(0),
2880
- };
2881
-
2882
- result
2883
- }
2884
-
2885
- /// Implements the `subtask.cancel` intrinsic.
2886
- pub(crate) fn subtask_cancel(
2887
- self,
2888
- store: &mut dyn VMStore,
2889
- caller_instance: RuntimeComponentInstanceIndex,
2890
- async_: bool,
2891
- task_id: u32,
2892
- ) -> Result<u32> {
2893
- let (rep, is_host) =
2894
- self.id().get_mut(store).guest_tables().0[caller_instance].subtask_rep(task_id)?;
2895
- let (waitable, expected_caller_instance) = if is_host {
2896
- let id = TableId::<HostTask>::new(rep);
2897
- (
2898
- Waitable::Host(id),
2899
- self.concurrent_state_mut(store)
2900
- .get_mut(id)?
2901
- .caller_instance,
2902
- )
2903
- } else {
2904
- let id = TableId::<GuestTask>::new(rep);
2905
- if let Caller::Guest { instance, .. } =
2906
- &self.concurrent_state_mut(store).get_mut(id)?.caller
2907
- {
2908
- (Waitable::Guest(id), *instance)
2909
- } else {
2910
- unreachable!()
2911
- }
2912
- };
2913
- // Since waitables can neither be passed between instances nor forged,
2914
- // this should never fail unless there's a bug in Wasmtime, but we check
2915
- // here to be sure:
2916
- assert_eq!(expected_caller_instance, caller_instance);
2917
-
2918
- log::trace!("subtask_cancel {waitable:?} (handle {task_id})");
2919
-
2920
- let concurrent_state = self.concurrent_state_mut(store);
2921
- if let Waitable::Host(host_task) = waitable {
2922
- if let Some(handle) = concurrent_state.get_mut(host_task)?.join_handle.take() {
2923
- handle.abort();
2924
- return Ok(Status::ReturnCancelled as u32);
2925
- }
2926
- } else {
2927
- let caller = concurrent_state.guest_task.unwrap();
2928
- let guest_task = TableId::<GuestTask>::new(rep);
2929
- let task = concurrent_state.get_mut(guest_task)?;
2930
- if task.lower_params.is_some() {
2931
- task.lower_params = None;
2932
- task.lift_result = None;
2933
-
2934
- // Not yet started; cancel and remove from pending
2935
- let callee_instance = task.instance;
2936
-
2937
- let kind = concurrent_state
2938
- .instance_state(callee_instance)
2939
- .pending
2940
- .remove(&guest_task);
2941
-
2942
- if kind.is_none() {
2943
- bail!("`subtask.cancel` called after terminal status delivered");
2944
- }
2945
-
2946
- return Ok(Status::StartCancelled as u32);
2947
- } else if task.lift_result.is_some() {
2948
- // Started, but not yet returned or cancelled; send the
2949
- // `CANCELLED` event
2950
- task.cancel_sent = true;
2951
- // Note that this might overwrite an event that was set earlier
2952
- // (e.g. `Event::None` if the task is yielding, or
2953
- // `Event::Cancelled` if it was already cancelled), but that's
2954
- // okay -- this should supersede the previous state.
2955
- task.event = Some(Event::Cancelled);
2956
- if let Some(set) = task.wake_on_cancel.take() {
2957
- let item = match concurrent_state
2958
- .get_mut(set)?
2959
- .waiting
2960
- .remove(&guest_task)
2961
- .unwrap()
2962
- {
2963
- WaitMode::Fiber(fiber) => WorkItem::ResumeFiber(fiber),
2964
- WaitMode::Callback => WorkItem::GuestCall(GuestCall {
2965
- task: guest_task,
2966
- kind: GuestCallKind::DeliverEvent { set: None },
2967
- }),
2968
- };
2969
- concurrent_state.push_high_priority(item);
2970
-
2971
- self.suspend(store, SuspendReason::Yielding { task: caller })?;
2972
- }
2973
-
2974
- let concurrent_state = self.concurrent_state_mut(store);
2975
- let task = concurrent_state.get_mut(guest_task)?;
2976
- if task.lift_result.is_some() {
2977
- // Still not yet returned or cancelled; if `async_`, return
2978
- // `BLOCKED`; otherwise wait
2979
- if async_ {
2980
- return Ok(BLOCKED);
2981
- } else {
2982
- self.wait_for_event(store, Waitable::Guest(guest_task))?;
2983
- }
2984
- }
2985
- }
2986
- }
2987
-
2988
- let event = waitable.take_event(self.concurrent_state_mut(store))?;
2989
- if let Some(Event::Subtask {
2990
- status: status @ (Status::Returned | Status::ReturnCancelled),
2991
- }) = event
2992
- {
2993
- Ok(status as u32)
2994
- } else {
2995
- bail!("`subtask.cancel` called after terminal status delivered");
2996
- }
2997
- }
2998
-
2999
- fn wait_for_event(self, store: &mut dyn VMStore, waitable: Waitable) -> Result<()> {
3000
- let state = self.concurrent_state_mut(store);
3001
- let caller = state.guest_task.unwrap();
3002
- let old_set = waitable.common(state)?.set;
3003
- let set = state.get_mut(caller)?.sync_call_set;
3004
- waitable.join(state, Some(set))?;
3005
- self.suspend(store, SuspendReason::Waiting { set, task: caller })?;
3006
- let state = self.concurrent_state_mut(store);
3007
- waitable.join(state, old_set)
3008
- }
3009
-
3010
- /// Configures TLS state so `store` will be available via `tls::get` within
3011
- /// the closure `f` provided.
3012
- ///
3013
- /// This is used to ensure that `Future::poll`, which doesn't take a `store`
3014
- /// parameter, is able to get access to the `store` during future poll
3015
- /// methods.
3016
- fn set_tls<R>(self, store: &mut dyn VMStore, f: impl FnOnce() -> R) -> R {
3017
- struct Reset<'a>(&'a mut dyn VMStore, Option<ComponentInstanceId>);
3018
-
3019
- impl Drop for Reset<'_> {
3020
- fn drop(&mut self) {
3021
- self.0.concurrent_async_state_mut().current_instance = self.1;
3022
- }
3023
- }
3024
- let prev = mem::replace(
3025
- &mut store.concurrent_async_state_mut().current_instance,
3026
- Some(self.id().instance()),
3027
- );
3028
- let reset = Reset(store, prev);
3029
-
3030
- tls::set(reset.0, f)
3031
- }
3032
-
3033
- /// Convenience function to reduce boilerplate.
3034
- pub(crate) fn concurrent_state_mut<'a>(
3035
- &self,
3036
- store: &'a mut StoreOpaque,
3037
- ) -> &'a mut ConcurrentState {
3038
- self.id().get_mut(store).concurrent_state_mut()
3039
- }
3040
- }
3041
-
3042
- /// Trait representing component model ABI async intrinsics and fused adapter
3043
- /// helper functions.
3044
- ///
3045
- /// SAFETY (callers): Most of the methods in this trait accept raw pointers,
3046
- /// which must be valid for at least the duration of the call (and possibly for
3047
- /// as long as the relevant guest task exists, in the case of `*mut VMFuncRef`
3048
- /// pointers used for async calls).
3049
- pub trait VMComponentAsyncStore {
3050
- /// A helper function for fused adapter modules involving calls where the
3051
- /// one of the caller or callee is async.
3052
- ///
3053
- /// This helper is not used when the caller and callee both use the sync
3054
- /// ABI, only when at least one is async is this used.
3055
- unsafe fn prepare_call(
3056
- &mut self,
3057
- instance: Instance,
3058
- memory: *mut VMMemoryDefinition,
3059
- start: *mut VMFuncRef,
3060
- return_: *mut VMFuncRef,
3061
- caller_instance: RuntimeComponentInstanceIndex,
3062
- callee_instance: RuntimeComponentInstanceIndex,
3063
- task_return_type: TypeTupleIndex,
3064
- string_encoding: u8,
3065
- result_count: u32,
3066
- storage: *mut ValRaw,
3067
- storage_len: usize,
3068
- ) -> Result<()>;
3069
-
3070
- /// A helper function for fused adapter modules involving calls where the
3071
- /// caller is sync-lowered but the callee is async-lifted.
3072
- unsafe fn sync_start(
3073
- &mut self,
3074
- instance: Instance,
3075
- callback: *mut VMFuncRef,
3076
- callee: *mut VMFuncRef,
3077
- param_count: u32,
3078
- storage: *mut MaybeUninit<ValRaw>,
3079
- storage_len: usize,
3080
- ) -> Result<()>;
3081
-
3082
- /// A helper function for fused adapter modules involving calls where the
3083
- /// caller is async-lowered.
3084
- unsafe fn async_start(
3085
- &mut self,
3086
- instance: Instance,
3087
- callback: *mut VMFuncRef,
3088
- post_return: *mut VMFuncRef,
3089
- callee: *mut VMFuncRef,
3090
- param_count: u32,
3091
- result_count: u32,
3092
- flags: u32,
3093
- ) -> Result<u32>;
3094
-
3095
- /// The `future.write` intrinsic.
3096
- fn future_write(
3097
- &mut self,
3098
- instance: Instance,
3099
- ty: TypeFutureTableIndex,
3100
- options: OptionsIndex,
3101
- future: u32,
3102
- address: u32,
3103
- ) -> Result<u32>;
3104
-
3105
- /// The `future.read` intrinsic.
3106
- fn future_read(
3107
- &mut self,
3108
- instance: Instance,
3109
- ty: TypeFutureTableIndex,
3110
- options: OptionsIndex,
3111
- future: u32,
3112
- address: u32,
3113
- ) -> Result<u32>;
3114
-
3115
- /// The `future.drop-writable` intrinsic.
3116
- fn future_drop_writable(
3117
- &mut self,
3118
- instance: Instance,
3119
- ty: TypeFutureTableIndex,
3120
- writer: u32,
3121
- ) -> Result<()>;
3122
-
3123
- /// The `stream.write` intrinsic.
3124
- fn stream_write(
3125
- &mut self,
3126
- instance: Instance,
3127
- ty: TypeStreamTableIndex,
3128
- options: OptionsIndex,
3129
- stream: u32,
3130
- address: u32,
3131
- count: u32,
3132
- ) -> Result<u32>;
3133
-
3134
- /// The `stream.read` intrinsic.
3135
- fn stream_read(
3136
- &mut self,
3137
- instance: Instance,
3138
- ty: TypeStreamTableIndex,
3139
- options: OptionsIndex,
3140
- stream: u32,
3141
- address: u32,
3142
- count: u32,
3143
- ) -> Result<u32>;
3144
-
3145
- /// The "fast-path" implementation of the `stream.write` intrinsic for
3146
- /// "flat" (i.e. memcpy-able) payloads.
3147
- fn flat_stream_write(
3148
- &mut self,
3149
- instance: Instance,
3150
- ty: TypeStreamTableIndex,
3151
- options: OptionsIndex,
3152
- payload_size: u32,
3153
- payload_align: u32,
3154
- stream: u32,
3155
- address: u32,
3156
- count: u32,
3157
- ) -> Result<u32>;
3158
-
3159
- /// The "fast-path" implementation of the `stream.read` intrinsic for "flat"
3160
- /// (i.e. memcpy-able) payloads.
3161
- fn flat_stream_read(
3162
- &mut self,
3163
- instance: Instance,
3164
- ty: TypeStreamTableIndex,
3165
- options: OptionsIndex,
3166
- payload_size: u32,
3167
- payload_align: u32,
3168
- stream: u32,
3169
- address: u32,
3170
- count: u32,
3171
- ) -> Result<u32>;
3172
-
3173
- /// The `stream.drop-writable` intrinsic.
3174
- fn stream_drop_writable(
3175
- &mut self,
3176
- instance: Instance,
3177
- ty: TypeStreamTableIndex,
3178
- writer: u32,
3179
- ) -> Result<()>;
3180
-
3181
- /// The `error-context.debug-message` intrinsic.
3182
- fn error_context_debug_message(
3183
- &mut self,
3184
- instance: Instance,
3185
- ty: TypeComponentLocalErrorContextTableIndex,
3186
- options: OptionsIndex,
3187
- err_ctx_handle: u32,
3188
- debug_msg_address: u32,
3189
- ) -> Result<()>;
3190
- }
3191
-
3192
- /// SAFETY: See trait docs.
3193
- impl<T: 'static> VMComponentAsyncStore for StoreInner<T> {
3194
- unsafe fn prepare_call(
3195
- &mut self,
3196
- instance: Instance,
3197
- memory: *mut VMMemoryDefinition,
3198
- start: *mut VMFuncRef,
3199
- return_: *mut VMFuncRef,
3200
- caller_instance: RuntimeComponentInstanceIndex,
3201
- callee_instance: RuntimeComponentInstanceIndex,
3202
- task_return_type: TypeTupleIndex,
3203
- string_encoding: u8,
3204
- result_count_or_max_if_async: u32,
3205
- storage: *mut ValRaw,
3206
- storage_len: usize,
3207
- ) -> Result<()> {
3208
- // SAFETY: The `wasmtime_cranelift`-generated code that calls
3209
- // this method will have ensured that `storage` is a valid
3210
- // pointer containing at least `storage_len` items.
3211
- let params = unsafe { std::slice::from_raw_parts(storage, storage_len) }.to_vec();
3212
-
3213
- unsafe {
3214
- instance.prepare_call(
3215
- StoreContextMut(self),
3216
- start,
3217
- return_,
3218
- caller_instance,
3219
- callee_instance,
3220
- task_return_type,
3221
- memory,
3222
- string_encoding,
3223
- match result_count_or_max_if_async {
3224
- PREPARE_ASYNC_NO_RESULT => CallerInfo::Async {
3225
- params,
3226
- has_result: false,
3227
- },
3228
- PREPARE_ASYNC_WITH_RESULT => CallerInfo::Async {
3229
- params,
3230
- has_result: true,
3231
- },
3232
- result_count => CallerInfo::Sync {
3233
- params,
3234
- result_count,
3235
- },
3236
- },
3237
- )
3238
- }
3239
- }
3240
-
3241
- unsafe fn sync_start(
3242
- &mut self,
3243
- instance: Instance,
3244
- callback: *mut VMFuncRef,
3245
- callee: *mut VMFuncRef,
3246
- param_count: u32,
3247
- storage: *mut MaybeUninit<ValRaw>,
3248
- storage_len: usize,
3249
- ) -> Result<()> {
3250
- unsafe {
3251
- instance
3252
- .start_call(
3253
- StoreContextMut(self),
3254
- callback,
3255
- ptr::null_mut(),
3256
- callee,
3257
- param_count,
3258
- 1,
3259
- START_FLAG_ASYNC_CALLEE,
3260
- // SAFETY: The `wasmtime_cranelift`-generated code that calls
3261
- // this method will have ensured that `storage` is a valid
3262
- // pointer containing at least `storage_len` items.
3263
- Some(std::slice::from_raw_parts_mut(storage, storage_len)),
3264
- )
3265
- .map(drop)
3266
- }
3267
- }
3268
-
3269
- unsafe fn async_start(
3270
- &mut self,
3271
- instance: Instance,
3272
- callback: *mut VMFuncRef,
3273
- post_return: *mut VMFuncRef,
3274
- callee: *mut VMFuncRef,
3275
- param_count: u32,
3276
- result_count: u32,
3277
- flags: u32,
3278
- ) -> Result<u32> {
3279
- unsafe {
3280
- instance.start_call(
3281
- StoreContextMut(self),
3282
- callback,
3283
- post_return,
3284
- callee,
3285
- param_count,
3286
- result_count,
3287
- flags,
3288
- None,
3289
- )
3290
- }
3291
- }
3292
-
3293
- fn future_write(
3294
- &mut self,
3295
- instance: Instance,
3296
- ty: TypeFutureTableIndex,
3297
- options: OptionsIndex,
3298
- future: u32,
3299
- address: u32,
3300
- ) -> Result<u32> {
3301
- instance
3302
- .guest_write(
3303
- StoreContextMut(self),
3304
- TransmitIndex::Future(ty),
3305
- options,
3306
- None,
3307
- future,
3308
- address,
3309
- 1,
3310
- )
3311
- .map(|result| result.encode())
3312
- }
3313
-
3314
- fn future_read(
3315
- &mut self,
3316
- instance: Instance,
3317
- ty: TypeFutureTableIndex,
3318
- options: OptionsIndex,
3319
- future: u32,
3320
- address: u32,
3321
- ) -> Result<u32> {
3322
- instance
3323
- .guest_read(
3324
- StoreContextMut(self),
3325
- TransmitIndex::Future(ty),
3326
- options,
3327
- None,
3328
- future,
3329
- address,
3330
- 1,
3331
- )
3332
- .map(|result| result.encode())
3333
- }
3334
-
3335
- fn stream_write(
3336
- &mut self,
3337
- instance: Instance,
3338
- ty: TypeStreamTableIndex,
3339
- options: OptionsIndex,
3340
- stream: u32,
3341
- address: u32,
3342
- count: u32,
3343
- ) -> Result<u32> {
3344
- instance
3345
- .guest_write(
3346
- StoreContextMut(self),
3347
- TransmitIndex::Stream(ty),
3348
- options,
3349
- None,
3350
- stream,
3351
- address,
3352
- count,
3353
- )
3354
- .map(|result| result.encode())
3355
- }
3356
-
3357
- fn stream_read(
3358
- &mut self,
3359
- instance: Instance,
3360
- ty: TypeStreamTableIndex,
3361
- options: OptionsIndex,
3362
- stream: u32,
3363
- address: u32,
3364
- count: u32,
3365
- ) -> Result<u32> {
3366
- instance
3367
- .guest_read(
3368
- StoreContextMut(self),
3369
- TransmitIndex::Stream(ty),
3370
- options,
3371
- None,
3372
- stream,
3373
- address,
3374
- count,
3375
- )
3376
- .map(|result| result.encode())
3377
- }
3378
-
3379
- fn future_drop_writable(
3380
- &mut self,
3381
- instance: Instance,
3382
- ty: TypeFutureTableIndex,
3383
- writer: u32,
3384
- ) -> Result<()> {
3385
- instance.guest_drop_writable(StoreContextMut(self), TransmitIndex::Future(ty), writer)
3386
- }
3387
-
3388
- fn flat_stream_write(
3389
- &mut self,
3390
- instance: Instance,
3391
- ty: TypeStreamTableIndex,
3392
- options: OptionsIndex,
3393
- payload_size: u32,
3394
- payload_align: u32,
3395
- stream: u32,
3396
- address: u32,
3397
- count: u32,
3398
- ) -> Result<u32> {
3399
- instance
3400
- .guest_write(
3401
- StoreContextMut(self),
3402
- TransmitIndex::Stream(ty),
3403
- options,
3404
- Some(FlatAbi {
3405
- size: payload_size,
3406
- align: payload_align,
3407
- }),
3408
- stream,
3409
- address,
3410
- count,
3411
- )
3412
- .map(|result| result.encode())
3413
- }
3414
-
3415
- fn flat_stream_read(
3416
- &mut self,
3417
- instance: Instance,
3418
- ty: TypeStreamTableIndex,
3419
- options: OptionsIndex,
3420
- payload_size: u32,
3421
- payload_align: u32,
3422
- stream: u32,
3423
- address: u32,
3424
- count: u32,
3425
- ) -> Result<u32> {
3426
- instance
3427
- .guest_read(
3428
- StoreContextMut(self),
3429
- TransmitIndex::Stream(ty),
3430
- options,
3431
- Some(FlatAbi {
3432
- size: payload_size,
3433
- align: payload_align,
3434
- }),
3435
- stream,
3436
- address,
3437
- count,
3438
- )
3439
- .map(|result| result.encode())
3440
- }
3441
-
3442
- fn stream_drop_writable(
3443
- &mut self,
3444
- instance: Instance,
3445
- ty: TypeStreamTableIndex,
3446
- writer: u32,
3447
- ) -> Result<()> {
3448
- instance.guest_drop_writable(StoreContextMut(self), TransmitIndex::Stream(ty), writer)
3449
- }
3450
-
3451
- fn error_context_debug_message(
3452
- &mut self,
3453
- instance: Instance,
3454
- ty: TypeComponentLocalErrorContextTableIndex,
3455
- options: OptionsIndex,
3456
- err_ctx_handle: u32,
3457
- debug_msg_address: u32,
3458
- ) -> Result<()> {
3459
- instance.error_context_debug_message(
3460
- StoreContextMut(self),
3461
- ty,
3462
- options,
3463
- err_ctx_handle,
3464
- debug_msg_address,
3465
- )
3466
- }
3467
- }
3468
-
3469
- type HostTaskFuture = Pin<Box<dyn Future<Output = Result<()>> + Send + 'static>>;
3470
-
3471
- /// Represents the state of a pending host task.
3472
- struct HostTask {
3473
- common: WaitableCommon,
3474
- caller_instance: RuntimeComponentInstanceIndex,
3475
- join_handle: Option<JoinHandle>,
3476
- }
3477
-
3478
- impl HostTask {
3479
- fn new(
3480
- caller_instance: RuntimeComponentInstanceIndex,
3481
- join_handle: Option<JoinHandle>,
3482
- ) -> Self {
3483
- Self {
3484
- common: WaitableCommon::default(),
3485
- caller_instance,
3486
- join_handle,
3487
- }
3488
- }
3489
- }
3490
-
3491
- impl TableDebug for HostTask {
3492
- fn type_name() -> &'static str {
3493
- "HostTask"
3494
- }
3495
- }
3496
-
3497
- type CallbackFn = Box<
3498
- dyn Fn(&mut dyn VMStore, Instance, RuntimeComponentInstanceIndex, Event, u32) -> Result<u32>
3499
- + Send
3500
- + Sync
3501
- + 'static,
3502
- >;
3503
-
3504
- /// Represents the caller of a given guest task.
3505
- enum Caller {
3506
- /// The host called the guest task.
3507
- Host {
3508
- /// If present, may be used to deliver the result.
3509
- tx: Option<oneshot::Sender<LiftedResult>>,
3510
- /// Channel to notify once all subtasks spawned by this caller have
3511
- /// completed.
3512
- ///
3513
- /// Note that we'll never actually send anything to this channel;
3514
- /// dropping it when the refcount goes to zero is sufficient to notify
3515
- /// the receiver.
3516
- exit_tx: Arc<oneshot::Sender<()>>,
3517
- /// If true, remove the task from the concurrent state that owns it
3518
- /// automatically after it completes.
3519
- remove_task_automatically: bool,
3520
- /// If true, call `post-return` function (if any) automatically.
3521
- call_post_return_automatically: bool,
3522
- },
3523
- /// Another guest task called the guest task
3524
- Guest {
3525
- /// The id of the caller
3526
- task: TableId<GuestTask>,
3527
- /// The instance to use to enforce reentrance rules.
3528
- ///
3529
- /// Note that this might not be the same as the instance the caller task
3530
- /// started executing in given that one or more synchronous guest->guest
3531
- /// calls may have occurred involving multiple instances.
3532
- instance: RuntimeComponentInstanceIndex,
3533
- },
3534
- }
3535
-
3536
- /// Represents a closure and related canonical ABI parameters required to
3537
- /// validate a `task.return` call at runtime and lift the result.
3538
- struct LiftResult {
3539
- lift: RawLift,
3540
- ty: TypeTupleIndex,
3541
- memory: Option<SendSyncPtr<VMMemoryDefinition>>,
3542
- string_encoding: StringEncoding,
3543
- }
3544
-
3545
- /// Represents a pending guest task.
3546
- struct GuestTask {
3547
- /// See `WaitableCommon`
3548
- common: WaitableCommon,
3549
- /// Closure to lower the parameters passed to this task.
3550
- lower_params: Option<RawLower>,
3551
- /// See `LiftResult`
3552
- lift_result: Option<LiftResult>,
3553
- /// A place to stash the type-erased lifted result if it can't be delivered
3554
- /// immediately.
3555
- result: Option<LiftedResult>,
3556
- /// Closure to call the callback function for an async-lifted export, if
3557
- /// provided.
3558
- callback: Option<CallbackFn>,
3559
- /// See `Caller`
3560
- caller: Caller,
3561
- /// A place to stash the call context for managing resource borrows while
3562
- /// switching between guest tasks.
3563
- call_context: Option<CallContext>,
3564
- /// A place to stash the lowered result for a sync-to-async call until it
3565
- /// can be returned to the caller.
3566
- sync_result: Option<Option<ValRaw>>,
3567
- /// Whether or not the task has been cancelled (i.e. whether the task is
3568
- /// permitted to call `task.cancel`).
3569
- cancel_sent: bool,
3570
- /// Whether or not we've sent a `Status::Starting` event to any current or
3571
- /// future waiters for this waitable.
3572
- starting_sent: bool,
3573
- /// Context-local state used to implement the `context.{get,set}`
3574
- /// intrinsics.
3575
- context: [u32; 2],
3576
- /// Pending guest subtasks created by this task (directly or indirectly).
3577
- ///
3578
- /// This is used to re-parent subtasks which are still running when their
3579
- /// parent task is disposed.
3580
- subtasks: HashSet<TableId<GuestTask>>,
3581
- /// Scratch waitable set used to watch subtasks during synchronous calls.
3582
- sync_call_set: TableId<WaitableSet>,
3583
- /// The instance to which the exported function for this guest task belongs.
3584
- ///
3585
- /// Note that the task may do a sync->sync call via a fused adapter which
3586
- /// results in that task executing code in a different instance, and it may
3587
- /// call host functions and intrinsics from that other instance.
3588
- instance: RuntimeComponentInstanceIndex,
3589
- /// If present, a pending `Event::None` or `Event::Cancelled` to be
3590
- /// delivered to this task.
3591
- event: Option<Event>,
3592
- /// If present, indicates that the task is currently waiting on the
3593
- /// specified set but may be cancelled and woken immediately.
3594
- wake_on_cancel: Option<TableId<WaitableSet>>,
3595
- /// The `ExportIndex` of the guest function being called, if known.
3596
- function_index: Option<ExportIndex>,
3597
- /// Whether or not the task has exited.
3598
- exited: bool,
3599
- }
3600
-
3601
- impl GuestTask {
3602
- fn new(
3603
- state: &mut ConcurrentState,
3604
- lower_params: RawLower,
3605
- lift_result: LiftResult,
3606
- caller: Caller,
3607
- callback: Option<CallbackFn>,
3608
- component_instance: RuntimeComponentInstanceIndex,
3609
- ) -> Result<Self> {
3610
- let sync_call_set = state.push(WaitableSet::default())?;
3611
-
3612
- Ok(Self {
3613
- common: WaitableCommon::default(),
3614
- lower_params: Some(lower_params),
3615
- lift_result: Some(lift_result),
3616
- result: None,
3617
- callback,
3618
- caller,
3619
- call_context: Some(CallContext::default()),
3620
- sync_result: None,
3621
- cancel_sent: false,
3622
- starting_sent: false,
3623
- context: [0u32; 2],
3624
- subtasks: HashSet::new(),
3625
- sync_call_set,
3626
- instance: component_instance,
3627
- event: None,
3628
- wake_on_cancel: None,
3629
- function_index: None,
3630
- exited: false,
3631
- })
3632
- }
3633
-
3634
- /// Dispose of this guest task, reparenting any pending subtasks to the
3635
- /// caller.
3636
- fn dispose(self, state: &mut ConcurrentState, me: TableId<GuestTask>) -> Result<()> {
3637
- // If there are not-yet-delivered completion events for subtasks in
3638
- // `self.sync_call_set`, recursively dispose of those subtasks as well.
3639
- for waitable in mem::take(&mut state.get_mut(self.sync_call_set)?.ready) {
3640
- if let Some(Event::Subtask {
3641
- status: Status::Returned | Status::ReturnCancelled,
3642
- }) = waitable.common(state)?.event
3643
- {
3644
- waitable.delete_from(state)?;
3645
- }
3646
- }
3647
-
3648
- state.delete(self.sync_call_set)?;
3649
-
3650
- // Reparent any pending subtasks to the caller.
3651
- match &self.caller {
3652
- Caller::Guest {
3653
- task,
3654
- instance: runtime_instance,
3655
- } => {
3656
- let task_mut = state.get_mut(*task)?;
3657
- let present = task_mut.subtasks.remove(&me);
3658
- assert!(present);
3659
-
3660
- for subtask in &self.subtasks {
3661
- task_mut.subtasks.insert(*subtask);
3662
- }
3663
-
3664
- for subtask in &self.subtasks {
3665
- state.get_mut(*subtask)?.caller = Caller::Guest {
3666
- task: *task,
3667
- instance: *runtime_instance,
3668
- };
3669
- }
3670
- }
3671
- Caller::Host { exit_tx, .. } => {
3672
- for subtask in &self.subtasks {
3673
- state.get_mut(*subtask)?.caller = Caller::Host {
3674
- tx: None,
3675
- // Clone `exit_tx` to ensure that it is only dropped
3676
- // once all transitive subtasks of the host call have
3677
- // exited:
3678
- exit_tx: exit_tx.clone(),
3679
- remove_task_automatically: true,
3680
- call_post_return_automatically: true,
3681
- };
3682
- }
3683
- }
3684
- }
3685
-
3686
- Ok(())
3687
- }
3688
-
3689
- fn call_post_return_automatically(&self) -> bool {
3690
- matches!(
3691
- self.caller,
3692
- Caller::Guest { .. }
3693
- | Caller::Host {
3694
- call_post_return_automatically: true,
3695
- ..
3696
- }
3697
- )
3698
- }
3699
- }
3700
-
3701
- impl TableDebug for GuestTask {
3702
- fn type_name() -> &'static str {
3703
- "GuestTask"
3704
- }
3705
- }
3706
-
3707
- /// Represents state common to all kinds of waitables.
3708
- #[derive(Default)]
3709
- struct WaitableCommon {
3710
- /// The currently pending event for this waitable, if any.
3711
- event: Option<Event>,
3712
- /// The set to which this waitable belongs, if any.
3713
- set: Option<TableId<WaitableSet>>,
3714
- /// The handle with which the guest refers to this waitable, if any.
3715
- handle: Option<u32>,
3716
- }
3717
-
3718
- /// Represents a Component Model Async `waitable`.
3719
- #[derive(Copy, Clone, Ord, PartialOrd, Eq, PartialEq)]
3720
- enum Waitable {
3721
- /// A host task
3722
- Host(TableId<HostTask>),
3723
- /// A guest task
3724
- Guest(TableId<GuestTask>),
3725
- /// The read or write end of a stream or future
3726
- Transmit(TableId<TransmitHandle>),
3727
- }
3728
-
3729
- impl Waitable {
3730
- /// Retrieve the `Waitable` corresponding to the specified guest-visible
3731
- /// handle.
3732
- fn from_instance(
3733
- state: Pin<&mut ComponentInstance>,
3734
- caller_instance: RuntimeComponentInstanceIndex,
3735
- waitable: u32,
3736
- ) -> Result<Self> {
3737
- use crate::runtime::vm::component::Waitable;
3738
-
3739
- let (waitable, kind) = state.guest_tables().0[caller_instance].waitable_rep(waitable)?;
3740
-
3741
- Ok(match kind {
3742
- Waitable::Subtask { is_host: true } => Self::Host(TableId::new(waitable)),
3743
- Waitable::Subtask { is_host: false } => Self::Guest(TableId::new(waitable)),
3744
- Waitable::Stream | Waitable::Future => Self::Transmit(TableId::new(waitable)),
3745
- })
3746
- }
3747
-
3748
- /// Retrieve the host-visible identifier for this `Waitable`.
3749
- fn rep(&self) -> u32 {
3750
- match self {
3751
- Self::Host(id) => id.rep(),
3752
- Self::Guest(id) => id.rep(),
3753
- Self::Transmit(id) => id.rep(),
3754
- }
3755
- }
3756
-
3757
- /// Move this `Waitable` to the specified set (when `set` is `Some(_)`) or
3758
- /// remove it from any set it may currently belong to (when `set` is
3759
- /// `None`).
3760
- fn join(&self, state: &mut ConcurrentState, set: Option<TableId<WaitableSet>>) -> Result<()> {
3761
- log::trace!("waitable {self:?} join set {set:?}",);
3762
-
3763
- let old = mem::replace(&mut self.common(state)?.set, set);
3764
-
3765
- if let Some(old) = old {
3766
- match *self {
3767
- Waitable::Host(id) => state.remove_child(id, old),
3768
- Waitable::Guest(id) => state.remove_child(id, old),
3769
- Waitable::Transmit(id) => state.remove_child(id, old),
3770
- }?;
3771
-
3772
- state.get_mut(old)?.ready.remove(self);
3773
- }
3774
-
3775
- if let Some(set) = set {
3776
- match *self {
3777
- Waitable::Host(id) => state.add_child(id, set),
3778
- Waitable::Guest(id) => state.add_child(id, set),
3779
- Waitable::Transmit(id) => state.add_child(id, set),
3780
- }?;
3781
-
3782
- if self.common(state)?.event.is_some() {
3783
- self.mark_ready(state)?;
3784
- }
3785
- }
3786
-
3787
- Ok(())
3788
- }
3789
-
3790
- /// Retrieve mutable access to the `WaitableCommon` for this `Waitable`.
3791
- fn common<'a>(&self, state: &'a mut ConcurrentState) -> Result<&'a mut WaitableCommon> {
3792
- Ok(match self {
3793
- Self::Host(id) => &mut state.get_mut(*id)?.common,
3794
- Self::Guest(id) => &mut state.get_mut(*id)?.common,
3795
- Self::Transmit(id) => &mut state.get_mut(*id)?.common,
3796
- })
3797
- }
3798
-
3799
- /// Set or clear the pending event for this waitable and either deliver it
3800
- /// to the first waiter, if any, or mark it as ready to be delivered to the
3801
- /// next waiter that arrives.
3802
- fn set_event(&self, state: &mut ConcurrentState, event: Option<Event>) -> Result<()> {
3803
- log::trace!("set event for {self:?}: {event:?}");
3804
- self.common(state)?.event = event;
3805
- self.mark_ready(state)
3806
- }
3807
-
3808
- /// Take the pending event from this waitable, leaving `None` in its place.
3809
- fn take_event(&self, state: &mut ConcurrentState) -> Result<Option<Event>> {
3810
- let common = self.common(state)?;
3811
- let event = common.event.take();
3812
- if let Some(set) = self.common(state)?.set {
3813
- state.get_mut(set)?.ready.remove(self);
3814
- }
3815
- Ok(event)
3816
- }
3817
-
3818
- /// Deliver the current event for this waitable to the first waiter, if any,
3819
- /// or else mark it as ready to be delivered to the next waiter that
3820
- /// arrives.
3821
- fn mark_ready(&self, state: &mut ConcurrentState) -> Result<()> {
3822
- if let Some(set) = self.common(state)?.set {
3823
- state.get_mut(set)?.ready.insert(*self);
3824
- if let Some((task, mode)) = state.get_mut(set)?.waiting.pop_first() {
3825
- let wake_on_cancel = state.get_mut(task)?.wake_on_cancel.take();
3826
- assert!(wake_on_cancel.is_none() || wake_on_cancel == Some(set));
3827
-
3828
- let item = match mode {
3829
- WaitMode::Fiber(fiber) => WorkItem::ResumeFiber(fiber),
3830
- WaitMode::Callback => WorkItem::GuestCall(GuestCall {
3831
- task,
3832
- kind: GuestCallKind::DeliverEvent { set: Some(set) },
3833
- }),
3834
- };
3835
- state.push_high_priority(item);
3836
- }
3837
- }
3838
- Ok(())
3839
- }
3840
-
3841
- /// Handle the imminent delivery of the specified event, e.g. by updating
3842
- /// the state of the stream or future.
3843
- fn on_delivery(&self, instance: Pin<&mut ComponentInstance>, event: Event) {
3844
- match event {
3845
- Event::FutureRead {
3846
- pending: Some((ty, handle)),
3847
- ..
3848
- }
3849
- | Event::FutureWrite {
3850
- pending: Some((ty, handle)),
3851
- ..
3852
- } => {
3853
- let runtime_instance = instance.component().types()[ty].instance;
3854
- let (rep, state) = instance.guest_tables().0[runtime_instance]
3855
- .future_rep(ty, handle)
3856
- .unwrap();
3857
- assert_eq!(rep, self.rep());
3858
- assert_eq!(*state, TransmitLocalState::Busy);
3859
- *state = match event {
3860
- Event::FutureRead { .. } => TransmitLocalState::Read { done: false },
3861
- Event::FutureWrite { .. } => TransmitLocalState::Write { done: false },
3862
- _ => unreachable!(),
3863
- };
3864
- }
3865
- Event::StreamRead {
3866
- pending: Some((ty, handle)),
3867
- code,
3868
- }
3869
- | Event::StreamWrite {
3870
- pending: Some((ty, handle)),
3871
- code,
3872
- } => {
3873
- let runtime_instance = instance.component().types()[ty].instance;
3874
- let (rep, state) = instance.guest_tables().0[runtime_instance]
3875
- .stream_rep(ty, handle)
3876
- .unwrap();
3877
- assert_eq!(rep, self.rep());
3878
- assert_eq!(*state, TransmitLocalState::Busy);
3879
- let done = matches!(code, ReturnCode::Dropped(_));
3880
- *state = match event {
3881
- Event::StreamRead { .. } => TransmitLocalState::Read { done },
3882
- Event::StreamWrite { .. } => TransmitLocalState::Write { done },
3883
- _ => unreachable!(),
3884
- };
3885
- }
3886
- _ => {}
3887
- }
3888
- }
3889
-
3890
- /// Remove this waitable from the instance's rep table.
3891
- fn delete_from(&self, state: &mut ConcurrentState) -> Result<()> {
3892
- match self {
3893
- Self::Host(task) => {
3894
- log::trace!("delete host task {task:?}");
3895
- state.delete(*task)?;
3896
- }
3897
- Self::Guest(task) => {
3898
- log::trace!("delete guest task {task:?}");
3899
- state.delete(*task)?.dispose(state, *task)?;
3900
- }
3901
- Self::Transmit(task) => {
3902
- state.delete(*task)?;
3903
- }
3904
- }
3905
-
3906
- Ok(())
3907
- }
3908
- }
3909
-
3910
- impl fmt::Debug for Waitable {
3911
- fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
3912
- match self {
3913
- Self::Host(id) => write!(f, "{id:?}"),
3914
- Self::Guest(id) => write!(f, "{id:?}"),
3915
- Self::Transmit(id) => write!(f, "{id:?}"),
3916
- }
3917
- }
3918
- }
3919
-
3920
- /// Represents a Component Model Async `waitable-set`.
3921
- #[derive(Default)]
3922
- struct WaitableSet {
3923
- /// Which waitables in this set have pending events, if any.
3924
- ready: BTreeSet<Waitable>,
3925
- /// Which guest tasks are currently waiting on this set, if any.
3926
- waiting: BTreeMap<TableId<GuestTask>, WaitMode>,
3927
- }
3928
-
3929
- impl TableDebug for WaitableSet {
3930
- fn type_name() -> &'static str {
3931
- "WaitableSet"
3932
- }
3933
- }
3934
-
3935
- /// Type-erased closure to lower the parameters for a guest task.
3936
- type RawLower = Box<
3937
- dyn FnOnce(&mut dyn VMStore, Instance, &mut [MaybeUninit<ValRaw>]) -> Result<()> + Send + Sync,
3938
- >;
3939
-
3940
- /// Type-erased closure to lift the result for a guest task.
3941
- type RawLift = Box<
3942
- dyn FnOnce(&mut dyn VMStore, Instance, &[ValRaw]) -> Result<Box<dyn Any + Send + Sync>>
3943
- + Send
3944
- + Sync,
3945
- >;
3946
-
3947
- /// Type erased result of a guest task which may be downcast to the expected
3948
- /// type by a host caller (or simply ignored in the case of a guest caller; see
3949
- /// `DummyResult`).
3950
- type LiftedResult = Box<dyn Any + Send + Sync>;
3951
-
3952
- /// Used to return a result from a `LiftFn` when the actual result has already
3953
- /// been lowered to a guest task's stack and linear memory.
3954
- struct DummyResult;
3955
-
3956
- /// Represents the state of a currently executing fiber which has been resumed
3957
- /// via `self::poll_fn`.
3958
- pub(crate) struct AsyncState {
3959
- /// The current instance being polled, if any, which is used to perform
3960
- /// checks to ensure that futures are always polled within the correct
3961
- /// instance.
3962
- current_instance: Option<ComponentInstanceId>,
3963
- }
3964
-
3965
- impl Default for AsyncState {
3966
- fn default() -> Self {
3967
- Self {
3968
- current_instance: None,
3969
- }
3970
- }
3971
- }
3972
-
3973
- /// Represents the Component Model Async state of a (sub-)component instance.
3974
- #[derive(Default)]
3975
- struct InstanceState {
3976
- /// Whether backpressure is set for this instance (enabled if >0)
3977
- backpressure: u16,
3978
- /// Whether this instance can be entered
3979
- do_not_enter: bool,
3980
- /// Pending calls for this instance which require `Self::backpressure` to be
3981
- /// `true` and/or `Self::do_not_enter` to be false before they can proceed.
3982
- pending: BTreeMap<TableId<GuestTask>, GuestCallKind>,
3983
- }
3984
-
3985
- /// Represents the Component Model Async state of a top-level component instance
3986
- /// (i.e. a `super::ComponentInstance`).
3987
- pub struct ConcurrentState {
3988
- /// The currently running guest task, if any.
3989
- guest_task: Option<TableId<GuestTask>>,
3990
- /// The set of pending host and background tasks, if any.
3991
- ///
3992
- /// See `ComponentInstance::poll_until` for where we temporarily take this
3993
- /// out, poll it, then put it back to avoid any mutable aliasing hazards.
3994
- futures: AlwaysMut<Option<FuturesUnordered<HostTaskFuture>>>,
3995
- /// The table of waitables, waitable sets, etc.
3996
- table: AlwaysMut<ResourceTable>,
3997
- /// Per (sub-)component instance states.
3998
- ///
3999
- /// See `InstanceState` for details and note that this map is lazily
4000
- /// populated as needed.
4001
- // TODO: this can and should be a `PrimaryMap`
4002
- instance_states: HashMap<RuntimeComponentInstanceIndex, InstanceState>,
4003
- /// The "high priority" work queue for this instance's event loop.
4004
- high_priority: Vec<WorkItem>,
4005
- /// The "high priority" work queue for this instance's event loop.
4006
- low_priority: Vec<WorkItem>,
4007
- /// A place to stash the reason a fiber is suspending so that the code which
4008
- /// resumed it will know under what conditions the fiber should be resumed
4009
- /// again.
4010
- suspend_reason: Option<SuspendReason>,
4011
- /// A cached fiber which is waiting for work to do.
4012
- ///
4013
- /// This helps us avoid creating a new fiber for each `GuestCall` work item.
4014
- worker: Option<StoreFiber<'static>>,
4015
- /// A place to stash the work item for which we're resuming a worker fiber.
4016
- worker_item: Option<WorkerItem>,
4017
-
4018
- /// Reference counts for all component error contexts
4019
- ///
4020
- /// NOTE: it is possible the global ref count to be *greater* than the sum of
4021
- /// (sub)component ref counts as tracked by `error_context_tables`, for
4022
- /// example when the host holds one or more references to error contexts.
4023
- ///
4024
- /// The key of this primary map is often referred to as the "rep" (i.e. host-side
4025
- /// component-wide representation) of the index into concurrent state for a given
4026
- /// stored `ErrorContext`.
4027
- ///
4028
- /// Stated another way, `TypeComponentGlobalErrorContextTableIndex` is essentially the same
4029
- /// as a `TableId<ErrorContextState>`.
4030
- global_error_context_ref_counts:
4031
- BTreeMap<TypeComponentGlobalErrorContextTableIndex, GlobalErrorContextRefCount>,
4032
-
4033
- /// Mirror of type information in `ComponentInstance`, placed here for
4034
- /// convenience at the cost of an extra `Arc` clone.
4035
- component: Component,
4036
- }
4037
-
4038
- impl ConcurrentState {
4039
- pub(crate) fn new(component: &Component) -> Self {
4040
- Self {
4041
- guest_task: None,
4042
- table: AlwaysMut::new(ResourceTable::new()),
4043
- futures: AlwaysMut::new(Some(FuturesUnordered::new())),
4044
- instance_states: HashMap::new(),
4045
- high_priority: Vec::new(),
4046
- low_priority: Vec::new(),
4047
- suspend_reason: None,
4048
- worker: None,
4049
- worker_item: None,
4050
- global_error_context_ref_counts: BTreeMap::new(),
4051
- component: component.clone(),
4052
- }
4053
- }
4054
-
4055
- /// Take ownership of any fibers and futures owned by this object.
4056
- ///
4057
- /// This should be used when disposing of the `Store` containing this object
4058
- /// in order to gracefully resolve any and all fibers using
4059
- /// `StoreFiber::dispose`. This is necessary to avoid possible
4060
- /// use-after-free bugs due to fibers which may still have access to the
4061
- /// `Store`.
4062
- ///
4063
- /// Additionally, the futures collected with this function should be dropped
4064
- /// within a `tls::set` call, which will ensure than any futures closing
4065
- /// over an `&Accessor` will have access to the store when dropped, allowing
4066
- /// e.g. `WithAccessor[AndValue]` instances to be disposed of without
4067
- /// panicking.
4068
- ///
4069
- /// Note that this will leave the object in an inconsistent and unusable
4070
- /// state, so it should only be used just prior to dropping it.
4071
- pub(crate) fn take_fibers_and_futures(
4072
- &mut self,
4073
- fibers: &mut Vec<StoreFiber<'static>>,
4074
- futures: &mut Vec<FuturesUnordered<HostTaskFuture>>,
4075
- ) {
4076
- for entry in self.table.get_mut().iter_mut() {
4077
- if let Some(set) = entry.downcast_mut::<WaitableSet>() {
4078
- for mode in mem::take(&mut set.waiting).into_values() {
4079
- if let WaitMode::Fiber(fiber) = mode {
4080
- fibers.push(fiber);
4081
- }
4082
- }
4083
- }
4084
- }
4085
-
4086
- if let Some(fiber) = self.worker.take() {
4087
- fibers.push(fiber);
4088
- }
4089
-
4090
- let mut take_items = |list| {
4091
- for item in mem::take(list) {
4092
- match item {
4093
- WorkItem::ResumeFiber(fiber) => {
4094
- fibers.push(fiber);
4095
- }
4096
- WorkItem::PushFuture(future) => {
4097
- self.futures
4098
- .get_mut()
4099
- .as_mut()
4100
- .unwrap()
4101
- .push(future.into_inner());
4102
- }
4103
- _ => {}
4104
- }
4105
- }
4106
- };
4107
-
4108
- take_items(&mut self.high_priority);
4109
- take_items(&mut self.low_priority);
4110
-
4111
- if let Some(them) = self.futures.get_mut().take() {
4112
- futures.push(them);
4113
- }
4114
- }
4115
-
4116
- fn instance_state(&mut self, instance: RuntimeComponentInstanceIndex) -> &mut InstanceState {
4117
- self.instance_states.entry(instance).or_default()
4118
- }
4119
-
4120
- fn push<V: Send + Sync + 'static>(
4121
- &mut self,
4122
- value: V,
4123
- ) -> Result<TableId<V>, ResourceTableError> {
4124
- self.table.get_mut().push(value).map(TableId::from)
4125
- }
4126
-
4127
- fn get_mut<V: 'static>(&mut self, id: TableId<V>) -> Result<&mut V, ResourceTableError> {
4128
- self.table.get_mut().get_mut(&Resource::from(id))
4129
- }
4130
-
4131
- pub fn add_child<T: 'static, U: 'static>(
4132
- &mut self,
4133
- child: TableId<T>,
4134
- parent: TableId<U>,
4135
- ) -> Result<(), ResourceTableError> {
4136
- self.table
4137
- .get_mut()
4138
- .add_child(Resource::from(child), Resource::from(parent))
4139
- }
4140
-
4141
- pub fn remove_child<T: 'static, U: 'static>(
4142
- &mut self,
4143
- child: TableId<T>,
4144
- parent: TableId<U>,
4145
- ) -> Result<(), ResourceTableError> {
4146
- self.table
4147
- .get_mut()
4148
- .remove_child(Resource::from(child), Resource::from(parent))
4149
- }
4150
-
4151
- fn delete<V: 'static>(&mut self, id: TableId<V>) -> Result<V, ResourceTableError> {
4152
- self.table.get_mut().delete(Resource::from(id))
4153
- }
4154
-
4155
- fn push_future(&mut self, future: HostTaskFuture) {
4156
- // Note that we can't directly push to `ConcurrentState::futures` here
4157
- // since this may be called from a future that's being polled inside
4158
- // `Self::poll_until`, which temporarily removes the `FuturesUnordered`
4159
- // so it has exclusive access while polling it. Therefore, we push a
4160
- // work item to the "high priority" queue, which will actually push to
4161
- // `ConcurrentState::futures` later.
4162
- self.push_high_priority(WorkItem::PushFuture(AlwaysMut::new(future)));
4163
- }
4164
-
4165
- fn push_high_priority(&mut self, item: WorkItem) {
4166
- log::trace!("push high priority: {item:?}");
4167
- self.high_priority.push(item);
4168
- }
4169
-
4170
- fn push_low_priority(&mut self, item: WorkItem) {
4171
- log::trace!("push low priority: {item:?}");
4172
- self.low_priority.push(item);
4173
- }
4174
-
4175
- /// Determine whether the instance associated with the specified guest task
4176
- /// may be entered (i.e. is not already on the async call stack).
4177
- ///
4178
- /// This is an additional check on top of the "may_enter" instance flag;
4179
- /// it's needed because async-lifted exports with callback functions must
4180
- /// not call their own instances directly or indirectly, and due to the
4181
- /// "stackless" nature of callback-enabled guest tasks this may happen even
4182
- /// if there are no activation records on the stack (i.e. the "may_enter"
4183
- /// field is `true`) for that instance.
4184
- fn may_enter(&mut self, mut guest_task: TableId<GuestTask>) -> bool {
4185
- let guest_instance = self.get_mut(guest_task).unwrap().instance;
4186
-
4187
- // Walk the task tree back to the root, looking for potential
4188
- // reentrance.
4189
- //
4190
- // TODO: This could be optimized by maintaining a per-`GuestTask` bitset
4191
- // such that each bit represents and instance which has been entered by
4192
- // that task or an ancestor of that task, in which case this would be a
4193
- // constant time check.
4194
- loop {
4195
- match &self.get_mut(guest_task).unwrap().caller {
4196
- Caller::Host { .. } => break true,
4197
- Caller::Guest { task, instance } => {
4198
- if *instance == guest_instance {
4199
- break false;
4200
- } else {
4201
- guest_task = *task;
4202
- }
4203
- }
4204
- }
4205
- }
4206
- }
4207
-
4208
- /// Record that we're about to enter a (sub-)component instance which does
4209
- /// not support more than one concurrent, stackful activation, meaning it
4210
- /// cannot be entered again until the next call returns.
4211
- fn enter_instance(&mut self, instance: RuntimeComponentInstanceIndex) {
4212
- self.instance_state(instance).do_not_enter = true;
4213
- }
4214
-
4215
- /// Record that we've exited a (sub-)component instance previously entered
4216
- /// with `Self::enter_instance` and then calls `Self::partition_pending`.
4217
- /// See the documentation for the latter for details.
4218
- fn exit_instance(&mut self, instance: RuntimeComponentInstanceIndex) -> Result<()> {
4219
- self.instance_state(instance).do_not_enter = false;
4220
- self.partition_pending(instance)
4221
- }
4222
-
4223
- /// Iterate over `InstanceState::pending`, moving any ready items into the
4224
- /// "high priority" work item queue.
4225
- ///
4226
- /// See `GuestCall::is_ready` for details.
4227
- fn partition_pending(&mut self, instance: RuntimeComponentInstanceIndex) -> Result<()> {
4228
- for (task, kind) in mem::take(&mut self.instance_state(instance).pending).into_iter() {
4229
- let call = GuestCall { task, kind };
4230
- if call.is_ready(self)? {
4231
- self.push_high_priority(WorkItem::GuestCall(call));
4232
- } else {
4233
- self.instance_state(instance)
4234
- .pending
4235
- .insert(call.task, call.kind);
4236
- }
4237
- }
4238
-
4239
- Ok(())
4240
- }
4241
-
4242
- /// Implements the `backpressure.{set,inc,dec}` intrinsics.
4243
- pub(crate) fn backpressure_modify(
4244
- &mut self,
4245
- caller_instance: RuntimeComponentInstanceIndex,
4246
- modify: impl FnOnce(u16) -> Option<u16>,
4247
- ) -> Result<()> {
4248
- let state = self.instance_state(caller_instance);
4249
- let old = state.backpressure;
4250
- let new = modify(old).ok_or_else(|| anyhow!("backpressure counter overflow"))?;
4251
- state.backpressure = new;
4252
-
4253
- if old > 0 && new == 0 {
4254
- // Backpressure was previously enabled and is now disabled; move any
4255
- // newly-eligible guest calls to the "high priority" queue.
4256
- self.partition_pending(caller_instance)?;
4257
- }
4258
-
4259
- Ok(())
4260
- }
4261
-
4262
- /// Implements the `context.get` intrinsic.
4263
- pub(crate) fn context_get(&mut self, slot: u32) -> Result<u32> {
4264
- let task = self.guest_task.unwrap();
4265
- let val = self.get_mut(task)?.context[usize::try_from(slot).unwrap()];
4266
- log::trace!("context_get {task:?} slot {slot} val {val:#x}");
4267
- Ok(val)
4268
- }
4269
-
4270
- /// Implements the `context.set` intrinsic.
4271
- pub(crate) fn context_set(&mut self, slot: u32, val: u32) -> Result<()> {
4272
- let task = self.guest_task.unwrap();
4273
- log::trace!("context_set {task:?} slot {slot} val {val:#x}");
4274
- self.get_mut(task)?.context[usize::try_from(slot).unwrap()] = val;
4275
- Ok(())
4276
- }
4277
-
4278
- fn options(&self, options: OptionsIndex) -> &CanonicalOptions {
4279
- &self.component.env_component().options[options]
4280
- }
4281
- }
4282
-
4283
- /// Provide a type hint to compiler about the shape of a parameter lower
4284
- /// closure.
4285
- fn for_any_lower<
4286
- F: FnOnce(&mut dyn VMStore, Instance, &mut [MaybeUninit<ValRaw>]) -> Result<()> + Send + Sync,
4287
- >(
4288
- fun: F,
4289
- ) -> F {
4290
- fun
4291
- }
4292
-
4293
- /// Provide a type hint to compiler about the shape of a result lift closure.
4294
- fn for_any_lift<
4295
- F: FnOnce(&mut dyn VMStore, Instance, &[ValRaw]) -> Result<Box<dyn Any + Send + Sync>>
4296
- + Send
4297
- + Sync,
4298
- >(
4299
- fun: F,
4300
- ) -> F {
4301
- fun
4302
- }
4303
-
4304
- /// Wrap the specified future in a `poll_fn` which asserts that the future is
4305
- /// only polled from the event loop of the specified `Instance`.
4306
- ///
4307
- /// See `Instance::run_concurrent` for details.
4308
- fn checked<F: Future + Send + 'static>(
4309
- instance: Instance,
4310
- fut: F,
4311
- ) -> impl Future<Output = F::Output> + Send + 'static {
4312
- async move {
4313
- let mut fut = pin!(fut);
4314
- future::poll_fn(move |cx| {
4315
- let message = "\
4316
- `Future`s which depend on asynchronous component tasks, streams, or \
4317
- futures to complete may only be polled from the event loop of the \
4318
- instance from which they originated. Please use \
4319
- `Instance::{run_concurrent,spawn}` to poll or await them.\
4320
- ";
4321
- tls::try_get(|store| {
4322
- let matched = match store {
4323
- tls::TryGet::Some(store) => {
4324
- let a = store.concurrent_async_state_mut().current_instance;
4325
- a == Some(instance.id().instance())
4326
- }
4327
- tls::TryGet::Taken | tls::TryGet::None => false,
4328
- };
4329
-
4330
- if !matched {
4331
- panic!("{message}")
4332
- }
4333
- });
4334
- fut.as_mut().poll(cx)
4335
- })
4336
- .await
4337
- }
4338
- }
4339
-
4340
- /// Assert that `Instance::run_concurrent` has not been called from within an
4341
- /// instance's event loop.
4342
- fn check_recursive_run() {
4343
- tls::try_get(|store| {
4344
- if !matches!(store, tls::TryGet::None) {
4345
- panic!("Recursive `Instance::run_concurrent` calls not supported")
4346
- }
4347
- });
4348
- }
4349
-
4350
- fn unpack_callback_code(code: u32) -> (u32, u32) {
4351
- (code & 0xF, code >> 4)
4352
- }
4353
-
4354
- /// Helper struct for packaging parameters to be passed to
4355
- /// `ComponentInstance::waitable_check` for calls to `waitable-set.wait` or
4356
- /// `waitable-set.poll`.
4357
- struct WaitableCheckParams {
4358
- set: TableId<WaitableSet>,
4359
- options: OptionsIndex,
4360
- payload: u32,
4361
- }
4362
-
4363
- /// Helper enum for passing parameters to `ComponentInstance::waitable_check`.
4364
- enum WaitableCheck {
4365
- Wait(WaitableCheckParams),
4366
- Poll(WaitableCheckParams),
4367
- Yield,
4368
- }
4369
-
4370
- /// Represents a guest task called from the host, prepared using `prepare_call`.
4371
- pub(crate) struct PreparedCall<R> {
4372
- /// The guest export to be called
4373
- handle: Func,
4374
- /// The guest task created by `prepare_call`
4375
- task: TableId<GuestTask>,
4376
- /// The number of lowered core Wasm parameters to pass to the call.
4377
- param_count: usize,
4378
- /// The `oneshot::Receiver` to which the result of the call will be
4379
- /// delivered when it is available.
4380
- rx: oneshot::Receiver<LiftedResult>,
4381
- /// The `oneshot::Receiver` which will resolve when the task -- and any
4382
- /// transitive subtasks -- have all exited.
4383
- exit_rx: oneshot::Receiver<()>,
4384
- _phantom: PhantomData<R>,
4385
- }
4386
-
4387
- impl<R> PreparedCall<R> {
4388
- /// Get a copy of the `TaskId` for this `PreparedCall`.
4389
- pub(crate) fn task_id(&self) -> TaskId {
4390
- TaskId {
4391
- handle: self.handle,
4392
- task: self.task,
4393
- }
4394
- }
4395
- }
4396
-
4397
- /// Represents a task created by `prepare_call`.
4398
- pub(crate) struct TaskId {
4399
- handle: Func,
4400
- task: TableId<GuestTask>,
4401
- }
4402
-
4403
- impl TaskId {
4404
- /// Remove the specified task from the concurrent state to which it belongs.
4405
- ///
4406
- /// This must be used with care to avoid use-after-delete or double-delete
4407
- /// bugs. Specifically, it should only be called on tasks created with the
4408
- /// `remove_task_automatically` parameter to `prepare_call` set to `false`,
4409
- /// which tells the runtime that the caller is responsible for removing the
4410
- /// task from the state; otherwise, it will be removed automatically. Also,
4411
- /// it should only be called once for a given task, and only after either
4412
- /// the task has completed or the instance has trapped.
4413
- pub(crate) fn remove<T>(&self, store: StoreContextMut<T>) -> Result<()> {
4414
- Waitable::Guest(self.task).delete_from(self.handle.instance().concurrent_state_mut(store.0))
4415
- }
4416
- }
4417
-
4418
- /// Prepare a call to the specified exported Wasm function, providing functions
4419
- /// for lowering the parameters and lifting the result.
4420
- ///
4421
- /// To enqueue the returned `PreparedCall` in the `ComponentInstance`'s event
4422
- /// loop, use `queue_call`.
4423
- pub(crate) fn prepare_call<T, R>(
4424
- mut store: StoreContextMut<T>,
4425
- handle: Func,
4426
- param_count: usize,
4427
- remove_task_automatically: bool,
4428
- call_post_return_automatically: bool,
4429
- lower_params: impl FnOnce(Func, StoreContextMut<T>, &mut [MaybeUninit<ValRaw>]) -> Result<()>
4430
- + Send
4431
- + Sync
4432
- + 'static,
4433
- lift_result: impl FnOnce(Func, &mut StoreOpaque, &[ValRaw]) -> Result<Box<dyn Any + Send + Sync>>
4434
- + Send
4435
- + Sync
4436
- + 'static,
4437
- ) -> Result<PreparedCall<R>> {
4438
- let (options, _flags, ty, raw_options) = handle.abi_info(store.0);
4439
-
4440
- let instance = handle.instance().id().get(store.0);
4441
- let task_return_type = instance.component().types()[ty].results;
4442
- let component_instance = raw_options.instance;
4443
- let callback = options.callback();
4444
- let memory = options.memory_raw().map(SendSyncPtr::new);
4445
- let string_encoding = options.string_encoding();
4446
- let token = StoreToken::new(store.as_context_mut());
4447
- let state = handle.instance().concurrent_state_mut(store.0);
4448
-
4449
- assert!(state.guest_task.is_none());
4450
-
4451
- let (tx, rx) = oneshot::channel();
4452
- let (exit_tx, exit_rx) = oneshot::channel();
4453
-
4454
- let mut task = GuestTask::new(
4455
- state,
4456
- Box::new(for_any_lower(move |store, instance, params| {
4457
- debug_assert!(instance.id() == handle.instance().id());
4458
- lower_params(handle, token.as_context_mut(store), params)
4459
- })),
4460
- LiftResult {
4461
- lift: Box::new(for_any_lift(move |store, instance, result| {
4462
- debug_assert!(instance.id() == handle.instance().id());
4463
- lift_result(handle, store, result)
4464
- })),
4465
- ty: task_return_type,
4466
- memory,
4467
- string_encoding,
4468
- },
4469
- Caller::Host {
4470
- tx: Some(tx),
4471
- exit_tx: Arc::new(exit_tx),
4472
- remove_task_automatically,
4473
- call_post_return_automatically,
4474
- },
4475
- callback.map(|callback| {
4476
- let callback = SendSyncPtr::new(callback);
4477
- Box::new(
4478
- move |store: &mut dyn VMStore,
4479
- instance: Instance,
4480
- runtime_instance,
4481
- event,
4482
- handle| {
4483
- let store = token.as_context_mut(store);
4484
- // SAFETY: Per the contract of `prepare_call`, the callback
4485
- // will remain valid at least as long is this task exists.
4486
- unsafe {
4487
- instance.call_callback(
4488
- store,
4489
- runtime_instance,
4490
- callback,
4491
- event,
4492
- handle,
4493
- call_post_return_automatically,
4494
- )
4495
- }
4496
- },
4497
- ) as CallbackFn
4498
- }),
4499
- component_instance,
4500
- )?;
4501
- task.function_index = Some(handle.index());
4502
-
4503
- let task = state.push(task)?;
4504
-
4505
- Ok(PreparedCall {
4506
- handle,
4507
- task,
4508
- param_count,
4509
- rx,
4510
- exit_rx,
4511
- _phantom: PhantomData,
4512
- })
4513
- }
4514
-
4515
- /// Queue a call previously prepared using `prepare_call` to be run as part of
4516
- /// the associated `ComponentInstance`'s event loop.
4517
- ///
4518
- /// The returned future will resolve to the result once it is available, but
4519
- /// must only be polled via the instance's event loop. See
4520
- /// `Instance::run_concurrent` for details.
4521
- pub(crate) fn queue_call<T: 'static, R: Send + 'static>(
4522
- mut store: StoreContextMut<T>,
4523
- prepared: PreparedCall<R>,
4524
- ) -> Result<impl Future<Output = Result<(R, oneshot::Receiver<()>)>> + Send + 'static + use<T, R>> {
4525
- let PreparedCall {
4526
- handle,
4527
- task,
4528
- param_count,
4529
- rx,
4530
- exit_rx,
4531
- ..
4532
- } = prepared;
4533
-
4534
- queue_call0(store.as_context_mut(), handle, task, param_count)?;
4535
-
4536
- Ok(checked(
4537
- handle.instance(),
4538
- rx.map(move |result| {
4539
- result
4540
- .map(|v| (*v.downcast().unwrap(), exit_rx))
4541
- .map_err(anyhow::Error::from)
4542
- }),
4543
- ))
4544
- }
4545
-
4546
- /// Queue a call previously prepared using `prepare_call` to be run as part of
4547
- /// the associated `ComponentInstance`'s event loop.
4548
- fn queue_call0<T: 'static>(
4549
- store: StoreContextMut<T>,
4550
- handle: Func,
4551
- guest_task: TableId<GuestTask>,
4552
- param_count: usize,
4553
- ) -> Result<()> {
4554
- let (options, flags, _ty, raw_options) = handle.abi_info(store.0);
4555
- let is_concurrent = raw_options.async_;
4556
- let instance = handle.instance();
4557
- let callee = handle.lifted_core_func(store.0);
4558
- let callback = options.callback();
4559
- let post_return = handle.post_return_core_func(store.0);
4560
-
4561
- log::trace!("queueing call {guest_task:?}");
4562
-
4563
- let instance_flags = if callback.is_none() {
4564
- None
4565
- } else {
4566
- Some(flags)
4567
- };
4568
-
4569
- // SAFETY: `callee`, `callback`, and `post_return` are valid pointers
4570
- // (with signatures appropriate for this call) and will remain valid as
4571
- // long as this instance is valid.
4572
- unsafe {
4573
- instance.queue_call(
4574
- store,
4575
- guest_task,
4576
- SendSyncPtr::new(callee),
4577
- param_count,
4578
- 1,
4579
- instance_flags,
4580
- is_concurrent,
4581
- callback.map(SendSyncPtr::new),
4582
- post_return.map(SendSyncPtr::new),
4583
- )
4584
- }
4585
- }