wasmtime 20.0.2 → 21.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2089) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +129 -124
  3. data/ext/Cargo.toml +8 -6
  4. data/ext/cargo-vendor/cobs-0.2.3/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cobs-0.2.3/Cargo.toml +39 -0
  6. data/ext/cargo-vendor/cobs-0.2.3/LICENSE-APACHE +202 -0
  7. data/ext/cargo-vendor/cobs-0.2.3/LICENSE-MIT +19 -0
  8. data/ext/cargo-vendor/cobs-0.2.3/README.md +23 -0
  9. data/ext/cargo-vendor/cobs-0.2.3/src/dec.rs +360 -0
  10. data/ext/cargo-vendor/cobs-0.2.3/src/enc.rs +216 -0
  11. data/ext/cargo-vendor/cobs-0.2.3/src/lib.rs +14 -0
  12. data/ext/cargo-vendor/cobs-0.2.3/tests/test.rs +265 -0
  13. data/ext/cargo-vendor/cranelift-bforest-0.108.1/.cargo-checksum.json +1 -0
  14. data/ext/cargo-vendor/cranelift-bforest-0.108.1/Cargo.toml +40 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.108.1/.cargo-checksum.json +1 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.108.1/Cargo.toml +189 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.108.1/build.rs +266 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/alias_analysis.rs +403 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/context.rs +395 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ctxhash.rs +167 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/egraph/elaborate.rs +835 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/egraph.rs +839 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/incremental_cache.rs +256 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ir/instructions.rs +1020 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/abi.rs +1580 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/args.rs +721 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/emit.rs +3846 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/emit_tests.rs +7902 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/imms.rs +1213 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/mod.rs +3094 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst/regs.rs +288 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/inst.isle +4225 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/lower/isle.rs +810 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/aarch64/pcc.rs +568 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/mod.rs +449 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/abi.rs +1051 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/args.rs +1938 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/emit.rs +2681 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/emit_tests.rs +2197 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/mod.rs +1975 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/regs.rs +168 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst/vector.rs +1144 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/inst.isle +2969 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/lower/isle.rs +625 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/riscv64/lower.isle +2883 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/abi.rs +1037 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/args.rs +314 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/emit.rs +3646 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/imms.rs +202 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/mod.rs +3421 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/s390x/inst/regs.rs +180 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/abi.rs +1410 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/args.rs +2256 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/emit.rs +4311 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/emit_tests.rs +5171 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/mod.rs +2838 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst/regs.rs +276 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/inst.isle +5294 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/lower/isle.rs +1064 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/lower.isle +4808 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/lower.rs +337 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/isa/x64/pcc.rs +1014 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/lib.rs +106 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/abi.rs +2506 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/blockorder.rs +465 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/isle.rs +903 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/lower.rs +1432 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/mod.rs +555 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/reg.rs +522 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/valueregs.rs +138 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/machinst/vcode.rs +1741 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/nan_canonicalization.rs +130 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/opts/arithmetic.isle +240 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/opts/icmp.isle +215 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/ranges.rs +131 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/remove_constant_phis.rs +419 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/scoped_hash_map.rs +310 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.108.1/src/settings.rs +590 -0
  79. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/.cargo-checksum.json +1 -0
  80. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/Cargo.toml +35 -0
  81. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/gen_inst.rs +1278 -0
  82. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/gen_isle.rs +519 -0
  83. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/gen_settings.rs +508 -0
  84. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/gen_types.rs +75 -0
  85. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/isa/riscv64.rs +168 -0
  86. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/isa/x86.rs +414 -0
  87. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/isle.rs +126 -0
  88. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/lib.rs +98 -0
  89. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/shared/settings.rs +348 -0
  90. data/ext/cargo-vendor/cranelift-codegen-meta-0.108.1/src/srcgen.rs +464 -0
  91. data/ext/cargo-vendor/cranelift-codegen-shared-0.108.1/.cargo-checksum.json +1 -0
  92. data/ext/cargo-vendor/cranelift-codegen-shared-0.108.1/Cargo.toml +22 -0
  93. data/ext/cargo-vendor/cranelift-control-0.108.1/.cargo-checksum.json +1 -0
  94. data/ext/cargo-vendor/cranelift-control-0.108.1/Cargo.toml +30 -0
  95. data/ext/cargo-vendor/cranelift-entity-0.108.1/.cargo-checksum.json +1 -0
  96. data/ext/cargo-vendor/cranelift-entity-0.108.1/Cargo.toml +52 -0
  97. data/ext/cargo-vendor/cranelift-entity-0.108.1/src/lib.rs +381 -0
  98. data/ext/cargo-vendor/cranelift-frontend-0.108.1/.cargo-checksum.json +1 -0
  99. data/ext/cargo-vendor/cranelift-frontend-0.108.1/Cargo.toml +67 -0
  100. data/ext/cargo-vendor/cranelift-frontend-0.108.1/src/switch.rs +696 -0
  101. data/ext/cargo-vendor/cranelift-isle-0.108.1/.cargo-checksum.json +1 -0
  102. data/ext/cargo-vendor/cranelift-isle-0.108.1/Cargo.toml +46 -0
  103. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/codegen.rs +886 -0
  104. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/disjointsets.rs +169 -0
  105. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/lib.rs +33 -0
  106. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/sema.rs +2492 -0
  107. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/serialize.rs +846 -0
  108. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/stablemapset.rs +79 -0
  109. data/ext/cargo-vendor/cranelift-isle-0.108.1/src/trie_again.rs +684 -0
  110. data/ext/cargo-vendor/cranelift-native-0.108.1/.cargo-checksum.json +1 -0
  111. data/ext/cargo-vendor/cranelift-native-0.108.1/Cargo.toml +43 -0
  112. data/ext/cargo-vendor/cranelift-wasm-0.108.1/.cargo-checksum.json +1 -0
  113. data/ext/cargo-vendor/cranelift-wasm-0.108.1/Cargo.toml +109 -0
  114. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/code_translator.rs +3687 -0
  115. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/environ/dummy.rs +906 -0
  116. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/environ/spec.rs +945 -0
  117. data/ext/cargo-vendor/cranelift-wasm-0.108.1/src/sections_translator.rs +389 -0
  118. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/.cargo-checksum.json +1 -0
  119. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.22/Cargo.toml +48 -0
  120. data/ext/cargo-vendor/embedded-io-0.4.0/.cargo-checksum.json +1 -0
  121. data/ext/cargo-vendor/embedded-io-0.4.0/CHANGELOG.md +28 -0
  122. data/ext/cargo-vendor/embedded-io-0.4.0/Cargo.toml +73 -0
  123. data/ext/cargo-vendor/embedded-io-0.4.0/LICENSE-APACHE +201 -0
  124. data/ext/cargo-vendor/embedded-io-0.4.0/LICENSE-MIT +25 -0
  125. data/ext/cargo-vendor/embedded-io-0.4.0/README.md +33 -0
  126. data/ext/cargo-vendor/embedded-io-0.4.0/ci.sh +21 -0
  127. data/ext/cargo-vendor/embedded-io-0.4.0/rust-toolchain.toml +3 -0
  128. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/futures_io.rs +65 -0
  129. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/mod.rs +40 -0
  130. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/std_io.rs +107 -0
  131. data/ext/cargo-vendor/embedded-io-0.4.0/src/adapters/tokio.rs +108 -0
  132. data/ext/cargo-vendor/embedded-io-0.4.0/src/asynch.rs +230 -0
  133. data/ext/cargo-vendor/embedded-io-0.4.0/src/blocking.rs +309 -0
  134. data/ext/cargo-vendor/embedded-io-0.4.0/src/fmt.rs +228 -0
  135. data/ext/cargo-vendor/embedded-io-0.4.0/src/lib.rs +125 -0
  136. data/ext/cargo-vendor/libm-0.2.8/.cargo-checksum.json +1 -0
  137. data/ext/cargo-vendor/libm-0.2.8/CHANGELOG.md +123 -0
  138. data/ext/cargo-vendor/libm-0.2.8/CONTRIBUTING.md +95 -0
  139. data/ext/cargo-vendor/libm-0.2.8/Cargo.toml +45 -0
  140. data/ext/cargo-vendor/libm-0.2.8/LICENSE-APACHE +201 -0
  141. data/ext/cargo-vendor/libm-0.2.8/LICENSE-MIT +25 -0
  142. data/ext/cargo-vendor/libm-0.2.8/README.md +51 -0
  143. data/ext/cargo-vendor/libm-0.2.8/build.rs +463 -0
  144. data/ext/cargo-vendor/libm-0.2.8/src/lib.rs +59 -0
  145. data/ext/cargo-vendor/libm-0.2.8/src/libm_helper.rs +171 -0
  146. data/ext/cargo-vendor/libm-0.2.8/src/math/acos.rs +112 -0
  147. data/ext/cargo-vendor/libm-0.2.8/src/math/acosf.rs +79 -0
  148. data/ext/cargo-vendor/libm-0.2.8/src/math/acosh.rs +27 -0
  149. data/ext/cargo-vendor/libm-0.2.8/src/math/acoshf.rs +26 -0
  150. data/ext/cargo-vendor/libm-0.2.8/src/math/asin.rs +119 -0
  151. data/ext/cargo-vendor/libm-0.2.8/src/math/asinf.rs +72 -0
  152. data/ext/cargo-vendor/libm-0.2.8/src/math/asinh.rs +40 -0
  153. data/ext/cargo-vendor/libm-0.2.8/src/math/asinhf.rs +39 -0
  154. data/ext/cargo-vendor/libm-0.2.8/src/math/atan.rs +184 -0
  155. data/ext/cargo-vendor/libm-0.2.8/src/math/atan2.rs +126 -0
  156. data/ext/cargo-vendor/libm-0.2.8/src/math/atan2f.rs +91 -0
  157. data/ext/cargo-vendor/libm-0.2.8/src/math/atanf.rs +112 -0
  158. data/ext/cargo-vendor/libm-0.2.8/src/math/atanh.rs +37 -0
  159. data/ext/cargo-vendor/libm-0.2.8/src/math/atanhf.rs +37 -0
  160. data/ext/cargo-vendor/libm-0.2.8/src/math/cbrt.rs +113 -0
  161. data/ext/cargo-vendor/libm-0.2.8/src/math/cbrtf.rs +75 -0
  162. data/ext/cargo-vendor/libm-0.2.8/src/math/ceil.rs +82 -0
  163. data/ext/cargo-vendor/libm-0.2.8/src/math/ceilf.rs +65 -0
  164. data/ext/cargo-vendor/libm-0.2.8/src/math/copysign.rs +12 -0
  165. data/ext/cargo-vendor/libm-0.2.8/src/math/copysignf.rs +12 -0
  166. data/ext/cargo-vendor/libm-0.2.8/src/math/cos.rs +73 -0
  167. data/ext/cargo-vendor/libm-0.2.8/src/math/cosf.rs +83 -0
  168. data/ext/cargo-vendor/libm-0.2.8/src/math/cosh.rs +38 -0
  169. data/ext/cargo-vendor/libm-0.2.8/src/math/coshf.rs +38 -0
  170. data/ext/cargo-vendor/libm-0.2.8/src/math/erf.rs +318 -0
  171. data/ext/cargo-vendor/libm-0.2.8/src/math/erff.rs +230 -0
  172. data/ext/cargo-vendor/libm-0.2.8/src/math/exp.rs +154 -0
  173. data/ext/cargo-vendor/libm-0.2.8/src/math/exp10.rs +22 -0
  174. data/ext/cargo-vendor/libm-0.2.8/src/math/exp10f.rs +22 -0
  175. data/ext/cargo-vendor/libm-0.2.8/src/math/exp2.rs +394 -0
  176. data/ext/cargo-vendor/libm-0.2.8/src/math/exp2f.rs +135 -0
  177. data/ext/cargo-vendor/libm-0.2.8/src/math/expf.rs +101 -0
  178. data/ext/cargo-vendor/libm-0.2.8/src/math/expm1.rs +144 -0
  179. data/ext/cargo-vendor/libm-0.2.8/src/math/expm1f.rs +134 -0
  180. data/ext/cargo-vendor/libm-0.2.8/src/math/expo2.rs +14 -0
  181. data/ext/cargo-vendor/libm-0.2.8/src/math/fabs.rs +41 -0
  182. data/ext/cargo-vendor/libm-0.2.8/src/math/fabsf.rs +41 -0
  183. data/ext/cargo-vendor/libm-0.2.8/src/math/fdim.rs +22 -0
  184. data/ext/cargo-vendor/libm-0.2.8/src/math/fdimf.rs +22 -0
  185. data/ext/cargo-vendor/libm-0.2.8/src/math/fenv.rs +27 -0
  186. data/ext/cargo-vendor/libm-0.2.8/src/math/floor.rs +81 -0
  187. data/ext/cargo-vendor/libm-0.2.8/src/math/floorf.rs +66 -0
  188. data/ext/cargo-vendor/libm-0.2.8/src/math/fma.rs +232 -0
  189. data/ext/cargo-vendor/libm-0.2.8/src/math/fmaf.rs +117 -0
  190. data/ext/cargo-vendor/libm-0.2.8/src/math/fmax.rs +12 -0
  191. data/ext/cargo-vendor/libm-0.2.8/src/math/fmaxf.rs +12 -0
  192. data/ext/cargo-vendor/libm-0.2.8/src/math/fmin.rs +12 -0
  193. data/ext/cargo-vendor/libm-0.2.8/src/math/fminf.rs +12 -0
  194. data/ext/cargo-vendor/libm-0.2.8/src/math/fmod.rs +80 -0
  195. data/ext/cargo-vendor/libm-0.2.8/src/math/fmodf.rs +89 -0
  196. data/ext/cargo-vendor/libm-0.2.8/src/math/frexp.rs +20 -0
  197. data/ext/cargo-vendor/libm-0.2.8/src/math/frexpf.rs +21 -0
  198. data/ext/cargo-vendor/libm-0.2.8/src/math/hypot.rs +74 -0
  199. data/ext/cargo-vendor/libm-0.2.8/src/math/hypotf.rs +43 -0
  200. data/ext/cargo-vendor/libm-0.2.8/src/math/ilogb.rs +32 -0
  201. data/ext/cargo-vendor/libm-0.2.8/src/math/ilogbf.rs +32 -0
  202. data/ext/cargo-vendor/libm-0.2.8/src/math/j0.rs +422 -0
  203. data/ext/cargo-vendor/libm-0.2.8/src/math/j0f.rs +359 -0
  204. data/ext/cargo-vendor/libm-0.2.8/src/math/j1.rs +414 -0
  205. data/ext/cargo-vendor/libm-0.2.8/src/math/j1f.rs +380 -0
  206. data/ext/cargo-vendor/libm-0.2.8/src/math/jn.rs +343 -0
  207. data/ext/cargo-vendor/libm-0.2.8/src/math/jnf.rs +259 -0
  208. data/ext/cargo-vendor/libm-0.2.8/src/math/k_cos.rs +62 -0
  209. data/ext/cargo-vendor/libm-0.2.8/src/math/k_cosf.rs +29 -0
  210. data/ext/cargo-vendor/libm-0.2.8/src/math/k_expo2.rs +14 -0
  211. data/ext/cargo-vendor/libm-0.2.8/src/math/k_expo2f.rs +14 -0
  212. data/ext/cargo-vendor/libm-0.2.8/src/math/k_sin.rs +57 -0
  213. data/ext/cargo-vendor/libm-0.2.8/src/math/k_sinf.rs +30 -0
  214. data/ext/cargo-vendor/libm-0.2.8/src/math/k_tan.rs +105 -0
  215. data/ext/cargo-vendor/libm-0.2.8/src/math/k_tanf.rs +46 -0
  216. data/ext/cargo-vendor/libm-0.2.8/src/math/ldexp.rs +4 -0
  217. data/ext/cargo-vendor/libm-0.2.8/src/math/ldexpf.rs +4 -0
  218. data/ext/cargo-vendor/libm-0.2.8/src/math/lgamma.rs +6 -0
  219. data/ext/cargo-vendor/libm-0.2.8/src/math/lgamma_r.rs +320 -0
  220. data/ext/cargo-vendor/libm-0.2.8/src/math/lgammaf.rs +6 -0
  221. data/ext/cargo-vendor/libm-0.2.8/src/math/lgammaf_r.rs +255 -0
  222. data/ext/cargo-vendor/libm-0.2.8/src/math/log.rs +117 -0
  223. data/ext/cargo-vendor/libm-0.2.8/src/math/log10.rs +117 -0
  224. data/ext/cargo-vendor/libm-0.2.8/src/math/log10f.rs +91 -0
  225. data/ext/cargo-vendor/libm-0.2.8/src/math/log1p.rs +143 -0
  226. data/ext/cargo-vendor/libm-0.2.8/src/math/log1pf.rs +98 -0
  227. data/ext/cargo-vendor/libm-0.2.8/src/math/log2.rs +106 -0
  228. data/ext/cargo-vendor/libm-0.2.8/src/math/log2f.rs +87 -0
  229. data/ext/cargo-vendor/libm-0.2.8/src/math/logf.rs +65 -0
  230. data/ext/cargo-vendor/libm-0.2.8/src/math/mod.rs +370 -0
  231. data/ext/cargo-vendor/libm-0.2.8/src/math/modf.rs +34 -0
  232. data/ext/cargo-vendor/libm-0.2.8/src/math/modff.rs +33 -0
  233. data/ext/cargo-vendor/libm-0.2.8/src/math/nextafter.rs +37 -0
  234. data/ext/cargo-vendor/libm-0.2.8/src/math/nextafterf.rs +37 -0
  235. data/ext/cargo-vendor/libm-0.2.8/src/math/pow.rs +637 -0
  236. data/ext/cargo-vendor/libm-0.2.8/src/math/powf.rs +342 -0
  237. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2.rs +233 -0
  238. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2_large.rs +470 -0
  239. data/ext/cargo-vendor/libm-0.2.8/src/math/rem_pio2f.rs +67 -0
  240. data/ext/cargo-vendor/libm-0.2.8/src/math/remainder.rs +5 -0
  241. data/ext/cargo-vendor/libm-0.2.8/src/math/remainderf.rs +5 -0
  242. data/ext/cargo-vendor/libm-0.2.8/src/math/remquo.rs +110 -0
  243. data/ext/cargo-vendor/libm-0.2.8/src/math/remquof.rs +97 -0
  244. data/ext/cargo-vendor/libm-0.2.8/src/math/rint.rs +58 -0
  245. data/ext/cargo-vendor/libm-0.2.8/src/math/rintf.rs +58 -0
  246. data/ext/cargo-vendor/libm-0.2.8/src/math/round.rs +28 -0
  247. data/ext/cargo-vendor/libm-0.2.8/src/math/roundf.rs +30 -0
  248. data/ext/cargo-vendor/libm-0.2.8/src/math/scalbn.rs +33 -0
  249. data/ext/cargo-vendor/libm-0.2.8/src/math/scalbnf.rs +29 -0
  250. data/ext/cargo-vendor/libm-0.2.8/src/math/sin.rs +88 -0
  251. data/ext/cargo-vendor/libm-0.2.8/src/math/sincos.rs +134 -0
  252. data/ext/cargo-vendor/libm-0.2.8/src/math/sincosf.rs +185 -0
  253. data/ext/cargo-vendor/libm-0.2.8/src/math/sinf.rs +93 -0
  254. data/ext/cargo-vendor/libm-0.2.8/src/math/sinh.rs +49 -0
  255. data/ext/cargo-vendor/libm-0.2.8/src/math/sinhf.rs +30 -0
  256. data/ext/cargo-vendor/libm-0.2.8/src/math/sqrt.rs +280 -0
  257. data/ext/cargo-vendor/libm-0.2.8/src/math/sqrtf.rs +170 -0
  258. data/ext/cargo-vendor/libm-0.2.8/src/math/tan.rs +70 -0
  259. data/ext/cargo-vendor/libm-0.2.8/src/math/tanf.rs +78 -0
  260. data/ext/cargo-vendor/libm-0.2.8/src/math/tanh.rs +53 -0
  261. data/ext/cargo-vendor/libm-0.2.8/src/math/tanhf.rs +39 -0
  262. data/ext/cargo-vendor/libm-0.2.8/src/math/tgamma.rs +208 -0
  263. data/ext/cargo-vendor/libm-0.2.8/src/math/tgammaf.rs +6 -0
  264. data/ext/cargo-vendor/libm-0.2.8/src/math/trunc.rs +40 -0
  265. data/ext/cargo-vendor/libm-0.2.8/src/math/truncf.rs +42 -0
  266. data/ext/cargo-vendor/postcard-1.0.8/.cargo-checksum.json +1 -0
  267. data/ext/cargo-vendor/postcard-1.0.8/CHANGELOG.md +141 -0
  268. data/ext/cargo-vendor/postcard-1.0.8/Cargo.toml +100 -0
  269. data/ext/cargo-vendor/postcard-1.0.8/LICENSE-APACHE +201 -0
  270. data/ext/cargo-vendor/postcard-1.0.8/LICENSE-MIT +25 -0
  271. data/ext/cargo-vendor/postcard-1.0.8/README.md +146 -0
  272. data/ext/cargo-vendor/postcard-1.0.8/spec/LICENSE-CC-BY-SA +427 -0
  273. data/ext/cargo-vendor/postcard-1.0.8/spec/book.toml +6 -0
  274. data/ext/cargo-vendor/postcard-1.0.8/spec/src/SUMMARY.md +6 -0
  275. data/ext/cargo-vendor/postcard-1.0.8/spec/src/glossary.md +17 -0
  276. data/ext/cargo-vendor/postcard-1.0.8/spec/src/intro.md +12 -0
  277. data/ext/cargo-vendor/postcard-1.0.8/spec/src/serde-data-model.md +190 -0
  278. data/ext/cargo-vendor/postcard-1.0.8/spec/src/wire-format.md +327 -0
  279. data/ext/cargo-vendor/postcard-1.0.8/src/accumulator.rs +367 -0
  280. data/ext/cargo-vendor/postcard-1.0.8/src/de/deserializer.rs +599 -0
  281. data/ext/cargo-vendor/postcard-1.0.8/src/de/flavors.rs +468 -0
  282. data/ext/cargo-vendor/postcard-1.0.8/src/de/mod.rs +568 -0
  283. data/ext/cargo-vendor/postcard-1.0.8/src/error.rs +95 -0
  284. data/ext/cargo-vendor/postcard-1.0.8/src/fixint.rs +189 -0
  285. data/ext/cargo-vendor/postcard-1.0.8/src/lib.rs +143 -0
  286. data/ext/cargo-vendor/postcard-1.0.8/src/max_size.rs +233 -0
  287. data/ext/cargo-vendor/postcard-1.0.8/src/schema.rs +282 -0
  288. data/ext/cargo-vendor/postcard-1.0.8/src/ser/flavors.rs +722 -0
  289. data/ext/cargo-vendor/postcard-1.0.8/src/ser/mod.rs +866 -0
  290. data/ext/cargo-vendor/postcard-1.0.8/src/ser/serializer.rs +564 -0
  291. data/ext/cargo-vendor/postcard-1.0.8/src/varint.rs +103 -0
  292. data/ext/cargo-vendor/postcard-1.0.8/tests/accumulator.rs +57 -0
  293. data/ext/cargo-vendor/postcard-1.0.8/tests/crc.rs +60 -0
  294. data/ext/cargo-vendor/postcard-1.0.8/tests/loopback.rs +248 -0
  295. data/ext/cargo-vendor/postcard-1.0.8/tests/max_size.rs +101 -0
  296. data/ext/cargo-vendor/postcard-1.0.8/tests/schema.rs +107 -0
  297. data/ext/cargo-vendor/rb-sys-0.9.100/.cargo-checksum.json +1 -0
  298. data/ext/cargo-vendor/rb-sys-0.9.100/Cargo.toml +58 -0
  299. data/ext/cargo-vendor/rb-sys-0.9.100/build/main.rs +267 -0
  300. data/ext/cargo-vendor/rb-sys-0.9.100/build/stable_api_config.rs +139 -0
  301. data/ext/cargo-vendor/rb-sys-0.9.100/src/bindings.rs +21 -0
  302. data/ext/cargo-vendor/rb-sys-0.9.100/src/tracking_allocator.rs +266 -0
  303. data/ext/cargo-vendor/rb-sys-build-0.9.100/.cargo-checksum.json +1 -0
  304. data/ext/cargo-vendor/rb-sys-build-0.9.100/Cargo.toml +62 -0
  305. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/bindings/stable_api.rs +203 -0
  306. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/bindings.rs +254 -0
  307. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/cc.rs +374 -0
  308. data/ext/cargo-vendor/rb-sys-build-0.9.100/src/utils.rs +52 -0
  309. data/ext/cargo-vendor/wasi-common-21.0.1/.cargo-checksum.json +1 -0
  310. data/ext/cargo-vendor/wasi-common-21.0.1/Cargo.toml +223 -0
  311. data/ext/cargo-vendor/wasi-common-21.0.1/tests/all/async_.rs +293 -0
  312. data/ext/cargo-vendor/wasi-common-21.0.1/tests/all/main.rs +21 -0
  313. data/ext/cargo-vendor/wasi-common-21.0.1/tests/all/sync.rs +279 -0
  314. data/ext/cargo-vendor/wasm-encoder-0.207.0/.cargo-checksum.json +1 -0
  315. data/ext/cargo-vendor/wasm-encoder-0.207.0/Cargo.toml +45 -0
  316. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/code.rs +3502 -0
  317. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/data.rs +186 -0
  318. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/elements.rs +221 -0
  319. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/globals.rs +112 -0
  320. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/imports.rs +157 -0
  321. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/memories.rs +128 -0
  322. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/tables.rs +134 -0
  323. data/ext/cargo-vendor/wasm-encoder-0.207.0/src/core/types.rs +678 -0
  324. data/ext/cargo-vendor/wasmparser-0.207.0/.cargo-checksum.json +1 -0
  325. data/ext/cargo-vendor/wasmparser-0.207.0/Cargo.lock +659 -0
  326. data/ext/cargo-vendor/wasmparser-0.207.0/Cargo.toml +95 -0
  327. data/ext/cargo-vendor/wasmparser-0.207.0/src/binary_reader.rs +1867 -0
  328. data/ext/cargo-vendor/wasmparser-0.207.0/src/lib.rs +805 -0
  329. data/ext/cargo-vendor/wasmparser-0.207.0/src/limits.rs +78 -0
  330. data/ext/cargo-vendor/wasmparser-0.207.0/src/map.rs +137 -0
  331. data/ext/cargo-vendor/wasmparser-0.207.0/src/parser.rs +1636 -0
  332. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/canonicals.rs +121 -0
  333. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/instances.rs +164 -0
  334. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/names.rs +102 -0
  335. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/start.rs +31 -0
  336. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/component/types.rs +551 -0
  337. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/code.rs +146 -0
  338. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/coredumps.rs +244 -0
  339. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/custom.rs +64 -0
  340. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/data.rs +96 -0
  341. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/dylink0.rs +110 -0
  342. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/elements.rs +152 -0
  343. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/globals.rs +51 -0
  344. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/linking.rs +450 -0
  345. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/memories.rs +57 -0
  346. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/names.rs +159 -0
  347. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/operators.rs +430 -0
  348. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/reloc.rs +301 -0
  349. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/tables.rs +93 -0
  350. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/types/matches.rs +277 -0
  351. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core/types.rs +1773 -0
  352. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers/core.rs +43 -0
  353. data/ext/cargo-vendor/wasmparser-0.207.0/src/readers.rs +316 -0
  354. data/ext/cargo-vendor/wasmparser-0.207.0/src/resources.rs +235 -0
  355. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/component.rs +3242 -0
  356. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/core/canonical.rs +233 -0
  357. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/core.rs +1450 -0
  358. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/func.rs +331 -0
  359. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/names.rs +947 -0
  360. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/operators.rs +4117 -0
  361. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator/types.rs +4492 -0
  362. data/ext/cargo-vendor/wasmparser-0.207.0/src/validator.rs +1786 -0
  363. data/ext/cargo-vendor/wasmprinter-0.207.0/.cargo-checksum.json +1 -0
  364. data/ext/cargo-vendor/wasmprinter-0.207.0/Cargo.toml +50 -0
  365. data/ext/cargo-vendor/wasmprinter-0.207.0/src/lib.rs +3226 -0
  366. data/ext/cargo-vendor/wasmprinter-0.207.0/src/operator.rs +1164 -0
  367. data/ext/cargo-vendor/wasmprinter-0.207.0/tests/all.rs +293 -0
  368. data/ext/cargo-vendor/wasmtime-21.0.1/.cargo-checksum.json +1 -0
  369. data/ext/cargo-vendor/wasmtime-21.0.1/Cargo.toml +386 -0
  370. data/ext/cargo-vendor/wasmtime-21.0.1/build.rs +37 -0
  371. data/ext/cargo-vendor/wasmtime-21.0.1/src/compile/code_builder.rs +275 -0
  372. data/ext/cargo-vendor/wasmtime-21.0.1/src/compile/runtime.rs +176 -0
  373. data/ext/cargo-vendor/wasmtime-21.0.1/src/compile.rs +910 -0
  374. data/ext/cargo-vendor/wasmtime-21.0.1/src/config.rs +2904 -0
  375. data/ext/cargo-vendor/wasmtime-21.0.1/src/engine/serialization.rs +887 -0
  376. data/ext/cargo-vendor/wasmtime-21.0.1/src/engine.rs +728 -0
  377. data/ext/cargo-vendor/wasmtime-21.0.1/src/lib.rs +328 -0
  378. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent/jitdump.rs +67 -0
  379. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent/perfmap.rs +48 -0
  380. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent/vtune.rs +81 -0
  381. data/ext/cargo-vendor/wasmtime-21.0.1/src/profiling_agent.rs +106 -0
  382. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/code.rs +102 -0
  383. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/code_memory.rs +337 -0
  384. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/component.rs +661 -0
  385. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func/host.rs +440 -0
  386. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func/options.rs +555 -0
  387. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func/typed.rs +2498 -0
  388. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/func.rs +746 -0
  389. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/instance.rs +814 -0
  390. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/linker.rs +783 -0
  391. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/matching.rs +217 -0
  392. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/mod.rs +783 -0
  393. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/resource_table.rs +355 -0
  394. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/resources.rs +1133 -0
  395. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/storage.rs +43 -0
  396. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/store.rs +29 -0
  397. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/types.rs +892 -0
  398. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/component/values.rs +980 -0
  399. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/coredump.rs +342 -0
  400. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/debug.rs +166 -0
  401. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/externals/global.rs +310 -0
  402. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/externals/table.rs +477 -0
  403. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/externals.rs +236 -0
  404. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/func/typed.rs +899 -0
  405. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/func.rs +2627 -0
  406. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/disabled/anyref.rs +46 -0
  407. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/disabled/externref.rs +50 -0
  408. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/disabled/rooting.rs +224 -0
  409. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/anyref.rs +473 -0
  410. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/externref.rs +650 -0
  411. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/i31.rs +346 -0
  412. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc/enabled/rooting.rs +1588 -0
  413. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/gc.rs +89 -0
  414. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/instance.rs +992 -0
  415. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/instantiate.rs +346 -0
  416. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/limits.rs +399 -0
  417. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/linker.rs +1506 -0
  418. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/memory.rs +998 -0
  419. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/module/registry.rs +353 -0
  420. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/module.rs +1295 -0
  421. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/profiling.rs +221 -0
  422. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/resources.rs +33 -0
  423. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/signatures.rs +216 -0
  424. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/stack.rs +73 -0
  425. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store/context.rs +243 -0
  426. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store/data.rs +301 -0
  427. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store/func_refs.rs +90 -0
  428. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/store.rs +2820 -0
  429. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/func.rs +139 -0
  430. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/global.rs +68 -0
  431. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/memory.rs +287 -0
  432. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline/table.rs +29 -0
  433. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trampoline.rs +78 -0
  434. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/trap.rs +642 -0
  435. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/type_registry.rs +807 -0
  436. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/types/matching.rs +421 -0
  437. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/types.rs +2239 -0
  438. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/unix.rs +40 -0
  439. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/v128.rs +131 -0
  440. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/values.rs +966 -0
  441. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/arch/aarch64.rs +76 -0
  442. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/arch/x86_64.rs +41 -0
  443. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/async_yield.rs +35 -0
  444. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/component/libcalls.rs +571 -0
  445. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/component/resources.rs +352 -0
  446. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/component.rs +860 -0
  447. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/const_expr.rs +102 -0
  448. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/cow.rs +893 -0
  449. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/debug_builtins.rs +59 -0
  450. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/export.rs +108 -0
  451. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/disabled.rs +24 -0
  452. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/enabled/drc.rs +968 -0
  453. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/enabled/externref.rs +116 -0
  454. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/enabled/free_list.rs +771 -0
  455. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/enabled.rs +18 -0
  456. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/gc_ref.rs +491 -0
  457. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/gc_runtime.rs +506 -0
  458. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/host_data.rs +82 -0
  459. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc/i31.rs +87 -0
  460. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/gc.rs +245 -0
  461. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/imports.rs +29 -0
  462. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/on_demand.rs +218 -0
  463. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/gc_heap_pool.rs +93 -0
  464. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/generic_stack_pool.rs +66 -0
  465. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/index_allocator.rs +705 -0
  466. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/memory_pool.rs +1000 -0
  467. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/table_pool.rs +233 -0
  468. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling/unix_stack_pool.rs +245 -0
  469. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator/pooling.rs +656 -0
  470. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance/allocator.rs +798 -0
  471. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/instance.rs +1519 -0
  472. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/libcalls.rs +834 -0
  473. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/memory.rs +744 -0
  474. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mmap.rs +220 -0
  475. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mmap_vec.rs +162 -0
  476. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/module_id.rs +43 -0
  477. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mpk/enabled.rs +214 -0
  478. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mpk/mod.rs +54 -0
  479. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mpk/pkru.rs +104 -0
  480. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/mpk/sys.rs +114 -0
  481. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/send_sync_ptr.rs +106 -0
  482. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/store_box.rs +37 -0
  483. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/capi.rs +200 -0
  484. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/mmap.rs +112 -0
  485. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/mod.rs +34 -0
  486. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/traphandlers.rs +55 -0
  487. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/custom/vm.rs +109 -0
  488. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/miri/mmap.rs +95 -0
  489. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/miri/mod.rs +24 -0
  490. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/miri/traphandlers.rs +47 -0
  491. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/mod.rs +25 -0
  492. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/machports.rs +416 -0
  493. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/mmap.rs +162 -0
  494. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/mod.rs +35 -0
  495. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/signals.rs +401 -0
  496. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/unwind.rs +150 -0
  497. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/unix/vm.rs +215 -0
  498. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/windows/mmap.rs +221 -0
  499. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/windows/mod.rs +20 -0
  500. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/sys/windows/traphandlers.rs +104 -0
  501. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/table.rs +847 -0
  502. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/threads/parking_spot.rs +623 -0
  503. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/threads/shared_memory.rs +233 -0
  504. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/threads/shared_memory_disabled.rs +101 -0
  505. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers/backtrace.rs +267 -0
  506. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers/coredump_disabled.rs +16 -0
  507. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers/coredump_enabled.rs +42 -0
  508. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/traphandlers.rs +768 -0
  509. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/vmcontext/vm_host_func_context.rs +138 -0
  510. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm/vmcontext.rs +1337 -0
  511. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/vm.rs +287 -0
  512. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime/windows.rs +35 -0
  513. data/ext/cargo-vendor/wasmtime-21.0.1/src/runtime.rs +110 -0
  514. data/ext/cargo-vendor/wasmtime-21.0.1/src/sync_nostd.rs +255 -0
  515. data/ext/cargo-vendor/wasmtime-21.0.1/src/sync_std.rs +52 -0
  516. data/ext/cargo-vendor/wasmtime-asm-macros-21.0.1/.cargo-checksum.json +1 -0
  517. data/ext/cargo-vendor/wasmtime-asm-macros-21.0.1/Cargo.toml +22 -0
  518. data/ext/cargo-vendor/wasmtime-asm-macros-21.0.1/src/lib.rs +83 -0
  519. data/ext/cargo-vendor/wasmtime-cache-21.0.1/.cargo-checksum.json +1 -0
  520. data/ext/cargo-vendor/wasmtime-cache-21.0.1/Cargo.toml +88 -0
  521. data/ext/cargo-vendor/wasmtime-cache-21.0.1/src/lib.rs +235 -0
  522. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/.cargo-checksum.json +1 -0
  523. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/Cargo.toml +79 -0
  524. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/src/bindgen.rs +436 -0
  525. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/src/component.rs +1295 -0
  526. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/tests/codegen.rs +576 -0
  527. data/ext/cargo-vendor/wasmtime-component-macro-21.0.1/tests/codegen_no_std.rs +16 -0
  528. data/ext/cargo-vendor/wasmtime-component-util-21.0.1/.cargo-checksum.json +1 -0
  529. data/ext/cargo-vendor/wasmtime-component-util-21.0.1/Cargo.toml +25 -0
  530. data/ext/cargo-vendor/wasmtime-component-util-21.0.1/src/lib.rs +182 -0
  531. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/.cargo-checksum.json +1 -0
  532. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/Cargo.toml +114 -0
  533. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/compiler/component.rs +968 -0
  534. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/compiler.rs +1383 -0
  535. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/gc.rs +252 -0
  536. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/attr.rs +320 -0
  537. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/expression.rs +1248 -0
  538. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/line_program.rs +287 -0
  539. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/mod.rs +256 -0
  540. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/unit.rs +529 -0
  541. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/transform/utils.rs +186 -0
  542. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug/write_debuginfo.rs +196 -0
  543. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/debug.rs +18 -0
  544. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/func_environ.rs +2888 -0
  545. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/gc/enabled.rs +648 -0
  546. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/gc.rs +198 -0
  547. data/ext/cargo-vendor/wasmtime-cranelift-21.0.1/src/lib.rs +511 -0
  548. data/ext/cargo-vendor/wasmtime-environ-21.0.1/.cargo-checksum.json +1 -0
  549. data/ext/cargo-vendor/wasmtime-environ-21.0.1/Cargo.lock +772 -0
  550. data/ext/cargo-vendor/wasmtime-environ-21.0.1/Cargo.toml +154 -0
  551. data/ext/cargo-vendor/wasmtime-environ-21.0.1/examples/factc.rs +198 -0
  552. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/address_map.rs +73 -0
  553. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/mod.rs +419 -0
  554. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_artifacts.rs +315 -0
  555. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_environ.rs +1337 -0
  556. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/module_types.rs +362 -0
  557. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/compile/trap_encoding.rs +70 -0
  558. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/compiler.rs +20 -0
  559. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/dfg.rs +691 -0
  560. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/info.rs +672 -0
  561. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/translate/adapt.rs +455 -0
  562. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/translate.rs +978 -0
  563. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types.rs +1029 -0
  564. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types_builder/resources.rs +233 -0
  565. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component/types_builder.rs +997 -0
  566. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/component.rs +107 -0
  567. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/demangling.rs +28 -0
  568. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/core_types.rs +25 -0
  569. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/signature.rs +119 -0
  570. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/trampoline.rs +3234 -0
  571. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/transcode.rs +90 -0
  572. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact/traps.rs +116 -0
  573. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/fact.rs +714 -0
  574. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/lib.rs +161 -0
  575. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module.rs +697 -0
  576. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module_artifacts.rs +146 -0
  577. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/module_types.rs +91 -0
  578. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/scopevec.rs +80 -0
  579. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/stack_map.rs +37 -0
  580. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/trap_encoding.rs +189 -0
  581. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/tunables.rs +168 -0
  582. data/ext/cargo-vendor/wasmtime-environ-21.0.1/src/vmoffsets.rs +1015 -0
  583. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/.cargo-checksum.json +1 -0
  584. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/Cargo.toml +64 -0
  585. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/build.rs +38 -0
  586. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/lib.rs +328 -0
  587. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/unix.rs +490 -0
  588. data/ext/cargo-vendor/wasmtime-fiber-21.0.1/src/windows.rs +166 -0
  589. data/ext/cargo-vendor/wasmtime-jit-debug-21.0.1/.cargo-checksum.json +1 -0
  590. data/ext/cargo-vendor/wasmtime-jit-debug-21.0.1/Cargo.toml +67 -0
  591. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/.cargo-checksum.json +1 -0
  592. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/Cargo.toml +51 -0
  593. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/lib.rs +109 -0
  594. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/libc.rs +163 -0
  595. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/miri.rs +10 -0
  596. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-21.0.1/src/win.rs +49 -0
  597. data/ext/cargo-vendor/wasmtime-slab-21.0.1/.cargo-checksum.json +1 -0
  598. data/ext/cargo-vendor/wasmtime-slab-21.0.1/Cargo.toml +21 -0
  599. data/ext/cargo-vendor/wasmtime-slab-21.0.1/src/lib.rs +498 -0
  600. data/ext/cargo-vendor/wasmtime-types-21.0.1/.cargo-checksum.json +1 -0
  601. data/ext/cargo-vendor/wasmtime-types-21.0.1/Cargo.toml +55 -0
  602. data/ext/cargo-vendor/wasmtime-types-21.0.1/src/error.rs +81 -0
  603. data/ext/cargo-vendor/wasmtime-types-21.0.1/src/lib.rs +1572 -0
  604. data/ext/cargo-vendor/wasmtime-versioned-export-macros-21.0.1/.cargo-checksum.json +1 -0
  605. data/ext/cargo-vendor/wasmtime-versioned-export-macros-21.0.1/Cargo.toml +32 -0
  606. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/.cargo-checksum.json +1 -0
  607. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/Cargo.toml +200 -0
  608. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/bindings.rs +280 -0
  609. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/ctx.rs +667 -0
  610. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/filesystem.rs +446 -0
  611. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/lib.rs +426 -0
  612. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/preview0.rs +877 -0
  613. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/src/preview1.rs +2660 -0
  614. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/api.rs +198 -0
  615. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/async_.rs +397 -0
  616. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/main.rs +91 -0
  617. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/preview1.rs +251 -0
  618. data/ext/cargo-vendor/wasmtime-wasi-21.0.1/tests/all/sync.rs +331 -0
  619. data/ext/cargo-vendor/wasmtime-winch-21.0.1/.cargo-checksum.json +1 -0
  620. data/ext/cargo-vendor/wasmtime-winch-21.0.1/Cargo.toml +81 -0
  621. data/ext/cargo-vendor/wasmtime-winch-21.0.1/src/compiler.rs +261 -0
  622. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/.cargo-checksum.json +1 -0
  623. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/Cargo.toml +46 -0
  624. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/src/lib.rs +2541 -0
  625. data/ext/cargo-vendor/wasmtime-wit-bindgen-21.0.1/src/rust.rs +421 -0
  626. data/ext/cargo-vendor/wiggle-21.0.1/.cargo-checksum.json +1 -0
  627. data/ext/cargo-vendor/wiggle-21.0.1/Cargo.toml +123 -0
  628. data/ext/cargo-vendor/wiggle-generate-21.0.1/.cargo-checksum.json +1 -0
  629. data/ext/cargo-vendor/wiggle-generate-21.0.1/Cargo.toml +66 -0
  630. data/ext/cargo-vendor/wiggle-macro-21.0.1/.cargo-checksum.json +1 -0
  631. data/ext/cargo-vendor/wiggle-macro-21.0.1/Cargo.toml +55 -0
  632. data/ext/cargo-vendor/winch-codegen-0.19.1/.cargo-checksum.json +1 -0
  633. data/ext/cargo-vendor/winch-codegen-0.19.1/Cargo.toml +76 -0
  634. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/context.rs +534 -0
  635. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/env.rs +440 -0
  636. data/ext/cargo-vendor/winch-codegen-0.19.1/src/codegen/mod.rs +882 -0
  637. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/abi.rs +291 -0
  638. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/address.rs +143 -0
  639. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/asm.rs +380 -0
  640. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/masm.rs +566 -0
  641. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/mod.rs +158 -0
  642. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/aarch64/regs.rs +161 -0
  643. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/reg.rs +73 -0
  644. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/x64/asm.rs +1423 -0
  645. data/ext/cargo-vendor/winch-codegen-0.19.1/src/isa/x64/masm.rs +1120 -0
  646. data/ext/cargo-vendor/winch-codegen-0.19.1/src/masm.rs +941 -0
  647. data/ext/cargo-vendor/winch-codegen-0.19.1/src/regalloc.rs +65 -0
  648. data/ext/cargo-vendor/winch-codegen-0.19.1/src/regset.rs +194 -0
  649. data/ext/cargo-vendor/winch-codegen-0.19.1/src/visitor.rs +2144 -0
  650. data/ext/cargo-vendor/wit-parser-0.207.0/.cargo-checksum.json +1 -0
  651. data/ext/cargo-vendor/wit-parser-0.207.0/Cargo.toml +109 -0
  652. data/ext/cargo-vendor/wit-parser-0.207.0/src/ast/resolve.rs +1442 -0
  653. data/ext/cargo-vendor/wit-parser-0.207.0/src/decoding.rs +1764 -0
  654. data/ext/cargo-vendor/wit-parser-0.207.0/src/lib.rs +777 -0
  655. data/ext/cargo-vendor/wit-parser-0.207.0/src/live.rs +126 -0
  656. data/ext/cargo-vendor/wit-parser-0.207.0/src/resolve.rs +2337 -0
  657. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/resources-multiple-returns-borrow.wit.result +5 -0
  658. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/resources-return-borrow.wit.result +5 -0
  659. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow1.wit +7 -0
  660. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow1.wit.result +5 -0
  661. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow2.wit +8 -0
  662. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow2.wit.result +5 -0
  663. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow3.wit +7 -0
  664. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow3.wit.result +5 -0
  665. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow4.wit +7 -0
  666. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow4.wit.result +5 -0
  667. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow5.wit +7 -0
  668. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow5.wit.result +5 -0
  669. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow6.wit +7 -0
  670. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow6.wit.result +5 -0
  671. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow7.wit +11 -0
  672. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow7.wit.result +5 -0
  673. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow8/deps/baz.wit +9 -0
  674. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow8/foo.wit +7 -0
  675. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/parse-fail/return-borrow8.wit.result +8 -0
  676. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-top-level-resources.wit +24 -0
  677. data/ext/cargo-vendor/wit-parser-0.207.0/tests/ui/world-top-level-resources.wit.json +231 -0
  678. data/ext/src/lib.rs +1 -0
  679. data/ext/src/ruby_api/config.rs +1 -12
  680. data/ext/src/ruby_api/engine.rs +3 -6
  681. data/ext/src/ruby_api/store.rs +68 -5
  682. data/lib/wasmtime/version.rb +1 -1
  683. metadata +1601 -1408
  684. data/ext/cargo-vendor/bincode-1.3.3/.cargo-checksum.json +0 -1
  685. data/ext/cargo-vendor/bincode-1.3.3/Cargo.toml +0 -37
  686. data/ext/cargo-vendor/bincode-1.3.3/LICENSE.md +0 -21
  687. data/ext/cargo-vendor/bincode-1.3.3/readme.md +0 -112
  688. data/ext/cargo-vendor/bincode-1.3.3/src/byteorder.rs +0 -385
  689. data/ext/cargo-vendor/bincode-1.3.3/src/config/endian.rs +0 -27
  690. data/ext/cargo-vendor/bincode-1.3.3/src/config/int.rs +0 -682
  691. data/ext/cargo-vendor/bincode-1.3.3/src/config/legacy.rs +0 -253
  692. data/ext/cargo-vendor/bincode-1.3.3/src/config/limit.rs +0 -49
  693. data/ext/cargo-vendor/bincode-1.3.3/src/config/mod.rs +0 -408
  694. data/ext/cargo-vendor/bincode-1.3.3/src/config/trailing.rs +0 -37
  695. data/ext/cargo-vendor/bincode-1.3.3/src/de/mod.rs +0 -515
  696. data/ext/cargo-vendor/bincode-1.3.3/src/de/read.rs +0 -202
  697. data/ext/cargo-vendor/bincode-1.3.3/src/error.rs +0 -115
  698. data/ext/cargo-vendor/bincode-1.3.3/src/internal.rs +0 -124
  699. data/ext/cargo-vendor/bincode-1.3.3/src/lib.rs +0 -201
  700. data/ext/cargo-vendor/bincode-1.3.3/src/ser/mod.rs +0 -772
  701. data/ext/cargo-vendor/bincode-1.3.3/tests/test.rs +0 -899
  702. data/ext/cargo-vendor/cranelift-bforest-0.107.2/.cargo-checksum.json +0 -1
  703. data/ext/cargo-vendor/cranelift-bforest-0.107.2/Cargo.toml +0 -40
  704. data/ext/cargo-vendor/cranelift-codegen-0.107.2/.cargo-checksum.json +0 -1
  705. data/ext/cargo-vendor/cranelift-codegen-0.107.2/Cargo.toml +0 -178
  706. data/ext/cargo-vendor/cranelift-codegen-0.107.2/build.rs +0 -396
  707. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/alias_analysis.rs +0 -403
  708. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/context.rs +0 -386
  709. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ctxhash.rs +0 -167
  710. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph/elaborate.rs +0 -835
  711. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph.rs +0 -838
  712. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/fx.rs +0 -105
  713. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/incremental_cache.rs +0 -256
  714. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/instructions.rs +0 -1019
  715. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/abi.rs +0 -1707
  716. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/args.rs +0 -779
  717. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit.rs +0 -3932
  718. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit_tests.rs +0 -7919
  719. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/imms.rs +0 -1218
  720. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/mod.rs +0 -3083
  721. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/regs.rs +0 -292
  722. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst.isle +0 -4218
  723. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/lower/isle.rs +0 -884
  724. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/pcc.rs +0 -565
  725. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/mod.rs +0 -432
  726. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/abi.rs +0 -1109
  727. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/args.rs +0 -1968
  728. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit.rs +0 -3466
  729. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit_tests.rs +0 -2146
  730. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/mod.rs +0 -2041
  731. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/regs.rs +0 -175
  732. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/vector.rs +0 -1162
  733. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst.isle +0 -2944
  734. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower/isle.rs +0 -625
  735. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower.isle +0 -2872
  736. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/abi.rs +0 -1047
  737. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/args.rs +0 -347
  738. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/emit.rs +0 -3646
  739. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/imms.rs +0 -202
  740. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/mod.rs +0 -3423
  741. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/regs.rs +0 -187
  742. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/abi.rs +0 -1369
  743. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/args.rs +0 -2289
  744. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit.rs +0 -4383
  745. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit_tests.rs +0 -5131
  746. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/mod.rs +0 -2798
  747. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/regs.rs +0 -276
  748. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst.isle +0 -5304
  749. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower/isle.rs +0 -1066
  750. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.isle +0 -4809
  751. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.rs +0 -339
  752. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/pcc.rs +0 -1003
  753. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/lib.rs +0 -106
  754. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/abi.rs +0 -2594
  755. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/blockorder.rs +0 -465
  756. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/isle.rs +0 -914
  757. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/lower.rs +0 -1452
  758. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/mod.rs +0 -555
  759. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/reg.rs +0 -562
  760. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/valueregs.rs +0 -132
  761. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/vcode.rs +0 -1807
  762. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/nan_canonicalization.rs +0 -110
  763. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/arithmetic.isle +0 -179
  764. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/icmp.isle +0 -197
  765. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/remove_constant_phis.rs +0 -420
  766. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/scoped_hash_map.rs +0 -310
  767. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/settings.rs +0 -591
  768. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/.cargo-checksum.json +0 -1
  769. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/Cargo.toml +0 -35
  770. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_inst.rs +0 -1784
  771. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_settings.rs +0 -508
  772. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/gen_types.rs +0 -75
  773. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/isa/riscv64.rs +0 -160
  774. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/isa/x86.rs +0 -402
  775. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/lib.rs +0 -59
  776. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/shared/settings.rs +0 -355
  777. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/srcgen.rs +0 -470
  778. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/.cargo-checksum.json +0 -1
  779. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/Cargo.toml +0 -22
  780. data/ext/cargo-vendor/cranelift-control-0.107.2/.cargo-checksum.json +0 -1
  781. data/ext/cargo-vendor/cranelift-control-0.107.2/Cargo.toml +0 -30
  782. data/ext/cargo-vendor/cranelift-entity-0.107.2/.cargo-checksum.json +0 -1
  783. data/ext/cargo-vendor/cranelift-entity-0.107.2/Cargo.toml +0 -50
  784. data/ext/cargo-vendor/cranelift-entity-0.107.2/src/lib.rs +0 -317
  785. data/ext/cargo-vendor/cranelift-frontend-0.107.2/.cargo-checksum.json +0 -1
  786. data/ext/cargo-vendor/cranelift-frontend-0.107.2/Cargo.toml +0 -69
  787. data/ext/cargo-vendor/cranelift-frontend-0.107.2/src/switch.rs +0 -654
  788. data/ext/cargo-vendor/cranelift-isle-0.107.2/.cargo-checksum.json +0 -1
  789. data/ext/cargo-vendor/cranelift-isle-0.107.2/Cargo.toml +0 -46
  790. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/codegen.rs +0 -886
  791. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/lib.rs +0 -271
  792. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/sema.rs +0 -2492
  793. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/serialize.rs +0 -846
  794. data/ext/cargo-vendor/cranelift-isle-0.107.2/src/trie_again.rs +0 -683
  795. data/ext/cargo-vendor/cranelift-native-0.107.2/.cargo-checksum.json +0 -1
  796. data/ext/cargo-vendor/cranelift-native-0.107.2/Cargo.toml +0 -45
  797. data/ext/cargo-vendor/cranelift-wasm-0.107.2/.cargo-checksum.json +0 -1
  798. data/ext/cargo-vendor/cranelift-wasm-0.107.2/Cargo.toml +0 -107
  799. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/code_translator.rs +0 -3683
  800. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/dummy.rs +0 -912
  801. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/spec.rs +0 -945
  802. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/sections_translator.rs +0 -409
  803. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/.cargo-checksum.json +0 -1
  804. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/Cargo.toml +0 -48
  805. data/ext/cargo-vendor/rb-sys-0.9.97/.cargo-checksum.json +0 -1
  806. data/ext/cargo-vendor/rb-sys-0.9.97/Cargo.toml +0 -54
  807. data/ext/cargo-vendor/rb-sys-0.9.97/build/main.rs +0 -238
  808. data/ext/cargo-vendor/rb-sys-0.9.97/build/stable_api_config.rs +0 -133
  809. data/ext/cargo-vendor/rb-sys-0.9.97/src/bindings.rs +0 -20
  810. data/ext/cargo-vendor/rb-sys-0.9.97/src/tracking_allocator.rs +0 -265
  811. data/ext/cargo-vendor/rb-sys-build-0.9.97/.cargo-checksum.json +0 -1
  812. data/ext/cargo-vendor/rb-sys-build-0.9.97/Cargo.toml +0 -62
  813. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/bindings/stable_api.rs +0 -202
  814. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/bindings.rs +0 -250
  815. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/cc.rs +0 -365
  816. data/ext/cargo-vendor/rb-sys-build-0.9.97/src/utils.rs +0 -52
  817. data/ext/cargo-vendor/wasi-common-20.0.2/.cargo-checksum.json +0 -1
  818. data/ext/cargo-vendor/wasi-common-20.0.2/Cargo.toml +0 -220
  819. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/async_.rs +0 -293
  820. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/main.rs +0 -21
  821. data/ext/cargo-vendor/wasi-common-20.0.2/tests/all/sync.rs +0 -279
  822. data/ext/cargo-vendor/wasm-encoder-0.202.0/.cargo-checksum.json +0 -1
  823. data/ext/cargo-vendor/wasm-encoder-0.202.0/Cargo.toml +0 -43
  824. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/code.rs +0 -3444
  825. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/data.rs +0 -185
  826. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/elements.rs +0 -220
  827. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/globals.rs +0 -101
  828. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/imports.rs +0 -156
  829. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/memories.rs +0 -111
  830. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/tables.rs +0 -116
  831. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/core/types.rs +0 -673
  832. data/ext/cargo-vendor/wasmparser-0.202.0/.cargo-checksum.json +0 -1
  833. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.lock +0 -744
  834. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.toml +0 -66
  835. data/ext/cargo-vendor/wasmparser-0.202.0/src/binary_reader.rs +0 -1849
  836. data/ext/cargo-vendor/wasmparser-0.202.0/src/lib.rs +0 -766
  837. data/ext/cargo-vendor/wasmparser-0.202.0/src/limits.rs +0 -64
  838. data/ext/cargo-vendor/wasmparser-0.202.0/src/parser.rs +0 -1611
  839. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/canonicals.rs +0 -120
  840. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/instances.rs +0 -163
  841. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/names.rs +0 -102
  842. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/start.rs +0 -30
  843. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/types.rs +0 -549
  844. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/code.rs +0 -146
  845. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/coredumps.rs +0 -243
  846. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/custom.rs +0 -63
  847. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/data.rs +0 -96
  848. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/dylink0.rs +0 -109
  849. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/elements.rs +0 -152
  850. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/globals.rs +0 -49
  851. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/linking.rs +0 -449
  852. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/memories.rs +0 -56
  853. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/names.rs +0 -156
  854. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/operators.rs +0 -411
  855. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/tables.rs +0 -87
  856. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/types/matches.rs +0 -277
  857. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core/types.rs +0 -1680
  858. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/core.rs +0 -41
  859. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers.rs +0 -316
  860. data/ext/cargo-vendor/wasmparser-0.202.0/src/resources.rs +0 -235
  861. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/component.rs +0 -3238
  862. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/core/canonical.rs +0 -233
  863. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/core.rs +0 -1400
  864. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/func.rs +0 -338
  865. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/names.rs +0 -929
  866. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/operators.rs +0 -4076
  867. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/types.rs +0 -4449
  868. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator.rs +0 -1619
  869. data/ext/cargo-vendor/wasmprinter-0.202.0/.cargo-checksum.json +0 -1
  870. data/ext/cargo-vendor/wasmprinter-0.202.0/Cargo.toml +0 -45
  871. data/ext/cargo-vendor/wasmprinter-0.202.0/src/lib.rs +0 -3202
  872. data/ext/cargo-vendor/wasmprinter-0.202.0/src/operator.rs +0 -1131
  873. data/ext/cargo-vendor/wasmprinter-0.202.0/tests/all.rs +0 -279
  874. data/ext/cargo-vendor/wasmtime-20.0.2/.cargo-checksum.json +0 -1
  875. data/ext/cargo-vendor/wasmtime-20.0.2/Cargo.toml +0 -268
  876. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile/code_builder.rs +0 -201
  877. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile/runtime.rs +0 -175
  878. data/ext/cargo-vendor/wasmtime-20.0.2/src/compile.rs +0 -897
  879. data/ext/cargo-vendor/wasmtime-20.0.2/src/config.rs +0 -2695
  880. data/ext/cargo-vendor/wasmtime-20.0.2/src/engine/serialization.rs +0 -849
  881. data/ext/cargo-vendor/wasmtime-20.0.2/src/engine.rs +0 -741
  882. data/ext/cargo-vendor/wasmtime-20.0.2/src/lib.rs +0 -303
  883. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/jitdump.rs +0 -66
  884. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/perfmap.rs +0 -47
  885. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent/vtune.rs +0 -80
  886. data/ext/cargo-vendor/wasmtime-20.0.2/src/profiling_agent.rs +0 -105
  887. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/code.rs +0 -102
  888. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/code_memory.rs +0 -335
  889. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/component.rs +0 -661
  890. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/host.rs +0 -439
  891. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/options.rs +0 -554
  892. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func/typed.rs +0 -2484
  893. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/func.rs +0 -747
  894. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/instance.rs +0 -804
  895. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/linker.rs +0 -786
  896. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/matching.rs +0 -217
  897. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/mod.rs +0 -756
  898. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/resource_table.rs +0 -350
  899. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/resources.rs +0 -1133
  900. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/storage.rs +0 -43
  901. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/store.rs +0 -28
  902. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/types.rs +0 -892
  903. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/component/values.rs +0 -978
  904. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/coredump.rs +0 -336
  905. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/debug.rs +0 -165
  906. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals/global.rs +0 -300
  907. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals/table.rs +0 -480
  908. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/externals.rs +0 -236
  909. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/func/typed.rs +0 -898
  910. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/func.rs +0 -2633
  911. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/anyref.rs +0 -46
  912. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/externref.rs +0 -50
  913. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/disabled/rooting.rs +0 -222
  914. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/anyref.rs +0 -472
  915. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/externref.rs +0 -644
  916. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/i31.rs +0 -345
  917. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc/enabled/rooting.rs +0 -1543
  918. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/gc.rs +0 -87
  919. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/instance.rs +0 -992
  920. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/instantiate.rs +0 -345
  921. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/limits.rs +0 -398
  922. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/linker.rs +0 -1521
  923. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/memory.rs +0 -999
  924. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/module/registry.rs +0 -354
  925. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/module.rs +0 -1295
  926. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/profiling.rs +0 -224
  927. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/resources.rs +0 -33
  928. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/signatures.rs +0 -216
  929. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/stack.rs +0 -73
  930. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/context.rs +0 -243
  931. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/data.rs +0 -289
  932. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store/func_refs.rs +0 -85
  933. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/store.rs +0 -2796
  934. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/func.rs +0 -138
  935. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/global.rs +0 -68
  936. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/memory.rs +0 -286
  937. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline/table.rs +0 -34
  938. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trampoline.rs +0 -77
  939. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/trap.rs +0 -641
  940. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/type_registry.rs +0 -632
  941. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/types/matching.rs +0 -367
  942. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/types.rs +0 -1378
  943. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/unix.rs +0 -39
  944. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/v128.rs +0 -131
  945. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/values.rs +0 -945
  946. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime/windows.rs +0 -34
  947. data/ext/cargo-vendor/wasmtime-20.0.2/src/runtime.rs +0 -112
  948. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/.cargo-checksum.json +0 -1
  949. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/Cargo.toml +0 -22
  950. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.2/src/lib.rs +0 -81
  951. data/ext/cargo-vendor/wasmtime-cache-20.0.2/.cargo-checksum.json +0 -1
  952. data/ext/cargo-vendor/wasmtime-cache-20.0.2/Cargo.toml +0 -81
  953. data/ext/cargo-vendor/wasmtime-cache-20.0.2/src/lib.rs +0 -235
  954. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/.cargo-checksum.json +0 -1
  955. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/Cargo.toml +0 -67
  956. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/src/bindgen.rs +0 -390
  957. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/src/component.rs +0 -1295
  958. data/ext/cargo-vendor/wasmtime-component-macro-20.0.2/tests/codegen.rs +0 -342
  959. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/.cargo-checksum.json +0 -1
  960. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/Cargo.toml +0 -25
  961. data/ext/cargo-vendor/wasmtime-component-util-20.0.2/src/lib.rs +0 -180
  962. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/.cargo-checksum.json +0 -1
  963. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/Cargo.toml +0 -114
  964. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/compiler/component.rs +0 -962
  965. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/compiler.rs +0 -1369
  966. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/gc.rs +0 -239
  967. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/attr.rs +0 -345
  968. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/expression.rs +0 -1252
  969. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/line_program.rs +0 -282
  970. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/mod.rs +0 -126
  971. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/unit.rs +0 -522
  972. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/transform/utils.rs +0 -187
  973. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug/write_debuginfo.rs +0 -187
  974. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/debug.rs +0 -18
  975. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/func_environ.rs +0 -2672
  976. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/gc/enabled.rs +0 -649
  977. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/gc.rs +0 -198
  978. data/ext/cargo-vendor/wasmtime-cranelift-20.0.2/src/lib.rs +0 -505
  979. data/ext/cargo-vendor/wasmtime-environ-20.0.2/.cargo-checksum.json +0 -1
  980. data/ext/cargo-vendor/wasmtime-environ-20.0.2/Cargo.lock +0 -782
  981. data/ext/cargo-vendor/wasmtime-environ-20.0.2/Cargo.toml +0 -144
  982. data/ext/cargo-vendor/wasmtime-environ-20.0.2/examples/factc.rs +0 -205
  983. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/address_map.rs +0 -72
  984. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/mod.rs +0 -389
  985. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/module_artifacts.rs +0 -300
  986. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/compile/trap_encoding.rs +0 -69
  987. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/compiler.rs +0 -19
  988. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/dfg.rs +0 -690
  989. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/info.rs +0 -672
  990. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/translate/adapt.rs +0 -459
  991. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/translate.rs +0 -965
  992. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/types/resources.rs +0 -234
  993. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component/types.rs +0 -1972
  994. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/component.rs +0 -103
  995. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/demangling.rs +0 -28
  996. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/core_types.rs +0 -24
  997. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/signature.rs +0 -135
  998. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/trampoline.rs +0 -3233
  999. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/transcode.rs +0 -89
  1000. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact/traps.rs +0 -115
  1001. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/fact.rs +0 -711
  1002. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/lib.rs +0 -70
  1003. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module.rs +0 -780
  1004. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_artifacts.rs +0 -145
  1005. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_environ.rs +0 -1288
  1006. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/module_types.rs +0 -122
  1007. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/scopevec.rs +0 -78
  1008. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/stack_map.rs +0 -36
  1009. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/trap_encoding.rs +0 -188
  1010. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/tunables.rs +0 -158
  1011. data/ext/cargo-vendor/wasmtime-environ-20.0.2/src/vmoffsets.rs +0 -952
  1012. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/.cargo-checksum.json +0 -1
  1013. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/Cargo.toml +0 -63
  1014. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/build.rs +0 -26
  1015. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/lib.rs +0 -328
  1016. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/unix.rs +0 -265
  1017. data/ext/cargo-vendor/wasmtime-fiber-20.0.2/src/windows.rs +0 -166
  1018. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/.cargo-checksum.json +0 -1
  1019. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.2/Cargo.toml +0 -67
  1020. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/.cargo-checksum.json +0 -1
  1021. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/Cargo.toml +0 -47
  1022. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/lib.rs +0 -108
  1023. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/libc.rs +0 -149
  1024. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/miri.rs +0 -10
  1025. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.2/src/win.rs +0 -45
  1026. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/.cargo-checksum.json +0 -1
  1027. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/Cargo.toml +0 -147
  1028. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/build.rs +0 -24
  1029. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/arch/aarch64.rs +0 -76
  1030. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/arch/x86_64.rs +0 -41
  1031. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/async_yield.rs +0 -35
  1032. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component/libcalls.rs +0 -571
  1033. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component/resources.rs +0 -351
  1034. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/component.rs +0 -860
  1035. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/cow.rs +0 -888
  1036. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/debug_builtins.rs +0 -59
  1037. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/export.rs +0 -108
  1038. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/disabled.rs +0 -23
  1039. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/drc.rs +0 -963
  1040. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/externref.rs +0 -115
  1041. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled/free_list.rs +0 -767
  1042. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/enabled.rs +0 -18
  1043. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/gc_ref.rs +0 -486
  1044. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/gc_runtime.rs +0 -503
  1045. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/host_data.rs +0 -81
  1046. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc/i31.rs +0 -86
  1047. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/gc.rs +0 -244
  1048. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/imports.rs +0 -27
  1049. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/on_demand.rs +0 -217
  1050. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/gc_heap_pool.rs +0 -92
  1051. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/index_allocator.rs +0 -704
  1052. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/memory_pool.rs +0 -996
  1053. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/stack_pool.rs +0 -242
  1054. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling/table_pool.rs +0 -231
  1055. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator/pooling.rs +0 -699
  1056. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance/allocator.rs +0 -780
  1057. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/instance.rs +0 -1566
  1058. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/lib.rs +0 -289
  1059. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/libcalls.rs +0 -777
  1060. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/memory.rs +0 -751
  1061. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mmap.rs +0 -214
  1062. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mmap_vec.rs +0 -201
  1063. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/module_id.rs +0 -43
  1064. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/enabled.rs +0 -213
  1065. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/mod.rs +0 -54
  1066. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/pkru.rs +0 -104
  1067. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/mpk/sys.rs +0 -113
  1068. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/send_sync_ptr.rs +0 -106
  1069. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/store_box.rs +0 -35
  1070. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/capi.rs +0 -189
  1071. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/mmap.rs +0 -111
  1072. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/mod.rs +0 -24
  1073. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/traphandlers.rs +0 -55
  1074. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/custom/vm.rs +0 -108
  1075. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/mmap.rs +0 -94
  1076. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/mod.rs +0 -10
  1077. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/miri/traphandlers.rs +0 -47
  1078. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/mod.rs +0 -33
  1079. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/machports.rs +0 -416
  1080. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/mmap.rs +0 -151
  1081. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/mod.rs +0 -21
  1082. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/signals.rs +0 -401
  1083. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/unwind.rs +0 -149
  1084. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/unix/vm.rs +0 -208
  1085. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/mmap.rs +0 -216
  1086. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/mod.rs +0 -6
  1087. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/sys/windows/traphandlers.rs +0 -104
  1088. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/table.rs +0 -851
  1089. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/parking_spot.rs +0 -621
  1090. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/shared_memory.rs +0 -230
  1091. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/threads/shared_memory_disabled.rs +0 -100
  1092. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/backtrace.rs +0 -265
  1093. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/coredump_disabled.rs +0 -16
  1094. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers/coredump_enabled.rs +0 -40
  1095. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/traphandlers.rs +0 -785
  1096. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/vmcontext/vm_host_func_context.rs +0 -137
  1097. data/ext/cargo-vendor/wasmtime-runtime-20.0.2/src/vmcontext.rs +0 -1293
  1098. data/ext/cargo-vendor/wasmtime-slab-20.0.2/.cargo-checksum.json +0 -1
  1099. data/ext/cargo-vendor/wasmtime-slab-20.0.2/Cargo.toml +0 -21
  1100. data/ext/cargo-vendor/wasmtime-slab-20.0.2/src/lib.rs +0 -493
  1101. data/ext/cargo-vendor/wasmtime-types-20.0.2/.cargo-checksum.json +0 -1
  1102. data/ext/cargo-vendor/wasmtime-types-20.0.2/Cargo.toml +0 -36
  1103. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/error.rs +0 -59
  1104. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/lib.rs +0 -832
  1105. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.2/.cargo-checksum.json +0 -1
  1106. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.2/Cargo.toml +0 -32
  1107. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/.cargo-checksum.json +0 -1
  1108. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/Cargo.toml +0 -194
  1109. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/bindings.rs +0 -283
  1110. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/ctx.rs +0 -659
  1111. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/filesystem.rs +0 -433
  1112. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/lib.rs +0 -404
  1113. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/preview0.rs +0 -879
  1114. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/src/preview1.rs +0 -2601
  1115. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/api.rs +0 -194
  1116. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/async_.rs +0 -397
  1117. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/main.rs +0 -91
  1118. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/preview1.rs +0 -251
  1119. data/ext/cargo-vendor/wasmtime-wasi-20.0.2/tests/all/sync.rs +0 -333
  1120. data/ext/cargo-vendor/wasmtime-winch-20.0.2/.cargo-checksum.json +0 -1
  1121. data/ext/cargo-vendor/wasmtime-winch-20.0.2/Cargo.toml +0 -81
  1122. data/ext/cargo-vendor/wasmtime-winch-20.0.2/src/compiler.rs +0 -257
  1123. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/.cargo-checksum.json +0 -1
  1124. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/Cargo.toml +0 -41
  1125. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/lib.rs +0 -2213
  1126. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.2/src/rust.rs +0 -421
  1127. data/ext/cargo-vendor/wiggle-20.0.2/.cargo-checksum.json +0 -1
  1128. data/ext/cargo-vendor/wiggle-20.0.2/Cargo.toml +0 -122
  1129. data/ext/cargo-vendor/wiggle-generate-20.0.2/.cargo-checksum.json +0 -1
  1130. data/ext/cargo-vendor/wiggle-generate-20.0.2/Cargo.toml +0 -65
  1131. data/ext/cargo-vendor/wiggle-generate-20.0.2/LICENSE +0 -220
  1132. data/ext/cargo-vendor/wiggle-macro-20.0.2/.cargo-checksum.json +0 -1
  1133. data/ext/cargo-vendor/wiggle-macro-20.0.2/Cargo.toml +0 -55
  1134. data/ext/cargo-vendor/wiggle-macro-20.0.2/LICENSE +0 -220
  1135. data/ext/cargo-vendor/winch-codegen-0.18.2/.cargo-checksum.json +0 -1
  1136. data/ext/cargo-vendor/winch-codegen-0.18.2/Cargo.toml +0 -81
  1137. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/context.rs +0 -534
  1138. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/env.rs +0 -435
  1139. data/ext/cargo-vendor/winch-codegen-0.18.2/src/codegen/mod.rs +0 -756
  1140. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/abi.rs +0 -291
  1141. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/address.rs +0 -144
  1142. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/asm.rs +0 -252
  1143. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/masm.rs +0 -573
  1144. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/mod.rs +0 -154
  1145. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/aarch64/regs.rs +0 -149
  1146. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/reg.rs +0 -86
  1147. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/asm.rs +0 -1423
  1148. data/ext/cargo-vendor/winch-codegen-0.18.2/src/isa/x64/masm.rs +0 -1256
  1149. data/ext/cargo-vendor/winch-codegen-0.18.2/src/masm.rs +0 -947
  1150. data/ext/cargo-vendor/winch-codegen-0.18.2/src/regalloc.rs +0 -65
  1151. data/ext/cargo-vendor/winch-codegen-0.18.2/src/regset.rs +0 -194
  1152. data/ext/cargo-vendor/winch-codegen-0.18.2/src/visitor.rs +0 -2149
  1153. data/ext/cargo-vendor/wit-parser-0.202.0/.cargo-checksum.json +0 -1
  1154. data/ext/cargo-vendor/wit-parser-0.202.0/Cargo.toml +0 -101
  1155. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast/resolve.rs +0 -1443
  1156. data/ext/cargo-vendor/wit-parser-0.202.0/src/decoding.rs +0 -1764
  1157. data/ext/cargo-vendor/wit-parser-0.202.0/src/lib.rs +0 -765
  1158. data/ext/cargo-vendor/wit-parser-0.202.0/src/live.rs +0 -111
  1159. data/ext/cargo-vendor/wit-parser-0.202.0/src/resolve.rs +0 -2240
  1160. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-multiple-returns-borrow.wit.json +0 -74
  1161. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-return-borrow.wit.json +0 -69
  1162. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-top-level-resources.wit +0 -24
  1163. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/world-top-level-resources.wit.json +0 -240
  1164. data/ext/src/ruby_api/config/tracked_memory_creator.rs +0 -82
  1165. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/LICENSE +0 -0
  1166. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/README.md +0 -0
  1167. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/lib.rs +0 -0
  1168. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/map.rs +0 -0
  1169. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/node.rs +0 -0
  1170. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/path.rs +0 -0
  1171. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/pool.rs +0 -0
  1172. /data/ext/cargo-vendor/{cranelift-bforest-0.107.2 → cranelift-bforest-0.108.1}/src/set.rs +0 -0
  1173. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/LICENSE +0 -0
  1174. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/README.md +0 -0
  1175. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/benches/x64-evex-encoding.rs +0 -0
  1176. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/binemit/mod.rs +0 -0
  1177. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/binemit/stack_map.rs +0 -0
  1178. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/bitset.rs +0 -0
  1179. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/cfg_printer.rs +0 -0
  1180. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/constant_hash.rs +0 -0
  1181. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/cursor.rs +0 -0
  1182. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/data_value.rs +0 -0
  1183. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/dbg.rs +0 -0
  1184. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/dce.rs +0 -0
  1185. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/dominator_tree.rs +0 -0
  1186. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/egraph/cost.rs +0 -0
  1187. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/flowgraph.rs +0 -0
  1188. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/inst_predicates.rs +0 -0
  1189. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/atomic_rmw_op.rs +0 -0
  1190. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/builder.rs +0 -0
  1191. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/condcodes.rs +0 -0
  1192. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/constant.rs +0 -0
  1193. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/dfg.rs +0 -0
  1194. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/dynamic_type.rs +0 -0
  1195. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/entities.rs +0 -0
  1196. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/extfunc.rs +0 -0
  1197. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/extname.rs +0 -0
  1198. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/function.rs +0 -0
  1199. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/globalvalue.rs +0 -0
  1200. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/immediates.rs +0 -0
  1201. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/jumptable.rs +0 -0
  1202. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/known_symbol.rs +0 -0
  1203. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/layout.rs +0 -0
  1204. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/libcall.rs +0 -0
  1205. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/memflags.rs +0 -0
  1206. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/memtype.rs +0 -0
  1207. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/mod.rs +0 -0
  1208. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/pcc.rs +0 -0
  1209. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/progpoint.rs +0 -0
  1210. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/sourceloc.rs +0 -0
  1211. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/stackslot.rs +0 -0
  1212. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/trapcode.rs +0 -0
  1213. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/ir/types.rs +0 -0
  1214. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  1215. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/inst/unwind.rs +0 -0
  1216. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/inst_neon.isle +0 -0
  1217. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1218. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/lower.isle +0 -0
  1219. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/lower.rs +0 -0
  1220. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1221. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/mod.rs +0 -0
  1222. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/aarch64/settings.rs +0 -0
  1223. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/call_conv.rs +0 -0
  1224. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst/encode.rs +0 -0
  1225. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst/imms.rs +0 -0
  1226. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  1227. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst/unwind.rs +0 -0
  1228. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/inst_vector.isle +0 -0
  1229. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1230. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/lower.rs +0 -0
  1231. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/mod.rs +0 -0
  1232. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/riscv64/settings.rs +0 -0
  1233. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/inst/emit_tests.rs +0 -0
  1234. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1235. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/inst/unwind.rs +0 -0
  1236. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/inst.isle +0 -0
  1237. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1238. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/lower/isle.rs +0 -0
  1239. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/lower.isle +0 -0
  1240. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/lower.rs +0 -0
  1241. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/mod.rs +0 -0
  1242. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/s390x/settings.rs +0 -0
  1243. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/unwind/systemv.rs +0 -0
  1244. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/unwind/winx64.rs +0 -0
  1245. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/unwind.rs +0 -0
  1246. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/encoding/evex.rs +0 -0
  1247. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/encoding/mod.rs +0 -0
  1248. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/encoding/rex.rs +0 -0
  1249. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/encoding/vex.rs +0 -0
  1250. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/inst/emit_state.rs +0 -0
  1251. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1252. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1253. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/inst/unwind.rs +0 -0
  1254. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1255. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/mod.rs +0 -0
  1256. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isa/x64/settings.rs +0 -0
  1257. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/isle_prelude.rs +0 -0
  1258. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/iterators.rs +0 -0
  1259. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/legalizer/globalvalue.rs +0 -0
  1260. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/legalizer/mod.rs +0 -0
  1261. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/loop_analysis.rs +0 -0
  1262. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/buffer.rs +0 -0
  1263. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/compile.rs +0 -0
  1264. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/helpers.rs +0 -0
  1265. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/inst_common.rs +0 -0
  1266. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/machinst/pcc.rs +0 -0
  1267. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/README.md +0 -0
  1268. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/bitops.isle +0 -0
  1269. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/cprop.isle +0 -0
  1270. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/extends.isle +0 -0
  1271. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/generated_code.rs +0 -0
  1272. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/remat.isle +0 -0
  1273. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/selects.isle +0 -0
  1274. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/shifts.isle +0 -0
  1275. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/spaceship.isle +0 -0
  1276. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/spectre.isle +0 -0
  1277. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts/vector.isle +0 -0
  1278. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/opts.rs +0 -0
  1279. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/prelude.isle +0 -0
  1280. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/prelude_lower.isle +0 -0
  1281. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/prelude_opt.isle +0 -0
  1282. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/print_errors.rs +0 -0
  1283. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/result.rs +0 -0
  1284. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/souper_harvest.rs +0 -0
  1285. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/timing.rs +0 -0
  1286. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/unionfind.rs +0 -0
  1287. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/unreachable_code.rs +0 -0
  1288. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/value_label.rs +0 -0
  1289. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/verifier/mod.rs +0 -0
  1290. /data/ext/cargo-vendor/{cranelift-codegen-0.107.2 → cranelift-codegen-0.108.1}/src/write.rs +0 -0
  1291. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/LICENSE +0 -0
  1292. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/README.md +0 -0
  1293. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/formats.rs +0 -0
  1294. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/instructions.rs +0 -0
  1295. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/isa.rs +0 -0
  1296. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/mod.rs +0 -0
  1297. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/operands.rs +0 -0
  1298. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/settings.rs +0 -0
  1299. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/types.rs +0 -0
  1300. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/cdsl/typevar.rs +0 -0
  1301. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/constant_hash.rs +0 -0
  1302. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/error.rs +0 -0
  1303. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/isa/arm64.rs +0 -0
  1304. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/isa/mod.rs +0 -0
  1305. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/isa/s390x.rs +0 -0
  1306. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/entities.rs +0 -0
  1307. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/formats.rs +0 -0
  1308. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/immediates.rs +0 -0
  1309. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/instructions.rs +0 -0
  1310. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/mod.rs +0 -0
  1311. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/shared/types.rs +0 -0
  1312. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.107.2 → cranelift-codegen-meta-0.108.1}/src/unique_table.rs +0 -0
  1313. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/LICENSE +0 -0
  1314. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/README.md +0 -0
  1315. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/src/constant_hash.rs +0 -0
  1316. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/src/constants.rs +0 -0
  1317. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.107.2 → cranelift-codegen-shared-0.108.1}/src/lib.rs +0 -0
  1318. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/LICENSE +0 -0
  1319. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/README.md +0 -0
  1320. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/src/chaos.rs +0 -0
  1321. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/src/lib.rs +0 -0
  1322. /data/ext/cargo-vendor/{cranelift-control-0.107.2 → cranelift-control-0.108.1}/src/zero_sized.rs +0 -0
  1323. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/LICENSE +0 -0
  1324. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/README.md +0 -0
  1325. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/boxed_slice.rs +0 -0
  1326. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/iter.rs +0 -0
  1327. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/keys.rs +0 -0
  1328. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/list.rs +0 -0
  1329. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/map.rs +0 -0
  1330. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/packed_option.rs +0 -0
  1331. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/primary.rs +0 -0
  1332. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/set.rs +0 -0
  1333. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/sparse.rs +0 -0
  1334. /data/ext/cargo-vendor/{cranelift-entity-0.107.2 → cranelift-entity-0.108.1}/src/unsigned.rs +0 -0
  1335. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/LICENSE +0 -0
  1336. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/README.md +0 -0
  1337. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/src/frontend.rs +0 -0
  1338. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/src/lib.rs +0 -0
  1339. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/src/ssa.rs +0 -0
  1340. /data/ext/cargo-vendor/{cranelift-frontend-0.107.2 → cranelift-frontend-0.108.1}/src/variable.rs +0 -0
  1341. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/README.md +0 -0
  1342. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/build.rs +0 -0
  1343. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/bad_converters.isle +0 -0
  1344. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1345. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1346. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/error1.isle +0 -0
  1347. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/extra_parens.isle +0 -0
  1348. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/impure_expression.isle +0 -0
  1349. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/impure_rhs.isle +0 -0
  1350. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1351. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/fail/multi_prio.isle +0 -0
  1352. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/borrows.isle +0 -0
  1353. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/borrows_main.rs +0 -0
  1354. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/iflets.isle +0 -0
  1355. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/iflets_main.rs +0 -0
  1356. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/multi_constructor.isle +0 -0
  1357. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/multi_constructor_main.rs +0 -0
  1358. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/multi_extractor.isle +0 -0
  1359. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/multi_extractor_main.rs +0 -0
  1360. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/test.isle +0 -0
  1361. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/link/test_main.rs +0 -0
  1362. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/bound_var.isle +0 -0
  1363. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/construct_and_extract.isle +0 -0
  1364. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/conversions.isle +0 -0
  1365. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/conversions_extern.isle +0 -0
  1366. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/let.isle +0 -0
  1367. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/nodebug.isle +0 -0
  1368. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1369. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/test2.isle +0 -0
  1370. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/test3.isle +0 -0
  1371. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/test4.isle +0 -0
  1372. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/pass/tutorial.isle +0 -0
  1373. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/run/iconst.isle +0 -0
  1374. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/run/iconst_main.rs +0 -0
  1375. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/run/let_shadowing.isle +0 -0
  1376. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/isle_examples/run/let_shadowing_main.rs +0 -0
  1377. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/ast.rs +0 -0
  1378. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/compile.rs +0 -0
  1379. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/error.rs +0 -0
  1380. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/lexer.rs +0 -0
  1381. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/log.rs +0 -0
  1382. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/overlap.rs +0 -0
  1383. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/src/parser.rs +0 -0
  1384. /data/ext/cargo-vendor/{cranelift-isle-0.107.2 → cranelift-isle-0.108.1}/tests/run_tests.rs +0 -0
  1385. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.108.1}/LICENSE +0 -0
  1386. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.108.1}/README.md +0 -0
  1387. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.108.1}/src/lib.rs +0 -0
  1388. /data/ext/cargo-vendor/{cranelift-native-0.107.2 → cranelift-native-0.108.1}/src/riscv.rs +0 -0
  1389. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/LICENSE +0 -0
  1390. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/README.md +0 -0
  1391. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/code_translator/bounds_checks.rs +0 -0
  1392. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/environ/mod.rs +0 -0
  1393. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/func_translator.rs +0 -0
  1394. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/heap.rs +0 -0
  1395. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/lib.rs +0 -0
  1396. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/module_translator.rs +0 -0
  1397. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/state.rs +0 -0
  1398. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/table.rs +0 -0
  1399. /data/ext/cargo-vendor/{cranelift-wasm-0.107.2 → cranelift-wasm-0.108.1}/src/translation_utils.rs +0 -0
  1400. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/README.md +0 -0
  1401. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/clocks.rs +0 -0
  1402. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/lib.rs +0 -0
  1403. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/src/noop_scheduler.rs +0 -0
  1404. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/clocks.rs +0 -0
  1405. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/common/mod.rs +0 -0
  1406. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/random.rs +0 -0
  1407. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.21 → deterministic-wasi-ctx-0.1.22}/tests/scheduler.rs +0 -0
  1408. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/LICENSE-APACHE +0 -0
  1409. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/LICENSE-MIT +0 -0
  1410. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/bin/release.sh +0 -0
  1411. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/build/features.rs +0 -0
  1412. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/build/version.rs +0 -0
  1413. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/readme.md +0 -0
  1414. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/hidden.rs +0 -0
  1415. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/lib.rs +0 -0
  1416. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/macros.rs +0 -0
  1417. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/memory.rs +0 -0
  1418. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/ruby_abi_version.rs +0 -0
  1419. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/special_consts.rs +0 -0
  1420. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/compiled.c +0 -0
  1421. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/compiled.rs +0 -0
  1422. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_2_6.rs +0 -0
  1423. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_2_7.rs +0 -0
  1424. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_0.rs +0 -0
  1425. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_1.rs +0 -0
  1426. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_2.rs +0 -0
  1427. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api/ruby_3_3.rs +0 -0
  1428. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/stable_api.rs +0 -0
  1429. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/symbol.rs +0 -0
  1430. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/utils.rs +0 -0
  1431. /data/ext/cargo-vendor/{rb-sys-0.9.97 → rb-sys-0.9.100}/src/value_type.rs +0 -0
  1432. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/LICENSE-APACHE +0 -0
  1433. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/LICENSE-MIT +0 -0
  1434. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/bindings/sanitizer.rs +0 -0
  1435. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/bindings/wrapper.h +0 -0
  1436. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/lib.rs +0 -0
  1437. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/flags.rs +0 -0
  1438. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/library.rs +0 -0
  1439. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config/search_path.rs +0 -0
  1440. /data/ext/cargo-vendor/{rb-sys-build-0.9.97 → rb-sys-build-0.9.100}/src/rb_config.rs +0 -0
  1441. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/LICENSE +0 -0
  1442. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/README.md +0 -0
  1443. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/clocks.rs +0 -0
  1444. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/ctx.rs +0 -0
  1445. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/dir.rs +0 -0
  1446. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/error.rs +0 -0
  1447. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/file.rs +0 -0
  1448. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/lib.rs +0 -0
  1449. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/pipe.rs +0 -0
  1450. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/random.rs +0 -0
  1451. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sched/subscription.rs +0 -0
  1452. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sched.rs +0 -0
  1453. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/snapshots/mod.rs +0 -0
  1454. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/snapshots/preview_0.rs +0 -0
  1455. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/snapshots/preview_1/error.rs +0 -0
  1456. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/snapshots/preview_1.rs +0 -0
  1457. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/string_array.rs +0 -0
  1458. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/clocks.rs +0 -0
  1459. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/dir.rs +0 -0
  1460. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/file.rs +0 -0
  1461. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/mod.rs +0 -0
  1462. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/net.rs +0 -0
  1463. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/sched/unix.rs +0 -0
  1464. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/sched/windows.rs +0 -0
  1465. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/sched.rs +0 -0
  1466. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/sync/stdio.rs +0 -0
  1467. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/table.rs +0 -0
  1468. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/dir.rs +0 -0
  1469. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/file.rs +0 -0
  1470. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/mod.rs +0 -0
  1471. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/net.rs +0 -0
  1472. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/sched/unix.rs +0 -0
  1473. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/sched/windows.rs +0 -0
  1474. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/sched.rs +0 -0
  1475. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/src/tokio/stdio.rs +0 -0
  1476. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/witx/preview0/typenames.witx +0 -0
  1477. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/witx/preview0/wasi_unstable.witx +0 -0
  1478. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/witx/preview1/typenames.witx +0 -0
  1479. /data/ext/cargo-vendor/{wasi-common-20.0.2 → wasi-common-21.0.1}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1480. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/LICENSE +0 -0
  1481. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/README.md +0 -0
  1482. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/aliases.rs +0 -0
  1483. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/builder.rs +0 -0
  1484. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/canonicals.rs +0 -0
  1485. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/components.rs +0 -0
  1486. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/exports.rs +0 -0
  1487. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/imports.rs +0 -0
  1488. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/instances.rs +0 -0
  1489. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/modules.rs +0 -0
  1490. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/names.rs +0 -0
  1491. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/start.rs +0 -0
  1492. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component/types.rs +0 -0
  1493. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/component.rs +0 -0
  1494. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/custom.rs +0 -0
  1495. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/dump.rs +0 -0
  1496. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/exports.rs +0 -0
  1497. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/functions.rs +0 -0
  1498. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/linking.rs +0 -0
  1499. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/names.rs +0 -0
  1500. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/producers.rs +0 -0
  1501. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/start.rs +0 -0
  1502. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core/tags.rs +0 -0
  1503. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/core.rs +0 -0
  1504. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/lib.rs +0 -0
  1505. /data/ext/cargo-vendor/{wasm-encoder-0.202.0 → wasm-encoder-0.207.0}/src/raw.rs +0 -0
  1506. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/README.md +0 -0
  1507. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/benches/benchmark.rs +0 -0
  1508. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/examples/simple.rs +0 -0
  1509. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/component/aliases.rs +0 -0
  1510. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/component/exports.rs +0 -0
  1511. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/component/imports.rs +0 -0
  1512. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/component.rs +0 -0
  1513. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/branch_hinting.rs +0 -0
  1514. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/exports.rs +0 -0
  1515. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/functions.rs +0 -0
  1516. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/imports.rs +0 -0
  1517. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/init.rs +0 -0
  1518. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/producers.rs +0 -0
  1519. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/src/readers/core/tags.rs +0 -0
  1520. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmparser-0.207.0}/tests/big-module.rs +0 -0
  1521. /data/ext/cargo-vendor/{wasmparser-0.202.0 → wasmprinter-0.207.0}/LICENSE +0 -0
  1522. /data/ext/cargo-vendor/{wasmprinter-0.202.0 → wasmprinter-0.207.0}/README.md +0 -0
  1523. /data/ext/cargo-vendor/{wasmprinter-0.202.0 → wasmtime-21.0.1}/LICENSE +0 -0
  1524. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/README.md +0 -0
  1525. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/proptest-regressions → wasmtime-21.0.1/proptest-regressions/runtime/vm}/instance/allocator/pooling/memory_pool.txt +0 -0
  1526. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/src/runtime/gc/disabled/i31.rs +0 -0
  1527. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/src/runtime/gc/disabled.rs +0 -0
  1528. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/src/runtime/gc/enabled.rs +0 -0
  1529. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-21.0.1}/src/runtime/uninhabited.rs +0 -0
  1530. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/arch/mod.rs +0 -0
  1531. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/arch/riscv64.rs +0 -0
  1532. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/arch/s390x.S +0 -0
  1533. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/arch/s390x.rs +0 -0
  1534. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/helpers.c +0 -0
  1535. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/mpk/disabled.rs +0 -0
  1536. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/custom/unwind.rs +0 -0
  1537. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/miri/unwind.rs +0 -0
  1538. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/miri/vm.rs +0 -0
  1539. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/unix/macos_traphandlers.rs +0 -0
  1540. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/windows/unwind.rs +0 -0
  1541. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/sys/windows/vm.rs +0 -0
  1542. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2/src → wasmtime-21.0.1/src/runtime/vm}/threads/mod.rs +0 -0
  1543. /data/ext/cargo-vendor/{wasmtime-20.0.2 → wasmtime-cache-21.0.1}/LICENSE +0 -0
  1544. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/build.rs +0 -0
  1545. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/config/tests.rs +0 -0
  1546. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/config.rs +0 -0
  1547. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/tests.rs +0 -0
  1548. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/worker/tests/system_time_stub.rs +0 -0
  1549. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/worker/tests.rs +0 -0
  1550. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/src/worker.rs +0 -0
  1551. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cache-21.0.1}/tests/cache_write_default_config.rs +0 -0
  1552. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/build.rs +0 -0
  1553. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/src/lib.rs +0 -0
  1554. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/char.wit +0 -0
  1555. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/conventions.wit +0 -0
  1556. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/dead-code.wit +0 -0
  1557. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/direct-import.wit +0 -0
  1558. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/empty.wit +0 -0
  1559. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/flags.wit +0 -0
  1560. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/floats.wit +0 -0
  1561. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/function-new.wit +0 -0
  1562. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/integers.wit +0 -0
  1563. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/lists.wit +0 -0
  1564. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/many-arguments.wit +0 -0
  1565. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/multi-return.wit +0 -0
  1566. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1567. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1568. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/multiversion/root.wit +0 -0
  1569. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/records.wit +0 -0
  1570. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/rename.wit +0 -0
  1571. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/resources-export.wit +0 -0
  1572. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/resources-import.wit +0 -0
  1573. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/share-types.wit +0 -0
  1574. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/simple-functions.wit +0 -0
  1575. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/simple-lists.wit +0 -0
  1576. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/simple-wasi.wit +0 -0
  1577. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/small-anonymous.wit +0 -0
  1578. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/smoke-default.wit +0 -0
  1579. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/smoke-export.wit +0 -0
  1580. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/smoke.wit +0 -0
  1581. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/strings.wit +0 -0
  1582. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/unversioned-foo.wit +0 -0
  1583. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/use-paths.wit +0 -0
  1584. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/variants.wit +0 -0
  1585. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/wat.wit +0 -0
  1586. /data/ext/cargo-vendor/{wasmtime-component-macro-20.0.2 → wasmtime-component-macro-21.0.1}/tests/codegen/worlds-with-types.wit +0 -0
  1587. /data/ext/cargo-vendor/{wasmtime-cache-20.0.2 → wasmtime-cranelift-21.0.1}/LICENSE +0 -0
  1588. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/SECURITY.md +0 -0
  1589. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/builder.rs +0 -0
  1590. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/compiled_function.rs +0 -0
  1591. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/debug/transform/address_transform.rs +0 -0
  1592. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/debug/transform/range_info_builder.rs +0 -0
  1593. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/debug/transform/refs.rs +0 -0
  1594. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/debug/transform/simulate.rs +0 -0
  1595. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/gc/disabled.rs +0 -0
  1596. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/isa_builder.rs +0 -0
  1597. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-cranelift-21.0.1}/src/obj.rs +0 -0
  1598. /data/ext/cargo-vendor/{wasmtime-cranelift-20.0.2 → wasmtime-environ-21.0.1}/LICENSE +0 -0
  1599. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/address_map.rs +0 -0
  1600. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/builtin.rs +0 -0
  1601. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/component/artifacts.rs +0 -0
  1602. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/component/translate/inline.rs +0 -0
  1603. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/component/vmcomponent_offsets.rs +0 -0
  1604. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/gc.rs +0 -0
  1605. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/obj.rs +0 -0
  1606. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-environ-21.0.1}/src/ref_bits.rs +0 -0
  1607. /data/ext/cargo-vendor/{wasmtime-environ-20.0.2 → wasmtime-fiber-21.0.1}/LICENSE +0 -0
  1608. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/aarch64.rs +0 -0
  1609. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/arm.rs +0 -0
  1610. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/riscv64.rs +0 -0
  1611. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/s390x.S +0 -0
  1612. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/x86.rs +0 -0
  1613. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/unix/x86_64.rs +0 -0
  1614. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-fiber-21.0.1}/src/windows.c +0 -0
  1615. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-21.0.1}/README.md +0 -0
  1616. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-21.0.1}/src/gdb_jit_int.rs +0 -0
  1617. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-21.0.1}/src/lib.rs +0 -0
  1618. /data/ext/cargo-vendor/{wasmtime-jit-debug-20.0.2 → wasmtime-jit-debug-21.0.1}/src/perf_jitdump.rs +0 -0
  1619. /data/ext/cargo-vendor/{wasmtime-fiber-20.0.2 → wasmtime-types-21.0.1}/LICENSE +0 -0
  1620. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-20.0.2 → wasmtime-versioned-export-macros-21.0.1}/src/lib.rs +0 -0
  1621. /data/ext/cargo-vendor/{wasmtime-runtime-20.0.2 → wasmtime-wasi-21.0.1}/LICENSE +0 -0
  1622. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/README.md +0 -0
  1623. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/clocks/host.rs +0 -0
  1624. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/clocks.rs +0 -0
  1625. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/error.rs +0 -0
  1626. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/clocks.rs +0 -0
  1627. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/env.rs +0 -0
  1628. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/exit.rs +0 -0
  1629. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/filesystem/sync.rs +0 -0
  1630. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/filesystem.rs +0 -0
  1631. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/instance_network.rs +0 -0
  1632. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/io.rs +0 -0
  1633. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/mod.rs +0 -0
  1634. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/network.rs +0 -0
  1635. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/random.rs +0 -0
  1636. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/tcp.rs +0 -0
  1637. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/tcp_create_socket.rs +0 -0
  1638. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/udp.rs +0 -0
  1639. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/host/udp_create_socket.rs +0 -0
  1640. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/ip_name_lookup.rs +0 -0
  1641. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/network.rs +0 -0
  1642. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/pipe.rs +0 -0
  1643. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/poll.rs +0 -0
  1644. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/random.rs +0 -0
  1645. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/runtime.rs +0 -0
  1646. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/stdio/worker_thread_stdin.rs +0 -0
  1647. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/stdio.rs +0 -0
  1648. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/stream.rs +0 -0
  1649. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/tcp.rs +0 -0
  1650. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/udp.rs +0 -0
  1651. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/src/write_stream.rs +0 -0
  1652. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/tests/process_stdin.rs +0 -0
  1653. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/command-extended.wit +0 -0
  1654. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/command.wit +0 -0
  1655. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/environment.wit +0 -0
  1656. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/exit.wit +0 -0
  1657. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/imports.wit +0 -0
  1658. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/run.wit +0 -0
  1659. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/stdio.wit +0 -0
  1660. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/cli/terminal.wit +0 -0
  1661. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1662. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/clocks/wall-clock.wit +0 -0
  1663. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/clocks/world.wit +0 -0
  1664. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/filesystem/preopens.wit +0 -0
  1665. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/filesystem/types.wit +0 -0
  1666. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/filesystem/world.wit +0 -0
  1667. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/http/handler.wit +0 -0
  1668. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/http/proxy.wit +0 -0
  1669. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/http/types.wit +0 -0
  1670. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/io/error.wit +0 -0
  1671. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/io/poll.wit +0 -0
  1672. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/io/streams.wit +0 -0
  1673. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/io/world.wit +0 -0
  1674. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/random/insecure-seed.wit +0 -0
  1675. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/random/insecure.wit +0 -0
  1676. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/random/random.wit +0 -0
  1677. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/random/world.wit +0 -0
  1678. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/instance-network.wit +0 -0
  1679. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1680. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/network.wit +0 -0
  1681. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1682. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/tcp.wit +0 -0
  1683. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1684. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/udp.wit +0 -0
  1685. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/deps/sockets/world.wit +0 -0
  1686. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/wit/test.wit +0 -0
  1687. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/witx/preview0/typenames.witx +0 -0
  1688. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/witx/preview0/wasi_unstable.witx +0 -0
  1689. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/witx/preview1/typenames.witx +0 -0
  1690. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wasmtime-wasi-21.0.1}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1691. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-21.0.1}/LICENSE +0 -0
  1692. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-21.0.1}/src/builder.rs +0 -0
  1693. /data/ext/cargo-vendor/{wasmtime-winch-20.0.2 → wasmtime-winch-21.0.1}/src/lib.rs +0 -0
  1694. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-20.0.2 → wasmtime-wit-bindgen-21.0.1}/src/source.rs +0 -0
  1695. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-20.0.2 → wasmtime-wit-bindgen-21.0.1}/src/types.rs +0 -0
  1696. /data/ext/cargo-vendor/{wasmtime-types-20.0.2 → wiggle-21.0.1}/LICENSE +0 -0
  1697. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/README.md +0 -0
  1698. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/borrow.rs +0 -0
  1699. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/error.rs +0 -0
  1700. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/guest_type.rs +0 -0
  1701. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/lib.rs +0 -0
  1702. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/region.rs +0 -0
  1703. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-21.0.1}/src/wasmtime.rs +0 -0
  1704. /data/ext/cargo-vendor/{wasmtime-wasi-20.0.2 → wiggle-generate-21.0.1}/LICENSE +0 -0
  1705. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/README.md +0 -0
  1706. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/codegen_settings.rs +0 -0
  1707. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/config.rs +0 -0
  1708. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/funcs.rs +0 -0
  1709. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/lib.rs +0 -0
  1710. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/lifetimes.rs +0 -0
  1711. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/module_trait.rs +0 -0
  1712. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/names.rs +0 -0
  1713. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/error.rs +0 -0
  1714. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/flags.rs +0 -0
  1715. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/handle.rs +0 -0
  1716. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/mod.rs +0 -0
  1717. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/record.rs +0 -0
  1718. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/types/variant.rs +0 -0
  1719. /data/ext/cargo-vendor/{wiggle-generate-20.0.2 → wiggle-generate-21.0.1}/src/wasmtime.rs +0 -0
  1720. /data/ext/cargo-vendor/{wiggle-20.0.2 → wiggle-macro-21.0.1}/LICENSE +0 -0
  1721. /data/ext/cargo-vendor/{wiggle-macro-20.0.2 → wiggle-macro-21.0.1}/src/lib.rs +0 -0
  1722. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/LICENSE +0 -0
  1723. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/build.rs +0 -0
  1724. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/abi/local.rs +0 -0
  1725. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/abi/mod.rs +0 -0
  1726. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/codegen/bounds.rs +0 -0
  1727. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/codegen/builtin.rs +0 -0
  1728. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/codegen/call.rs +0 -0
  1729. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/codegen/control.rs +0 -0
  1730. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/frame/mod.rs +0 -0
  1731. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/mod.rs +0 -0
  1732. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/x64/abi.rs +0 -0
  1733. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/x64/address.rs +0 -0
  1734. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/x64/mod.rs +0 -0
  1735. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/isa/x64/regs.rs +0 -0
  1736. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/lib.rs +0 -0
  1737. /data/ext/cargo-vendor/{winch-codegen-0.18.2 → winch-codegen-0.19.1}/src/stack.rs +0 -0
  1738. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/README.md +0 -0
  1739. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/abi.rs +0 -0
  1740. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/ast/lex.rs +0 -0
  1741. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/ast/toposort.rs +0 -0
  1742. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/ast.rs +0 -0
  1743. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/docs.rs +0 -0
  1744. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/serde_.rs +0 -0
  1745. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/src/sizealign.rs +0 -0
  1746. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/all.rs +0 -0
  1747. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/comments.wit +0 -0
  1748. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/comments.wit.json +0 -0
  1749. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/complex-include/deps/bar/root.wit +0 -0
  1750. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/complex-include/deps/baz/root.wit +0 -0
  1751. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/complex-include/root.wit +0 -0
  1752. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/complex-include.wit.json +0 -0
  1753. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/cross-package-resource/deps/foo/foo.wit +0 -0
  1754. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/cross-package-resource/foo.wit +0 -0
  1755. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/cross-package-resource.wit.json +0 -0
  1756. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/diamond1/deps/dep1/types.wit +0 -0
  1757. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/diamond1/deps/dep2/types.wit +0 -0
  1758. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/diamond1/join.wit +0 -0
  1759. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/diamond1.wit.json +0 -0
  1760. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/disambiguate-diamond/shared1.wit +0 -0
  1761. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/disambiguate-diamond/shared2.wit +0 -0
  1762. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/disambiguate-diamond/world.wit +0 -0
  1763. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/disambiguate-diamond.wit.json +0 -0
  1764. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/empty.wit +0 -0
  1765. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/empty.wit.json +0 -0
  1766. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -0
  1767. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/corp/saas.wit +0 -0
  1768. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -0
  1769. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -0
  1770. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -0
  1771. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -0
  1772. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -0
  1773. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps/root.wit +0 -0
  1774. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +0 -0
  1775. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/corp/saas.wit +0 -0
  1776. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +0 -0
  1777. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +0 -0
  1778. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +0 -0
  1779. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +0 -0
  1780. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +0 -0
  1781. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +0 -0
  1782. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union/root.wit +0 -0
  1783. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps-union.wit.json +0 -0
  1784. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/foreign-deps.wit.json +0 -0
  1785. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/functions.wit +0 -0
  1786. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/functions.wit.json +0 -0
  1787. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/ignore-files-deps/deps/bar/types.wit +0 -0
  1788. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/ignore-files-deps/deps/ignore-me.txt +0 -0
  1789. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/ignore-files-deps/world.wit +0 -0
  1790. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/ignore-files-deps.wit.json +0 -0
  1791. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/import-export-overlap1.wit +0 -0
  1792. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/import-export-overlap1.wit.json +0 -0
  1793. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/import-export-overlap2.wit +0 -0
  1794. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/import-export-overlap2.wit.json +0 -0
  1795. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/include-reps.wit +0 -0
  1796. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/include-reps.wit.json +0 -0
  1797. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kebab-name-include-with.wit +0 -0
  1798. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kebab-name-include-with.wit.json +0 -0
  1799. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/a.wit +0 -0
  1800. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/deps/b/root.wit +0 -0
  1801. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/deps/c.wit +0 -0
  1802. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/deps/d.wat +0 -0
  1803. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  1804. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/kinds-of-deps.wit.json +0 -0
  1805. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/many-names/a.wit +0 -0
  1806. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/many-names/b.wit +0 -0
  1807. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/many-names.wit.json +0 -0
  1808. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file/bar.wit +0 -0
  1809. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file/cycle-a.wit +0 -0
  1810. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file/cycle-b.wit +0 -0
  1811. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file/foo.wit +0 -0
  1812. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/multi-file.wit.json +0 -0
  1813. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +0 -0
  1814. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/name-both-resource-and-type/foo.wit +0 -0
  1815. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/name-both-resource-and-type.wit.json +0 -0
  1816. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax1.wit +0 -0
  1817. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax1.wit.json +0 -0
  1818. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax3.wit +0 -0
  1819. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax3.wit.json +0 -0
  1820. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax4.wit +0 -0
  1821. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/package-syntax4.wit.json +0 -0
  1822. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  1823. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/alias-no-type.wit.result +0 -0
  1824. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/async.wit.result +0 -0
  1825. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/async1.wit.result +0 -0
  1826. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-function.wit +0 -0
  1827. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-function.wit.result +0 -0
  1828. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-function2.wit +0 -0
  1829. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-function2.wit.result +0 -0
  1830. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include1.wit +0 -0
  1831. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include1.wit.result +0 -0
  1832. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include2.wit +0 -0
  1833. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include2.wit.result +0 -0
  1834. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include3.wit +0 -0
  1835. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-include3.wit.result +0 -0
  1836. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-list.wit +0 -0
  1837. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  1838. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg1/root.wit +0 -0
  1839. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg1.wit.result +0 -0
  1840. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +0 -0
  1841. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg2/root.wit +0 -0
  1842. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg2.wit.result +0 -0
  1843. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  1844. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg3/root.wit +0 -0
  1845. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg3.wit.result +0 -0
  1846. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -0
  1847. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg4/root.wit +0 -0
  1848. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg4.wit.result +0 -0
  1849. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -0
  1850. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg5/root.wit +0 -0
  1851. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg5.wit.result +0 -0
  1852. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  1853. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg6/root.wit +0 -0
  1854. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-pkg6.wit.result +0 -0
  1855. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource1.wit +0 -0
  1856. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource1.wit.result +0 -0
  1857. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource10.wit +0 -0
  1858. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource10.wit.result +0 -0
  1859. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource11.wit +0 -0
  1860. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource11.wit.result +0 -0
  1861. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource12.wit +0 -0
  1862. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource12.wit.result +0 -0
  1863. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource13.wit +0 -0
  1864. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource13.wit.result +0 -0
  1865. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource14.wit +0 -0
  1866. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource14.wit.result +0 -0
  1867. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +0 -0
  1868. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource15/foo.wit +0 -0
  1869. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource15.wit.result +0 -0
  1870. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource2.wit +0 -0
  1871. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource2.wit.result +0 -0
  1872. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource3.wit +0 -0
  1873. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource3.wit.result +0 -0
  1874. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource4.wit +0 -0
  1875. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource4.wit.result +0 -0
  1876. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource5.wit +0 -0
  1877. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource5.wit.result +0 -0
  1878. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource6.wit +0 -0
  1879. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource6.wit.result +0 -0
  1880. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource7.wit +0 -0
  1881. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource7.wit.result +0 -0
  1882. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource8.wit +0 -0
  1883. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource8.wit.result +0 -0
  1884. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource9.wit +0 -0
  1885. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-resource9.wit.result +0 -0
  1886. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-world-type1.wit +0 -0
  1887. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/bad-world-type1.wit.result +0 -0
  1888. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/conflicting-package/a.wit +0 -0
  1889. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/conflicting-package/b.wit +0 -0
  1890. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/conflicting-package.wit.result +0 -0
  1891. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle.wit +0 -0
  1892. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle.wit.result +0 -0
  1893. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle2.wit +0 -0
  1894. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle2.wit.result +0 -0
  1895. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle3.wit +0 -0
  1896. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle3.wit.result +0 -0
  1897. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle4.wit +0 -0
  1898. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle4.wit.result +0 -0
  1899. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle5.wit +0 -0
  1900. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/cycle5.wit.result +0 -0
  1901. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/dangling-type.wit +0 -0
  1902. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  1903. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-function-params.wit +0 -0
  1904. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-function-params.wit.result +0 -0
  1905. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-functions.wit +0 -0
  1906. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-functions.wit.result +0 -0
  1907. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface.wit +0 -0
  1908. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface.wit.result +0 -0
  1909. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface2/foo.wit +0 -0
  1910. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface2/foo2.wit +0 -0
  1911. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-interface2.wit.result +0 -0
  1912. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-type.wit +0 -0
  1913. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/duplicate-type.wit.result +0 -0
  1914. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/empty-enum.wit +0 -0
  1915. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/empty-enum.wit.result +0 -0
  1916. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/empty-variant1.wit +0 -0
  1917. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/empty-variant1.wit.result +0 -0
  1918. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/export-twice.wit +0 -0
  1919. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/export-twice.wit.result +0 -0
  1920. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export1.wit +0 -0
  1921. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export1.wit.result +0 -0
  1922. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export2.wit +0 -0
  1923. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export2.wit.result +0 -0
  1924. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export3.wit +0 -0
  1925. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export3.wit.result +0 -0
  1926. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export4.wit +0 -0
  1927. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export4.wit.result +0 -0
  1928. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export5.wit +0 -0
  1929. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-and-export5.wit.result +0 -0
  1930. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-twice.wit +0 -0
  1931. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/import-twice.wit.result +0 -0
  1932. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-cycle.wit +0 -0
  1933. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-cycle.wit.result +0 -0
  1934. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +0 -0
  1935. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-foreign/root.wit +0 -0
  1936. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-foreign.wit.result +0 -0
  1937. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-with-id.wit +0 -0
  1938. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-with-id.wit.result +0 -0
  1939. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-with-on-id.wit +0 -0
  1940. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/include-with-on-id.wit.result +0 -0
  1941. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  1942. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  1943. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-type-reference.wit +0 -0
  1944. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -0
  1945. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-type-reference2.wit +0 -0
  1946. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -0
  1947. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit +0 -0
  1948. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +0 -0
  1949. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/kebab-name-include.wit +0 -0
  1950. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/kebab-name-include.wit.result +0 -0
  1951. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/keyword.wit +0 -0
  1952. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/keyword.wit.result +0 -0
  1953. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/missing-package.wit +0 -0
  1954. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/missing-package.wit.result +0 -0
  1955. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/multiple-package-docs/a.wit +0 -0
  1956. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/multiple-package-docs/b.wit +0 -0
  1957. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/multiple-package-docs.wit.result +0 -0
  1958. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +0 -0
  1959. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +0 -0
  1960. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +0 -0
  1961. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +0 -0
  1962. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/non-existance-world-include/root.wit +0 -0
  1963. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/non-existance-world-include.wit.result +0 -0
  1964. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -0
  1965. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle/root.wit +0 -0
  1966. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle.wit.result +0 -0
  1967. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -0
  1968. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -0
  1969. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -0
  1970. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -0
  1971. /data/ext/cargo-vendor/{wit-parser-0.202.0/tests/ui → wit-parser-0.207.0/tests/ui/parse-fail}/resources-multiple-returns-borrow.wit +0 -0
  1972. /data/ext/cargo-vendor/{wit-parser-0.202.0/tests/ui → wit-parser-0.207.0/tests/ui/parse-fail}/resources-return-borrow.wit +0 -0
  1973. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +0 -0
  1974. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +0 -0
  1975. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/type-and-resource-same-name.wit.result +0 -0
  1976. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/undefined-typed.wit +0 -0
  1977. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/undefined-typed.wit.result +0 -0
  1978. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unknown-interface.wit +0 -0
  1979. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unknown-interface.wit.result +0 -0
  1980. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface1.wit +0 -0
  1981. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -0
  1982. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface2.wit +0 -0
  1983. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -0
  1984. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface3.wit +0 -0
  1985. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -0
  1986. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface4.wit +0 -0
  1987. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -0
  1988. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use1.wit +0 -0
  1989. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use1.wit.result +0 -0
  1990. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -0
  1991. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  1992. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use10.wit.result +0 -0
  1993. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use2.wit +0 -0
  1994. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use2.wit.result +0 -0
  1995. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use3.wit +0 -0
  1996. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use3.wit.result +0 -0
  1997. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use7.wit +0 -0
  1998. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use7.wit.result +0 -0
  1999. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use8.wit +0 -0
  2000. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use8.wit.result +0 -0
  2001. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use9.wit +0 -0
  2002. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unresolved-use9.wit.result +0 -0
  2003. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
  2004. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +0 -0
  2005. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-and-include-world/root.wit +0 -0
  2006. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-and-include-world.wit.result +0 -0
  2007. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict.wit +0 -0
  2008. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict.wit.result +0 -0
  2009. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict2.wit +0 -0
  2010. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict2.wit.result +0 -0
  2011. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict3.wit +0 -0
  2012. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-conflict3.wit.result +0 -0
  2013. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-cycle1.wit +0 -0
  2014. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-cycle1.wit.result +0 -0
  2015. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-cycle4.wit +0 -0
  2016. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-cycle4.wit.result +0 -0
  2017. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-shadow1.wit +0 -0
  2018. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-shadow1.wit.result +0 -0
  2019. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-world/deps/bar/baz.wit +0 -0
  2020. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-world/root.wit +0 -0
  2021. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/use-world.wit.result +0 -0
  2022. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-interface-clash.wit +0 -0
  2023. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-interface-clash.wit.result +0 -0
  2024. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-same-fields2.wit +0 -0
  2025. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-same-fields2.wit.result +0 -0
  2026. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-same-fields3.wit +0 -0
  2027. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-same-fields3.wit.result +0 -0
  2028. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-top-level-func.wit +0 -0
  2029. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-top-level-func.wit.result +0 -0
  2030. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-top-level-func2.wit +0 -0
  2031. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -0
  2032. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/random.wit +0 -0
  2033. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/random.wit.json +0 -0
  2034. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-empty.wit +0 -0
  2035. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-empty.wit.json +0 -0
  2036. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-multiple-returns-own.wit +0 -0
  2037. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-multiple-returns-own.wit.json +0 -0
  2038. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-multiple.wit +0 -0
  2039. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-multiple.wit.json +0 -0
  2040. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-return-own.wit +0 -0
  2041. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources-return-own.wit.json +0 -0
  2042. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources.wit +0 -0
  2043. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources.wit.json +0 -0
  2044. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources1.wit +0 -0
  2045. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/resources1.wit.json +0 -0
  2046. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/same-name-import-export.wit +0 -0
  2047. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/same-name-import-export.wit.json +0 -0
  2048. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/shared-types.wit +0 -0
  2049. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/shared-types.wit.json +0 -0
  2050. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/simple-wasm-text.wat +0 -0
  2051. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/simple-wasm-text.wit.json +0 -0
  2052. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/stress-export-elaborate.wit +0 -0
  2053. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/stress-export-elaborate.wit.json +0 -0
  2054. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/type-then-eof.wit +0 -0
  2055. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/type-then-eof.wit.json +0 -0
  2056. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/types.wit +0 -0
  2057. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/types.wit.json +0 -0
  2058. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/union-fuzz-1.wit +0 -0
  2059. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/union-fuzz-1.wit.json +0 -0
  2060. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/union-fuzz-2.wit +0 -0
  2061. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/union-fuzz-2.wit.json +0 -0
  2062. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/use-chain.wit +0 -0
  2063. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/use-chain.wit.json +0 -0
  2064. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/use.wit +0 -0
  2065. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/use.wit.json +0 -0
  2066. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/versions/deps/a1/foo.wit +0 -0
  2067. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/versions/deps/a2/foo.wit +0 -0
  2068. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/versions/foo.wit +0 -0
  2069. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/versions.wit.json +0 -0
  2070. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/wasi.wit +0 -0
  2071. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/wasi.wit.json +0 -0
  2072. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-diamond.wit +0 -0
  2073. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-diamond.wit.json +0 -0
  2074. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-iface-no-collide.wit +0 -0
  2075. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-iface-no-collide.wit.json +0 -0
  2076. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import1.wit +0 -0
  2077. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import1.wit.json +0 -0
  2078. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import2.wit +0 -0
  2079. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import2.wit.json +0 -0
  2080. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import3.wit +0 -0
  2081. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-implicit-import3.wit.json +0 -0
  2082. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-same-fields4.wit +0 -0
  2083. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-same-fields4.wit.json +0 -0
  2084. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-top-level-funcs.wit +0 -0
  2085. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/world-top-level-funcs.wit.json +0 -0
  2086. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/worlds-union-dedup.wit +0 -0
  2087. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/worlds-union-dedup.wit.json +0 -0
  2088. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/worlds-with-types.wit +0 -0
  2089. /data/ext/cargo-vendor/{wit-parser-0.202.0 → wit-parser-0.207.0}/tests/ui/worlds-with-types.wit.json +0 -0
@@ -0,0 +1,2888 @@
1
+ use crate::{gc, BuiltinFunctionSignatures};
2
+ use cranelift_codegen::cursor::FuncCursor;
3
+ use cranelift_codegen::ir;
4
+ use cranelift_codegen::ir::condcodes::*;
5
+ use cranelift_codegen::ir::immediates::{Imm64, Offset32};
6
+ use cranelift_codegen::ir::pcc::Fact;
7
+ use cranelift_codegen::ir::types::*;
8
+ use cranelift_codegen::ir::{ArgumentPurpose, Function, InstBuilder, MemFlags};
9
+ use cranelift_codegen::isa::{TargetFrontendConfig, TargetIsa};
10
+ use cranelift_entity::{EntityRef, PrimaryMap, SecondaryMap};
11
+ use cranelift_frontend::FunctionBuilder;
12
+ use cranelift_frontend::Variable;
13
+ use cranelift_wasm::{
14
+ CallIndirectSiteIndex, EngineOrModuleTypeIndex, FuncIndex, FuncTranslationState, GlobalIndex,
15
+ GlobalVariable, Heap, HeapData, HeapStyle, MemoryIndex, TableData, TableIndex, TableSize,
16
+ TargetEnvironment, TypeIndex, WasmHeapTopType, WasmHeapType, WasmResult,
17
+ };
18
+ use std::mem;
19
+ use wasmparser::Operator;
20
+ use wasmtime_environ::{
21
+ BuiltinFunctionIndex, MemoryPlan, MemoryStyle, Module, ModuleTranslation, ModuleTypesBuilder,
22
+ PtrSize, TableStyle, Tunables, TypeConvert, VMOffsets, WASM_PAGE_SIZE,
23
+ };
24
+ use wasmtime_environ::{FUNCREF_INIT_BIT, FUNCREF_MASK};
25
+
26
+ /// A struct with an `Option<ir::FuncRef>` member for every builtin
27
+ /// function, to de-duplicate constructing/getting its function.
28
+ pub(crate) struct BuiltinFunctions {
29
+ types: BuiltinFunctionSignatures,
30
+
31
+ builtins:
32
+ [Option<ir::FuncRef>; BuiltinFunctionIndex::builtin_functions_total_number() as usize],
33
+ }
34
+
35
+ impl BuiltinFunctions {
36
+ fn new(isa: &dyn TargetIsa) -> Self {
37
+ Self {
38
+ types: BuiltinFunctionSignatures::new(isa),
39
+ builtins: [None; BuiltinFunctionIndex::builtin_functions_total_number() as usize],
40
+ }
41
+ }
42
+
43
+ fn load_builtin(&mut self, func: &mut Function, index: BuiltinFunctionIndex) -> ir::FuncRef {
44
+ let cache = &mut self.builtins[index.index() as usize];
45
+ if let Some(f) = cache {
46
+ return *f;
47
+ }
48
+ let signature = func.import_signature(self.types.signature(index));
49
+ let name =
50
+ ir::ExternalName::User(func.declare_imported_user_function(ir::UserExternalName {
51
+ namespace: crate::NS_WASMTIME_BUILTIN,
52
+ index: index.index(),
53
+ }));
54
+ let f = func.import_function(ir::ExtFuncData {
55
+ name,
56
+ signature,
57
+ colocated: true,
58
+ });
59
+ *cache = Some(f);
60
+ f
61
+ }
62
+ }
63
+
64
+ // Generate helper methods on `BuiltinFunctions` above for each named builtin
65
+ // as well.
66
+ macro_rules! declare_function_signatures {
67
+ ($(
68
+ $( #[$attr:meta] )*
69
+ $name:ident( $( $pname:ident: $param:ident ),* ) $( -> $result:ident )?;
70
+ )*) => {
71
+ $(impl BuiltinFunctions {
72
+ $( #[$attr] )*
73
+ pub(crate) fn $name(&mut self, func: &mut Function) -> ir::FuncRef {
74
+ self.load_builtin(func, BuiltinFunctionIndex::$name())
75
+ }
76
+ })*
77
+ };
78
+ }
79
+ wasmtime_environ::foreach_builtin_function!(declare_function_signatures);
80
+
81
+ /// The `FuncEnvironment` implementation for use by the `ModuleEnvironment`.
82
+ pub struct FuncEnvironment<'module_environment> {
83
+ isa: &'module_environment (dyn TargetIsa + 'module_environment),
84
+ module: &'module_environment Module,
85
+ types: &'module_environment ModuleTypesBuilder,
86
+
87
+ #[cfg(feature = "wmemcheck")]
88
+ translation: &'module_environment ModuleTranslation<'module_environment>,
89
+
90
+ /// Heaps implementing WebAssembly linear memories.
91
+ heaps: PrimaryMap<Heap, HeapData>,
92
+
93
+ /// Cranelift tables we have created to implement Wasm tables.
94
+ tables: SecondaryMap<TableIndex, Option<TableData>>,
95
+
96
+ /// The Cranelift global holding the vmctx address.
97
+ vmctx: Option<ir::GlobalValue>,
98
+
99
+ /// The PCC memory type describing the vmctx layout, if we're
100
+ /// using PCC.
101
+ pcc_vmctx_memtype: Option<ir::MemoryType>,
102
+
103
+ /// Caches of signatures for builtin functions.
104
+ pub(crate) builtin_functions: BuiltinFunctions,
105
+
106
+ /// Offsets to struct fields accessed by JIT code.
107
+ pub(crate) offsets: VMOffsets<u8>,
108
+
109
+ tunables: &'module_environment Tunables,
110
+
111
+ /// A function-local variable which stores the cached value of the amount of
112
+ /// fuel remaining to execute. If used this is modified frequently so it's
113
+ /// stored locally as a variable instead of always referenced from the field
114
+ /// in `*const VMRuntimeLimits`
115
+ fuel_var: cranelift_frontend::Variable,
116
+
117
+ /// A function-local variable which caches the value of `*const
118
+ /// VMRuntimeLimits` for this function's vmctx argument. This pointer is stored
119
+ /// in the vmctx itself, but never changes for the lifetime of the function,
120
+ /// so if we load it up front we can continue to use it throughout.
121
+ vmruntime_limits_ptr: cranelift_frontend::Variable,
122
+
123
+ /// A cached epoch deadline value, when performing epoch-based
124
+ /// interruption. Loaded from `VMRuntimeLimits` and reloaded after
125
+ /// any yield.
126
+ epoch_deadline_var: cranelift_frontend::Variable,
127
+
128
+ /// A cached pointer to the per-Engine epoch counter, when
129
+ /// performing epoch-based interruption. Initialized in the
130
+ /// function prologue. We prefer to use a variable here rather
131
+ /// than reload on each check because it's better to let the
132
+ /// regalloc keep it in a register if able; if not, it can always
133
+ /// spill, and this isn't any worse than reloading each time.
134
+ epoch_ptr_var: cranelift_frontend::Variable,
135
+
136
+ fuel_consumed: i64,
137
+
138
+ #[cfg(feature = "wmemcheck")]
139
+ wmemcheck: bool,
140
+
141
+ /// The current call-indirect-cache index.
142
+ pub call_indirect_index: usize,
143
+ }
144
+
145
+ impl<'module_environment> FuncEnvironment<'module_environment> {
146
+ pub fn new(
147
+ isa: &'module_environment (dyn TargetIsa + 'module_environment),
148
+ translation: &'module_environment ModuleTranslation<'module_environment>,
149
+ types: &'module_environment ModuleTypesBuilder,
150
+ tunables: &'module_environment Tunables,
151
+ wmemcheck: bool,
152
+ call_indirect_start: usize,
153
+ ) -> Self {
154
+ let builtin_functions = BuiltinFunctions::new(isa);
155
+
156
+ // Avoid unused warning in default build.
157
+ #[cfg(not(feature = "wmemcheck"))]
158
+ let _ = wmemcheck;
159
+
160
+ Self {
161
+ isa,
162
+ module: &translation.module,
163
+ types,
164
+ heaps: PrimaryMap::default(),
165
+ tables: SecondaryMap::default(),
166
+ vmctx: None,
167
+ pcc_vmctx_memtype: None,
168
+ builtin_functions,
169
+ offsets: VMOffsets::new(isa.pointer_bytes(), &translation.module),
170
+ tunables,
171
+ fuel_var: Variable::new(0),
172
+ epoch_deadline_var: Variable::new(0),
173
+ epoch_ptr_var: Variable::new(0),
174
+ vmruntime_limits_ptr: Variable::new(0),
175
+
176
+ // Start with at least one fuel being consumed because even empty
177
+ // functions should consume at least some fuel.
178
+ fuel_consumed: 1,
179
+
180
+ call_indirect_index: call_indirect_start,
181
+
182
+ #[cfg(feature = "wmemcheck")]
183
+ wmemcheck,
184
+ #[cfg(feature = "wmemcheck")]
185
+ translation,
186
+ }
187
+ }
188
+
189
+ pub(crate) fn pointer_type(&self) -> ir::Type {
190
+ self.isa.pointer_type()
191
+ }
192
+
193
+ pub(crate) fn vmctx(&mut self, func: &mut Function) -> ir::GlobalValue {
194
+ self.vmctx.unwrap_or_else(|| {
195
+ let vmctx = func.create_global_value(ir::GlobalValueData::VMContext);
196
+ if self.isa.flags().enable_pcc() {
197
+ // Create a placeholder memtype for the vmctx; we'll
198
+ // add fields to it as we lazily create HeapData
199
+ // structs and global values.
200
+ let vmctx_memtype = func.create_memory_type(ir::MemoryTypeData::Struct {
201
+ size: 0,
202
+ fields: vec![],
203
+ });
204
+
205
+ self.pcc_vmctx_memtype = Some(vmctx_memtype);
206
+ func.global_value_facts[vmctx] = Some(Fact::Mem {
207
+ ty: vmctx_memtype,
208
+ min_offset: 0,
209
+ max_offset: 0,
210
+ nullable: false,
211
+ });
212
+ }
213
+
214
+ self.vmctx = Some(vmctx);
215
+ vmctx
216
+ })
217
+ }
218
+
219
+ pub(crate) fn vmctx_val(&mut self, pos: &mut FuncCursor<'_>) -> ir::Value {
220
+ let pointer_type = self.pointer_type();
221
+ let vmctx = self.vmctx(&mut pos.func);
222
+ pos.ins().global_value(pointer_type, vmctx)
223
+ }
224
+
225
+ fn get_table_copy_func(
226
+ &mut self,
227
+ func: &mut Function,
228
+ dst_table_index: TableIndex,
229
+ src_table_index: TableIndex,
230
+ ) -> (ir::FuncRef, usize, usize) {
231
+ let sig = self.builtin_functions.table_copy(func);
232
+ (
233
+ sig,
234
+ dst_table_index.as_u32() as usize,
235
+ src_table_index.as_u32() as usize,
236
+ )
237
+ }
238
+
239
+ #[cfg(feature = "threads")]
240
+ fn get_memory_atomic_wait(
241
+ &mut self,
242
+ func: &mut Function,
243
+ memory_index: MemoryIndex,
244
+ ty: ir::Type,
245
+ ) -> (ir::FuncRef, usize) {
246
+ match ty {
247
+ I32 => (
248
+ self.builtin_functions.memory_atomic_wait32(func),
249
+ memory_index.index(),
250
+ ),
251
+ I64 => (
252
+ self.builtin_functions.memory_atomic_wait64(func),
253
+ memory_index.index(),
254
+ ),
255
+ x => panic!("get_memory_atomic_wait unsupported type: {:?}", x),
256
+ }
257
+ }
258
+
259
+ fn get_global_location(
260
+ &mut self,
261
+ func: &mut ir::Function,
262
+ index: GlobalIndex,
263
+ ) -> (ir::GlobalValue, i32) {
264
+ let pointer_type = self.pointer_type();
265
+ let vmctx = self.vmctx(func);
266
+ if let Some(def_index) = self.module.defined_global_index(index) {
267
+ let offset = i32::try_from(self.offsets.vmctx_vmglobal_definition(def_index)).unwrap();
268
+ (vmctx, offset)
269
+ } else {
270
+ let from_offset = self.offsets.vmctx_vmglobal_import_from(index);
271
+ let global = func.create_global_value(ir::GlobalValueData::Load {
272
+ base: vmctx,
273
+ offset: Offset32::new(i32::try_from(from_offset).unwrap()),
274
+ global_type: pointer_type,
275
+ flags: MemFlags::trusted().with_readonly(),
276
+ });
277
+ (global, 0)
278
+ }
279
+ }
280
+
281
+ fn declare_vmruntime_limits_ptr(&mut self, builder: &mut FunctionBuilder<'_>) {
282
+ // We load the `*const VMRuntimeLimits` value stored within vmctx at the
283
+ // head of the function and reuse the same value across the entire
284
+ // function. This is possible since we know that the pointer never
285
+ // changes for the lifetime of the function.
286
+ let pointer_type = self.pointer_type();
287
+ builder.declare_var(self.vmruntime_limits_ptr, pointer_type);
288
+ let vmctx = self.vmctx(builder.func);
289
+ let base = builder.ins().global_value(pointer_type, vmctx);
290
+ let offset = i32::try_from(self.offsets.vmctx_runtime_limits()).unwrap();
291
+ let interrupt_ptr = builder
292
+ .ins()
293
+ .load(pointer_type, ir::MemFlags::trusted(), base, offset);
294
+ builder.def_var(self.vmruntime_limits_ptr, interrupt_ptr);
295
+ }
296
+
297
+ fn fuel_function_entry(&mut self, builder: &mut FunctionBuilder<'_>) {
298
+ // On function entry we load the amount of fuel into a function-local
299
+ // `self.fuel_var` to make fuel modifications fast locally. This cache
300
+ // is then periodically flushed to the Store-defined location in
301
+ // `VMRuntimeLimits` later.
302
+ builder.declare_var(self.fuel_var, ir::types::I64);
303
+ self.fuel_load_into_var(builder);
304
+ self.fuel_check(builder);
305
+ }
306
+
307
+ fn fuel_function_exit(&mut self, builder: &mut FunctionBuilder<'_>) {
308
+ // On exiting the function we need to be sure to save the fuel we have
309
+ // cached locally in `self.fuel_var` back into the Store-defined
310
+ // location.
311
+ self.fuel_save_from_var(builder);
312
+ }
313
+
314
+ fn fuel_before_op(
315
+ &mut self,
316
+ op: &Operator<'_>,
317
+ builder: &mut FunctionBuilder<'_>,
318
+ reachable: bool,
319
+ ) {
320
+ if !reachable {
321
+ // In unreachable code we shouldn't have any leftover fuel we
322
+ // haven't accounted for since the reason for us to become
323
+ // unreachable should have already added it to `self.fuel_var`.
324
+ debug_assert_eq!(self.fuel_consumed, 0);
325
+ return;
326
+ }
327
+
328
+ self.fuel_consumed += match op {
329
+ // Nop and drop generate no code, so don't consume fuel for them.
330
+ Operator::Nop | Operator::Drop => 0,
331
+
332
+ // Control flow may create branches, but is generally cheap and
333
+ // free, so don't consume fuel. Note the lack of `if` since some
334
+ // cost is incurred with the conditional check.
335
+ Operator::Block { .. }
336
+ | Operator::Loop { .. }
337
+ | Operator::Unreachable
338
+ | Operator::Return
339
+ | Operator::Else
340
+ | Operator::End => 0,
341
+
342
+ // everything else, just call it one operation.
343
+ _ => 1,
344
+ };
345
+
346
+ match op {
347
+ // Exiting a function (via a return or unreachable) or otherwise
348
+ // entering a different function (via a call) means that we need to
349
+ // update the fuel consumption in `VMRuntimeLimits` because we're
350
+ // about to move control out of this function itself and the fuel
351
+ // may need to be read.
352
+ //
353
+ // Before this we need to update the fuel counter from our own cost
354
+ // leading up to this function call, and then we can store
355
+ // `self.fuel_var` into `VMRuntimeLimits`.
356
+ Operator::Unreachable
357
+ | Operator::Return
358
+ | Operator::CallIndirect { .. }
359
+ | Operator::Call { .. }
360
+ | Operator::ReturnCall { .. }
361
+ | Operator::ReturnCallIndirect { .. } => {
362
+ self.fuel_increment_var(builder);
363
+ self.fuel_save_from_var(builder);
364
+ }
365
+
366
+ // To ensure all code preceding a loop is only counted once we
367
+ // update the fuel variable on entry.
368
+ Operator::Loop { .. }
369
+
370
+ // Entering into an `if` block means that the edge we take isn't
371
+ // known until runtime, so we need to update our fuel consumption
372
+ // before we take the branch.
373
+ | Operator::If { .. }
374
+
375
+ // Control-flow instructions mean that we're moving to the end/exit
376
+ // of a block somewhere else. That means we need to update the fuel
377
+ // counter since we're effectively terminating our basic block.
378
+ | Operator::Br { .. }
379
+ | Operator::BrIf { .. }
380
+ | Operator::BrTable { .. }
381
+
382
+ // Exiting a scope means that we need to update the fuel
383
+ // consumption because there are multiple ways to exit a scope and
384
+ // this is the only time we have to account for instructions
385
+ // executed so far.
386
+ | Operator::End
387
+
388
+ // This is similar to `end`, except that it's only the terminator
389
+ // for an `if` block. The same reasoning applies though in that we
390
+ // are terminating a basic block and need to update the fuel
391
+ // variable.
392
+ | Operator::Else => self.fuel_increment_var(builder),
393
+
394
+ // This is a normal instruction where the fuel is buffered to later
395
+ // get added to `self.fuel_var`.
396
+ //
397
+ // Note that we generally ignore instructions which may trap and
398
+ // therefore result in exiting a block early. Current usage of fuel
399
+ // means that it's not too important to account for a precise amount
400
+ // of fuel consumed but rather "close to the actual amount" is good
401
+ // enough. For 100% precise counting, however, we'd probably need to
402
+ // not only increment but also save the fuel amount more often
403
+ // around trapping instructions. (see the `unreachable` instruction
404
+ // case above)
405
+ //
406
+ // Note that `Block` is specifically omitted from incrementing the
407
+ // fuel variable. Control flow entering a `block` is unconditional
408
+ // which means it's effectively executing straight-line code. We'll
409
+ // update the counter when exiting a block, but we shouldn't need to
410
+ // do so upon entering a block.
411
+ _ => {}
412
+ }
413
+ }
414
+
415
+ fn fuel_after_op(&mut self, op: &Operator<'_>, builder: &mut FunctionBuilder<'_>) {
416
+ // After a function call we need to reload our fuel value since the
417
+ // function may have changed it.
418
+ match op {
419
+ Operator::Call { .. } | Operator::CallIndirect { .. } => {
420
+ self.fuel_load_into_var(builder);
421
+ }
422
+ _ => {}
423
+ }
424
+ }
425
+
426
+ /// Adds `self.fuel_consumed` to the `fuel_var`, zero-ing out the amount of
427
+ /// fuel consumed at that point.
428
+ fn fuel_increment_var(&mut self, builder: &mut FunctionBuilder<'_>) {
429
+ let consumption = mem::replace(&mut self.fuel_consumed, 0);
430
+ if consumption == 0 {
431
+ return;
432
+ }
433
+
434
+ let fuel = builder.use_var(self.fuel_var);
435
+ let fuel = builder.ins().iadd_imm(fuel, consumption);
436
+ builder.def_var(self.fuel_var, fuel);
437
+ }
438
+
439
+ /// Loads the fuel consumption value from `VMRuntimeLimits` into `self.fuel_var`
440
+ fn fuel_load_into_var(&mut self, builder: &mut FunctionBuilder<'_>) {
441
+ let (addr, offset) = self.fuel_addr_offset(builder);
442
+ let fuel = builder
443
+ .ins()
444
+ .load(ir::types::I64, ir::MemFlags::trusted(), addr, offset);
445
+ builder.def_var(self.fuel_var, fuel);
446
+ }
447
+
448
+ /// Stores the fuel consumption value from `self.fuel_var` into
449
+ /// `VMRuntimeLimits`.
450
+ fn fuel_save_from_var(&mut self, builder: &mut FunctionBuilder<'_>) {
451
+ let (addr, offset) = self.fuel_addr_offset(builder);
452
+ let fuel_consumed = builder.use_var(self.fuel_var);
453
+ builder
454
+ .ins()
455
+ .store(ir::MemFlags::trusted(), fuel_consumed, addr, offset);
456
+ }
457
+
458
+ /// Returns the `(address, offset)` of the fuel consumption within
459
+ /// `VMRuntimeLimits`, used to perform loads/stores later.
460
+ fn fuel_addr_offset(
461
+ &mut self,
462
+ builder: &mut FunctionBuilder<'_>,
463
+ ) -> (ir::Value, ir::immediates::Offset32) {
464
+ (
465
+ builder.use_var(self.vmruntime_limits_ptr),
466
+ i32::from(self.offsets.ptr.vmruntime_limits_fuel_consumed()).into(),
467
+ )
468
+ }
469
+
470
+ /// Checks the amount of remaining, and if we've run out of fuel we call
471
+ /// the out-of-fuel function.
472
+ fn fuel_check(&mut self, builder: &mut FunctionBuilder) {
473
+ self.fuel_increment_var(builder);
474
+ let out_of_gas_block = builder.create_block();
475
+ let continuation_block = builder.create_block();
476
+
477
+ // Note that our fuel is encoded as adding positive values to a
478
+ // negative number. Whenever the negative number goes positive that
479
+ // means we ran out of fuel.
480
+ //
481
+ // Compare to see if our fuel is positive, and if so we ran out of gas.
482
+ // Otherwise we can continue on like usual.
483
+ let zero = builder.ins().iconst(ir::types::I64, 0);
484
+ let fuel = builder.use_var(self.fuel_var);
485
+ let cmp = builder
486
+ .ins()
487
+ .icmp(IntCC::SignedGreaterThanOrEqual, fuel, zero);
488
+ builder
489
+ .ins()
490
+ .brif(cmp, out_of_gas_block, &[], continuation_block, &[]);
491
+ builder.seal_block(out_of_gas_block);
492
+
493
+ // If we ran out of gas then we call our out-of-gas intrinsic and it
494
+ // figures out what to do. Note that this may raise a trap, or do
495
+ // something like yield to an async runtime. In either case we don't
496
+ // assume what happens and handle the case the intrinsic returns.
497
+ //
498
+ // Note that we save/reload fuel around this since the out-of-gas
499
+ // intrinsic may alter how much fuel is in the system.
500
+ builder.switch_to_block(out_of_gas_block);
501
+ self.fuel_save_from_var(builder);
502
+ let out_of_gas = self.builtin_functions.out_of_gas(builder.func);
503
+ let vmctx = self.vmctx_val(&mut builder.cursor());
504
+ builder.ins().call(out_of_gas, &[vmctx]);
505
+ self.fuel_load_into_var(builder);
506
+ builder.ins().jump(continuation_block, &[]);
507
+ builder.seal_block(continuation_block);
508
+
509
+ builder.switch_to_block(continuation_block);
510
+ }
511
+
512
+ fn epoch_function_entry(&mut self, builder: &mut FunctionBuilder<'_>) {
513
+ builder.declare_var(self.epoch_deadline_var, ir::types::I64);
514
+ self.epoch_load_deadline_into_var(builder);
515
+ builder.declare_var(self.epoch_ptr_var, self.pointer_type());
516
+ let epoch_ptr = self.epoch_ptr(builder);
517
+ builder.def_var(self.epoch_ptr_var, epoch_ptr);
518
+
519
+ // We must check for an epoch change when entering a
520
+ // function. Why? Why aren't checks at loops sufficient to
521
+ // bound runtime to O(|static program size|)?
522
+ //
523
+ // The reason is that one can construct a "zip-bomb-like"
524
+ // program with exponential-in-program-size runtime, with no
525
+ // backedges (loops), by building a tree of function calls: f0
526
+ // calls f1 ten times, f1 calls f2 ten times, etc. E.g., nine
527
+ // levels of this yields a billion function calls with no
528
+ // backedges. So we can't do checks only at backedges.
529
+ //
530
+ // In this "call-tree" scenario, and in fact in any program
531
+ // that uses calls as a sort of control flow to try to evade
532
+ // backedge checks, a check at every function entry is
533
+ // sufficient. Then, combined with checks at every backedge
534
+ // (loop) the longest runtime between checks is bounded by the
535
+ // straightline length of any function body.
536
+ self.epoch_check(builder);
537
+ }
538
+
539
+ #[cfg(feature = "wmemcheck")]
540
+ fn hook_malloc_exit(&mut self, builder: &mut FunctionBuilder, retvals: &[ir::Value]) {
541
+ let check_malloc = self.builtin_functions.check_malloc(builder.func);
542
+ let vmctx = self.vmctx_val(&mut builder.cursor());
543
+ let func_args = builder
544
+ .func
545
+ .dfg
546
+ .block_params(builder.func.layout.entry_block().unwrap());
547
+ let len = if func_args.len() < 3 {
548
+ return;
549
+ } else {
550
+ // If a function named `malloc` has at least one argument, we assume the
551
+ // first argument is the requested allocation size.
552
+ func_args[2]
553
+ };
554
+ let retval = if retvals.len() < 1 {
555
+ return;
556
+ } else {
557
+ retvals[0]
558
+ };
559
+ builder.ins().call(check_malloc, &[vmctx, retval, len]);
560
+ }
561
+
562
+ #[cfg(feature = "wmemcheck")]
563
+ fn hook_free_exit(&mut self, builder: &mut FunctionBuilder) {
564
+ let check_free = self.builtin_functions.check_free(builder.func);
565
+ let vmctx = self.vmctx_val(&mut builder.cursor());
566
+ let func_args = builder
567
+ .func
568
+ .dfg
569
+ .block_params(builder.func.layout.entry_block().unwrap());
570
+ let ptr = if func_args.len() < 3 {
571
+ return;
572
+ } else {
573
+ // If a function named `free` has at least one argument, we assume the
574
+ // first argument is a pointer to memory.
575
+ func_args[2]
576
+ };
577
+ builder.ins().call(check_free, &[vmctx, ptr]);
578
+ }
579
+
580
+ fn epoch_ptr(&mut self, builder: &mut FunctionBuilder<'_>) -> ir::Value {
581
+ let vmctx = self.vmctx(builder.func);
582
+ let pointer_type = self.pointer_type();
583
+ let base = builder.ins().global_value(pointer_type, vmctx);
584
+ let offset = i32::try_from(self.offsets.vmctx_epoch_ptr()).unwrap();
585
+ let epoch_ptr = builder
586
+ .ins()
587
+ .load(pointer_type, ir::MemFlags::trusted(), base, offset);
588
+ epoch_ptr
589
+ }
590
+
591
+ fn epoch_load_current(&mut self, builder: &mut FunctionBuilder<'_>) -> ir::Value {
592
+ let addr = builder.use_var(self.epoch_ptr_var);
593
+ builder.ins().load(
594
+ ir::types::I64,
595
+ ir::MemFlags::trusted(),
596
+ addr,
597
+ ir::immediates::Offset32::new(0),
598
+ )
599
+ }
600
+
601
+ fn epoch_load_deadline_into_var(&mut self, builder: &mut FunctionBuilder<'_>) {
602
+ let interrupts = builder.use_var(self.vmruntime_limits_ptr);
603
+ let deadline =
604
+ builder.ins().load(
605
+ ir::types::I64,
606
+ ir::MemFlags::trusted(),
607
+ interrupts,
608
+ ir::immediates::Offset32::new(
609
+ self.offsets.ptr.vmruntime_limits_epoch_deadline() as i32
610
+ ),
611
+ );
612
+ builder.def_var(self.epoch_deadline_var, deadline);
613
+ }
614
+
615
+ fn epoch_check(&mut self, builder: &mut FunctionBuilder<'_>) {
616
+ let new_epoch_block = builder.create_block();
617
+ let new_epoch_doublecheck_block = builder.create_block();
618
+ let continuation_block = builder.create_block();
619
+ builder.set_cold_block(new_epoch_block);
620
+ builder.set_cold_block(new_epoch_doublecheck_block);
621
+
622
+ let epoch_deadline = builder.use_var(self.epoch_deadline_var);
623
+ // Load new epoch and check against cached deadline. The
624
+ // deadline may be out of date if it was updated (within
625
+ // another yield) during some function that we called; this is
626
+ // fine, as we'll reload it and check again before yielding in
627
+ // the cold path.
628
+ let cur_epoch_value = self.epoch_load_current(builder);
629
+ let cmp = builder.ins().icmp(
630
+ IntCC::UnsignedGreaterThanOrEqual,
631
+ cur_epoch_value,
632
+ epoch_deadline,
633
+ );
634
+ builder
635
+ .ins()
636
+ .brif(cmp, new_epoch_block, &[], continuation_block, &[]);
637
+ builder.seal_block(new_epoch_block);
638
+
639
+ // In the "new epoch block", we've noticed that the epoch has
640
+ // exceeded our cached deadline. However the real deadline may
641
+ // have been moved in the meantime. We keep the cached value
642
+ // in a register to speed the checks in the common case
643
+ // (between epoch ticks) but we want to do a precise check
644
+ // here, on the cold path, by reloading the latest value
645
+ // first.
646
+ builder.switch_to_block(new_epoch_block);
647
+ self.epoch_load_deadline_into_var(builder);
648
+ let fresh_epoch_deadline = builder.use_var(self.epoch_deadline_var);
649
+ let fresh_cmp = builder.ins().icmp(
650
+ IntCC::UnsignedGreaterThanOrEqual,
651
+ cur_epoch_value,
652
+ fresh_epoch_deadline,
653
+ );
654
+ builder.ins().brif(
655
+ fresh_cmp,
656
+ new_epoch_doublecheck_block,
657
+ &[],
658
+ continuation_block,
659
+ &[],
660
+ );
661
+ builder.seal_block(new_epoch_doublecheck_block);
662
+
663
+ builder.switch_to_block(new_epoch_doublecheck_block);
664
+ let new_epoch = self.builtin_functions.new_epoch(builder.func);
665
+ let vmctx = self.vmctx_val(&mut builder.cursor());
666
+ // new_epoch() returns the new deadline, so we don't have to
667
+ // reload it.
668
+ let call = builder.ins().call(new_epoch, &[vmctx]);
669
+ let new_deadline = *builder.func.dfg.inst_results(call).first().unwrap();
670
+ builder.def_var(self.epoch_deadline_var, new_deadline);
671
+ builder.ins().jump(continuation_block, &[]);
672
+ builder.seal_block(continuation_block);
673
+
674
+ builder.switch_to_block(continuation_block);
675
+ }
676
+
677
+ fn memory_index_type(&self, index: MemoryIndex) -> ir::Type {
678
+ if self.module.memory_plans[index].memory.memory64 {
679
+ I64
680
+ } else {
681
+ I32
682
+ }
683
+ }
684
+
685
+ fn cast_pointer_to_memory_index(
686
+ &self,
687
+ mut pos: FuncCursor<'_>,
688
+ val: ir::Value,
689
+ index: MemoryIndex,
690
+ ) -> ir::Value {
691
+ let desired_type = self.memory_index_type(index);
692
+ let pointer_type = self.pointer_type();
693
+ assert_eq!(pos.func.dfg.value_type(val), pointer_type);
694
+
695
+ // The current length is of type `pointer_type` but we need to fit it
696
+ // into `desired_type`. We are guaranteed that the result will always
697
+ // fit, so we just need to do the right ireduce/sextend here.
698
+ if pointer_type == desired_type {
699
+ val
700
+ } else if pointer_type.bits() > desired_type.bits() {
701
+ pos.ins().ireduce(desired_type, val)
702
+ } else {
703
+ // Note that we `sextend` instead of the probably expected
704
+ // `uextend`. This function is only used within the contexts of
705
+ // `memory.size` and `memory.grow` where we're working with units of
706
+ // pages instead of actual bytes, so we know that the upper bit is
707
+ // always cleared for "valid values". The one case we care about
708
+ // sextend would be when the return value of `memory.grow` is `-1`,
709
+ // in which case we want to copy the sign bit.
710
+ //
711
+ // This should only come up on 32-bit hosts running wasm64 modules,
712
+ // which at some point also makes you question various assumptions
713
+ // made along the way...
714
+ pos.ins().sextend(desired_type, val)
715
+ }
716
+ }
717
+
718
+ fn cast_memory_index_to_i64(
719
+ &self,
720
+ pos: &mut FuncCursor<'_>,
721
+ val: ir::Value,
722
+ index: MemoryIndex,
723
+ ) -> ir::Value {
724
+ if self.memory_index_type(index) == I64 {
725
+ val
726
+ } else {
727
+ pos.ins().uextend(I64, val)
728
+ }
729
+ }
730
+
731
+ /// Set up the necessary preamble definitions in `func` to access the table identified
732
+ /// by `index`.
733
+ ///
734
+ /// The index space covers both imported and locally declared tables.
735
+ fn ensure_table_exists(&mut self, func: &mut ir::Function, index: TableIndex) {
736
+ if self.tables[index].is_some() {
737
+ return;
738
+ }
739
+
740
+ let pointer_type = self.pointer_type();
741
+
742
+ let (ptr, base_offset, current_elements_offset) = {
743
+ let vmctx = self.vmctx(func);
744
+ if let Some(def_index) = self.module.defined_table_index(index) {
745
+ let base_offset =
746
+ i32::try_from(self.offsets.vmctx_vmtable_definition_base(def_index)).unwrap();
747
+ let current_elements_offset = i32::try_from(
748
+ self.offsets
749
+ .vmctx_vmtable_definition_current_elements(def_index),
750
+ )
751
+ .unwrap();
752
+ (vmctx, base_offset, current_elements_offset)
753
+ } else {
754
+ let from_offset = self.offsets.vmctx_vmtable_import_from(index);
755
+ let table = func.create_global_value(ir::GlobalValueData::Load {
756
+ base: vmctx,
757
+ offset: Offset32::new(i32::try_from(from_offset).unwrap()),
758
+ global_type: pointer_type,
759
+ flags: MemFlags::trusted().with_readonly(),
760
+ });
761
+ let base_offset = i32::from(self.offsets.vmtable_definition_base());
762
+ let current_elements_offset =
763
+ i32::from(self.offsets.vmtable_definition_current_elements());
764
+ (table, base_offset, current_elements_offset)
765
+ }
766
+ };
767
+
768
+ let table = &self.module.table_plans[index].table;
769
+ let element_size = if table.wasm_ty.is_vmgcref_type() {
770
+ // For GC-managed references, tables store `Option<VMGcRef>`s.
771
+ ir::types::I32.bytes()
772
+ } else {
773
+ self.reference_type(table.wasm_ty.heap_type).bytes()
774
+ };
775
+
776
+ let base_gv = func.create_global_value(ir::GlobalValueData::Load {
777
+ base: ptr,
778
+ offset: Offset32::new(base_offset),
779
+ global_type: pointer_type,
780
+ flags: if Some(table.minimum) == table.maximum {
781
+ // A fixed-size table can't be resized so its base address won't
782
+ // change.
783
+ MemFlags::trusted().with_readonly()
784
+ } else {
785
+ MemFlags::trusted()
786
+ },
787
+ });
788
+
789
+ let bound = if Some(table.minimum) == table.maximum {
790
+ TableSize::Static {
791
+ bound: table.minimum,
792
+ }
793
+ } else {
794
+ TableSize::Dynamic {
795
+ bound_gv: func.create_global_value(ir::GlobalValueData::Load {
796
+ base: ptr,
797
+ offset: Offset32::new(current_elements_offset),
798
+ global_type: ir::Type::int(
799
+ u16::from(self.offsets.size_of_vmtable_definition_current_elements()) * 8,
800
+ )
801
+ .unwrap(),
802
+ flags: MemFlags::trusted(),
803
+ }),
804
+ }
805
+ };
806
+
807
+ self.tables[index] = Some(TableData {
808
+ base_gv,
809
+ bound,
810
+ element_size,
811
+ });
812
+ }
813
+
814
+ fn get_or_init_func_ref_table_elem(
815
+ &mut self,
816
+ builder: &mut FunctionBuilder,
817
+ table_index: TableIndex,
818
+ index: ir::Value,
819
+ cold_blocks: bool,
820
+ ) -> ir::Value {
821
+ let pointer_type = self.pointer_type();
822
+ self.ensure_table_exists(builder.func, table_index);
823
+ let table_data = self.tables[table_index].as_ref().unwrap();
824
+
825
+ // To support lazy initialization of table
826
+ // contents, we check for a null entry here, and
827
+ // if null, we take a slow-path that invokes a
828
+ // libcall.
829
+ let (table_entry_addr, flags) = table_data.prepare_table_addr(
830
+ builder,
831
+ index,
832
+ pointer_type,
833
+ self.isa.flags().enable_table_access_spectre_mitigation(),
834
+ );
835
+ let value = builder.ins().load(pointer_type, flags, table_entry_addr, 0);
836
+ // Mask off the "initialized bit". See documentation on
837
+ // FUNCREF_INIT_BIT in crates/environ/src/ref_bits.rs for more
838
+ // details. Note that `FUNCREF_MASK` has type `usize` which may not be
839
+ // appropriate for the target architecture. Right now its value is
840
+ // always -2 so assert that part doesn't change and then thread through
841
+ // -2 as the immediate.
842
+ assert_eq!(FUNCREF_MASK as isize, -2);
843
+ let value_masked = builder.ins().band_imm(value, Imm64::from(-2));
844
+
845
+ let null_block = builder.create_block();
846
+ let continuation_block = builder.create_block();
847
+ if cold_blocks {
848
+ builder.set_cold_block(null_block);
849
+ builder.set_cold_block(continuation_block);
850
+ }
851
+ let result_param = builder.append_block_param(continuation_block, pointer_type);
852
+ builder.set_cold_block(null_block);
853
+
854
+ builder
855
+ .ins()
856
+ .brif(value, continuation_block, &[value_masked], null_block, &[]);
857
+ builder.seal_block(null_block);
858
+
859
+ builder.switch_to_block(null_block);
860
+ let table_index = builder.ins().iconst(I32, table_index.index() as i64);
861
+ let lazy_init = self
862
+ .builtin_functions
863
+ .table_get_lazy_init_func_ref(builder.func);
864
+ let vmctx = self.vmctx_val(&mut builder.cursor());
865
+ let call_inst = builder.ins().call(lazy_init, &[vmctx, table_index, index]);
866
+ let returned_entry = builder.func.dfg.inst_results(call_inst)[0];
867
+ builder.ins().jump(continuation_block, &[returned_entry]);
868
+ builder.seal_block(continuation_block);
869
+
870
+ builder.switch_to_block(continuation_block);
871
+ result_param
872
+ }
873
+
874
+ #[cfg(feature = "wmemcheck")]
875
+ fn check_malloc_start(&mut self, builder: &mut FunctionBuilder) {
876
+ let malloc_start = self.builtin_functions.malloc_start(builder.func);
877
+ let vmctx = self.vmctx_val(&mut builder.cursor());
878
+ builder.ins().call(malloc_start, &[vmctx]);
879
+ }
880
+
881
+ #[cfg(feature = "wmemcheck")]
882
+ fn check_free_start(&mut self, builder: &mut FunctionBuilder) {
883
+ let free_start = self.builtin_functions.free_start(builder.func);
884
+ let vmctx = self.vmctx_val(&mut builder.cursor());
885
+ builder.ins().call(free_start, &[vmctx]);
886
+ }
887
+
888
+ #[cfg(feature = "wmemcheck")]
889
+ fn current_func_name(&self, builder: &mut FunctionBuilder) -> Option<&str> {
890
+ let func_index = match &builder.func.name {
891
+ ir::UserFuncName::User(user) => FuncIndex::from_u32(user.index),
892
+ _ => {
893
+ panic!("function name not a UserFuncName::User as expected")
894
+ }
895
+ };
896
+ self.translation
897
+ .debuginfo
898
+ .name_section
899
+ .func_names
900
+ .get(&func_index)
901
+ .map(|s| *s)
902
+ }
903
+
904
+ /// Proof-carrying code: create a memtype describing an empty
905
+ /// runtime struct (to be updated later).
906
+ fn create_empty_struct_memtype(&self, func: &mut ir::Function) -> ir::MemoryType {
907
+ func.create_memory_type(ir::MemoryTypeData::Struct {
908
+ size: 0,
909
+ fields: vec![],
910
+ })
911
+ }
912
+
913
+ /// Proof-carrying code: add a new field to a memtype used to
914
+ /// describe a runtime struct. A memory region of type `memtype`
915
+ /// will have a pointer at `offset` pointing to another memory
916
+ /// region of type `pointee`. `readonly` indicates whether the
917
+ /// PCC-checked code is expected to update this field or not.
918
+ fn add_field_to_memtype(
919
+ &self,
920
+ func: &mut ir::Function,
921
+ memtype: ir::MemoryType,
922
+ offset: u32,
923
+ pointee: ir::MemoryType,
924
+ readonly: bool,
925
+ ) {
926
+ let ptr_size = self.pointer_type().bytes();
927
+ match &mut func.memory_types[memtype] {
928
+ ir::MemoryTypeData::Struct { size, fields } => {
929
+ *size = std::cmp::max(*size, offset.checked_add(ptr_size).unwrap().into());
930
+ fields.push(ir::MemoryTypeField {
931
+ ty: self.pointer_type(),
932
+ offset: offset.into(),
933
+ readonly,
934
+ fact: Some(ir::Fact::Mem {
935
+ ty: pointee,
936
+ min_offset: 0,
937
+ max_offset: 0,
938
+ nullable: false,
939
+ }),
940
+ });
941
+
942
+ // Sort fields by offset -- we need to do this now
943
+ // because we may create an arbitrary number of
944
+ // memtypes for imported memories and we don't
945
+ // otherwise track them.
946
+ fields.sort_by_key(|f| f.offset);
947
+ }
948
+ _ => panic!("Cannot add field to non-struct memtype"),
949
+ }
950
+ }
951
+
952
+ /// Add one level of indirection to a pointer-and-memtype pair:
953
+ /// generate a load in the code at the specified offset, and if
954
+ /// memtypes are in use, add a field to the original struct and
955
+ /// generate a new memtype for the pointee.
956
+ fn load_pointer_with_memtypes(
957
+ &self,
958
+ func: &mut ir::Function,
959
+ value: ir::GlobalValue,
960
+ offset: u32,
961
+ readonly: bool,
962
+ memtype: Option<ir::MemoryType>,
963
+ ) -> (ir::GlobalValue, Option<ir::MemoryType>) {
964
+ let pointee = func.create_global_value(ir::GlobalValueData::Load {
965
+ base: value,
966
+ offset: Offset32::new(i32::try_from(offset).unwrap()),
967
+ global_type: self.pointer_type(),
968
+ flags: MemFlags::trusted().with_readonly(),
969
+ });
970
+
971
+ let mt = memtype.map(|mt| {
972
+ let pointee_mt = self.create_empty_struct_memtype(func);
973
+ self.add_field_to_memtype(func, mt, offset, pointee_mt, readonly);
974
+ func.global_value_facts[pointee] = Some(Fact::Mem {
975
+ ty: pointee_mt,
976
+ min_offset: 0,
977
+ max_offset: 0,
978
+ nullable: false,
979
+ });
980
+ pointee_mt
981
+ });
982
+ (pointee, mt)
983
+ }
984
+
985
+ fn i31_ref_to_unshifted_value(&self, pos: &mut FuncCursor, i31ref: ir::Value) -> ir::Value {
986
+ let ref_ty = self.reference_type(WasmHeapType::I31);
987
+ debug_assert_eq!(pos.func.dfg.value_type(i31ref), ref_ty);
988
+
989
+ let is_null = pos.ins().is_null(i31ref);
990
+ pos.ins().trapnz(is_null, ir::TrapCode::NullI31Ref);
991
+
992
+ let val = pos.ins().bitcast(ref_ty.as_int(), MemFlags::new(), i31ref);
993
+
994
+ if cfg!(debug_assertions) {
995
+ let is_i31_ref = pos
996
+ .ins()
997
+ .band_imm(val, i64::from(crate::I31_REF_DISCRIMINANT));
998
+ pos.ins().trapz(
999
+ is_i31_ref,
1000
+ ir::TrapCode::User(crate::DEBUG_ASSERT_TRAP_CODE),
1001
+ );
1002
+ }
1003
+
1004
+ match ref_ty.bytes() {
1005
+ 8 => pos.ins().ireduce(ir::types::I32, val),
1006
+ 4 => val,
1007
+ _ => unreachable!(),
1008
+ }
1009
+ }
1010
+
1011
+ /// Allocate the next CallIndirectSiteIndex for indirect-target
1012
+ /// caching purposes, if slots remain below the slot-count limit.
1013
+ fn alloc_call_indirect_index(&mut self) -> Option<CallIndirectSiteIndex> {
1014
+ // We need to check to see if we have reached the cache-slot
1015
+ // limit.
1016
+ //
1017
+ // There are two kinds of limit behavior:
1018
+ //
1019
+ // 1. Our function's start-index is below the limit, but we
1020
+ // hit the limit in the middle of the function. We will
1021
+ // allocate slots up to the limit, then stop exactly when we
1022
+ // hit it.
1023
+ //
1024
+ // 2. Our function is beyond the limit-count of
1025
+ // `call_indirect`s. The counting prescan in
1026
+ // `ModuleEnvironment` that assigns start indices will
1027
+ // saturate at the limit, and this function's start index
1028
+ // will be exactly the limit, so we get zero slots and exit
1029
+ // immediately at every call to this function.
1030
+ if self.call_indirect_index >= self.tunables.max_call_indirect_cache_slots {
1031
+ return None;
1032
+ }
1033
+
1034
+ let idx = CallIndirectSiteIndex::from_u32(
1035
+ u32::try_from(self.call_indirect_index)
1036
+ .expect("More than 2^32 callsites; should be limited by impl limits"),
1037
+ );
1038
+ self.call_indirect_index += 1;
1039
+ Some(idx)
1040
+ }
1041
+ }
1042
+
1043
+ struct Call<'a, 'func, 'module_env> {
1044
+ builder: &'a mut FunctionBuilder<'func>,
1045
+ env: &'a mut FuncEnvironment<'module_env>,
1046
+ tail: bool,
1047
+ }
1048
+
1049
+ enum CheckIndirectCallTypeSignature {
1050
+ Runtime,
1051
+ StaticMatch {
1052
+ /// Whether or not the funcref may be null or if it's statically known
1053
+ /// to not be null.
1054
+ may_be_null: bool,
1055
+ },
1056
+ StaticTrap,
1057
+ }
1058
+
1059
+ impl<'a, 'func, 'module_env> Call<'a, 'func, 'module_env> {
1060
+ /// Create a new `Call` site that will do regular, non-tail calls.
1061
+ pub fn new(
1062
+ builder: &'a mut FunctionBuilder<'func>,
1063
+ env: &'a mut FuncEnvironment<'module_env>,
1064
+ ) -> Self {
1065
+ Call {
1066
+ builder,
1067
+ env,
1068
+ tail: false,
1069
+ }
1070
+ }
1071
+
1072
+ /// Create a new `Call` site that will perform tail calls.
1073
+ pub fn new_tail(
1074
+ builder: &'a mut FunctionBuilder<'func>,
1075
+ env: &'a mut FuncEnvironment<'module_env>,
1076
+ ) -> Self {
1077
+ Call {
1078
+ builder,
1079
+ env,
1080
+ tail: true,
1081
+ }
1082
+ }
1083
+
1084
+ /// Do a direct call to the given callee function.
1085
+ pub fn direct_call(
1086
+ mut self,
1087
+ callee_index: FuncIndex,
1088
+ callee: ir::FuncRef,
1089
+ call_args: &[ir::Value],
1090
+ ) -> WasmResult<ir::Inst> {
1091
+ let mut real_call_args = Vec::with_capacity(call_args.len() + 2);
1092
+ let caller_vmctx = self
1093
+ .builder
1094
+ .func
1095
+ .special_param(ArgumentPurpose::VMContext)
1096
+ .unwrap();
1097
+
1098
+ // Handle direct calls to locally-defined functions.
1099
+ if !self.env.module.is_imported_function(callee_index) {
1100
+ // First append the callee vmctx address, which is the same as the caller vmctx in
1101
+ // this case.
1102
+ real_call_args.push(caller_vmctx);
1103
+
1104
+ // Then append the caller vmctx address.
1105
+ real_call_args.push(caller_vmctx);
1106
+
1107
+ // Then append the regular call arguments.
1108
+ real_call_args.extend_from_slice(call_args);
1109
+
1110
+ // Finally, make the direct call!
1111
+ return Ok(self.direct_call_inst(callee, &real_call_args));
1112
+ }
1113
+
1114
+ // Handle direct calls to imported functions. We use an indirect call
1115
+ // so that we don't have to patch the code at runtime.
1116
+ let pointer_type = self.env.pointer_type();
1117
+ let sig_ref = self.builder.func.dfg.ext_funcs[callee].signature;
1118
+ let vmctx = self.env.vmctx(self.builder.func);
1119
+ let base = self.builder.ins().global_value(pointer_type, vmctx);
1120
+
1121
+ let mem_flags = ir::MemFlags::trusted().with_readonly();
1122
+
1123
+ // Load the callee address.
1124
+ let body_offset = i32::try_from(
1125
+ self.env
1126
+ .offsets
1127
+ .vmctx_vmfunction_import_wasm_call(callee_index),
1128
+ )
1129
+ .unwrap();
1130
+ let func_addr = self
1131
+ .builder
1132
+ .ins()
1133
+ .load(pointer_type, mem_flags, base, body_offset);
1134
+
1135
+ // First append the callee vmctx address.
1136
+ let vmctx_offset =
1137
+ i32::try_from(self.env.offsets.vmctx_vmfunction_import_vmctx(callee_index)).unwrap();
1138
+ let vmctx = self
1139
+ .builder
1140
+ .ins()
1141
+ .load(pointer_type, mem_flags, base, vmctx_offset);
1142
+ real_call_args.push(vmctx);
1143
+ real_call_args.push(caller_vmctx);
1144
+
1145
+ // Then append the regular call arguments.
1146
+ real_call_args.extend_from_slice(call_args);
1147
+
1148
+ // Finally, make the indirect call!
1149
+ Ok(self.indirect_call_inst(sig_ref, func_addr, &real_call_args))
1150
+ }
1151
+
1152
+ /// Get the address of the call-indirect cache slot for a given callsite.
1153
+ pub fn call_indirect_cache_slot_addr(
1154
+ &mut self,
1155
+ call_site: CallIndirectSiteIndex,
1156
+ vmctx: ir::Value,
1157
+ ) -> ir::Value {
1158
+ let offset = self.env.offsets.vmctx_call_indirect_cache(call_site);
1159
+ self.builder.ins().iadd_imm(vmctx, i64::from(offset))
1160
+ }
1161
+
1162
+ /// Load the cached index and code pointer for an indirect call.
1163
+ ///
1164
+ /// Generates IR like:
1165
+ ///
1166
+ /// ```ignore
1167
+ /// v1 = load.i64 cache_ptr+0 ;; cached index (cache key)
1168
+ /// v2 = load.i64 cache_ptr+8 ;; cached raw code pointer (cache value)
1169
+ /// ```
1170
+ ///
1171
+ /// and returns `(index, code_ptr)` (e.g. from above, `(v1, v2)`).
1172
+ fn load_cached_indirect_index_and_code_ptr(
1173
+ &mut self,
1174
+ cache_ptr: ir::Value,
1175
+ ) -> (ir::Value, ir::Value) {
1176
+ let cached_index = self.builder.ins().load(
1177
+ I32,
1178
+ MemFlags::trusted(),
1179
+ cache_ptr,
1180
+ Offset32::from(self.env.offsets.ptr.vmcall_indirect_cache_index()),
1181
+ );
1182
+ let cached_code_ptr = self.builder.ins().load(
1183
+ self.env.pointer_type(),
1184
+ MemFlags::trusted(),
1185
+ cache_ptr,
1186
+ Offset32::from(self.env.offsets.ptr.vmcall_indirect_cache_wasm_call()),
1187
+ );
1188
+
1189
+ (cached_index, cached_code_ptr)
1190
+ }
1191
+
1192
+ /// Update the indirect-call cache: store a new index and raw code
1193
+ /// pointer in the slot for a given callsite.
1194
+ fn store_cached_indirect_index_and_code_ptr(
1195
+ &mut self,
1196
+ cache_ptr: ir::Value,
1197
+ index: ir::Value,
1198
+ code_ptr: ir::Value,
1199
+ ) {
1200
+ self.builder.ins().store(
1201
+ MemFlags::trusted(),
1202
+ index,
1203
+ cache_ptr,
1204
+ Offset32::from(self.env.offsets.ptr.vmcall_indirect_cache_index()),
1205
+ );
1206
+ self.builder.ins().store(
1207
+ MemFlags::trusted(),
1208
+ code_ptr,
1209
+ cache_ptr,
1210
+ Offset32::from(self.env.offsets.ptr.vmcall_indirect_cache_wasm_call()),
1211
+ );
1212
+ }
1213
+
1214
+ /// Do an indirect call through the given funcref table.
1215
+ pub fn indirect_call(
1216
+ mut self,
1217
+ table_index: TableIndex,
1218
+ ty_index: TypeIndex,
1219
+ sig_ref: ir::SigRef,
1220
+ callee: ir::Value,
1221
+ call_args: &[ir::Value],
1222
+ ) -> WasmResult<Option<ir::Inst>> {
1223
+ // If we are performing call-indirect caching with this table, check the cache.
1224
+ let caching = if self.env.tunables.cache_call_indirects {
1225
+ let plan = &self.env.module.table_plans[table_index];
1226
+ // We can do the indirect call caching optimization only
1227
+ // if table elements will not change (no opcodes exist
1228
+ // that could write the table, and table not exported),
1229
+ // and if we can use the zero-index as a sentinenl for "no
1230
+ // cache entry" (initial zeroed vmctx state).
1231
+ !plan.written && !plan.non_null_zero
1232
+ } else {
1233
+ false
1234
+ };
1235
+
1236
+ // Allocate a call-indirect cache slot if caching is
1237
+ // enabled. Note that this still may be `None` if we run out
1238
+ // of slots.
1239
+ let call_site = if caching {
1240
+ self.env.alloc_call_indirect_index()
1241
+ } else {
1242
+ None
1243
+ };
1244
+
1245
+ let (code_ptr, callee_vmctx) = if let Some(call_site) = call_site {
1246
+ // Get a local copy of `vmctx`.
1247
+ let vmctx = self.env.vmctx(self.builder.func);
1248
+ let vmctx = self
1249
+ .builder
1250
+ .ins()
1251
+ .global_value(self.env.pointer_type(), vmctx);
1252
+
1253
+ // Get the address of the cache slot in the VMContext
1254
+ // struct.
1255
+ let slot = self.call_indirect_cache_slot_addr(call_site, vmctx);
1256
+
1257
+ // Create the following CFG and generate code with the following outline:
1258
+ //
1259
+ // (load cached index and code pointer)
1260
+ // hit = icmp eq (cached index), (callee)
1261
+ // brif hit, call_block((cached code ptr), vmctx), miss_block
1262
+ //
1263
+ // miss_block:
1264
+ // (compute actual code pointer, with checks)
1265
+ // same_instance = icmp eq (callee vmctx), (vmctx)
1266
+ // brif same_instance update_block, call_block((actual code ptr), (callee vmctx))
1267
+ //
1268
+ // update_block:
1269
+ // (store actual index and actual code pointer)
1270
+ // jump call_block((actual code ptr), (callee vmctx))
1271
+ //
1272
+ // call_block(code_ptr, callee_vmctx):
1273
+ // (unchecked call-indirect sequence)
1274
+
1275
+ // Create two-level conditionals with CFG.
1276
+ let current_block = self.builder.current_block().unwrap();
1277
+ let miss_block = self.builder.create_block();
1278
+ let call_block = self.builder.create_block();
1279
+ let update_block = self.builder.create_block();
1280
+
1281
+ self.builder.insert_block_after(miss_block, current_block);
1282
+ self.builder.insert_block_after(update_block, miss_block);
1283
+ self.builder.insert_block_after(call_block, update_block);
1284
+ self.builder.set_cold_block(miss_block);
1285
+ self.builder.set_cold_block(update_block);
1286
+
1287
+ // Load cached values, check for hit, branch to
1288
+ // call block or miss block.
1289
+
1290
+ let (cached_index, cached_code_ptr) =
1291
+ self.load_cached_indirect_index_and_code_ptr(slot);
1292
+ let hit = self.builder.ins().icmp(IntCC::Equal, cached_index, callee);
1293
+ self.builder
1294
+ .ins()
1295
+ .brif(hit, call_block, &[cached_code_ptr, vmctx], miss_block, &[]);
1296
+
1297
+ // Miss block: compute actual callee code pointer and
1298
+ // vmctx, and update cache if same-instance.
1299
+
1300
+ self.builder.seal_block(miss_block);
1301
+ self.builder.switch_to_block(miss_block);
1302
+
1303
+ if let Some((code_ptr, callee_vmctx)) =
1304
+ self.check_and_load_code_and_callee_vmctx(table_index, ty_index, callee, true)?
1305
+ {
1306
+ // If callee vmctx is equal to ours, update the cache.
1307
+ let same_instance = self.builder.ins().icmp(IntCC::Equal, callee_vmctx, vmctx);
1308
+
1309
+ self.builder.ins().brif(
1310
+ same_instance,
1311
+ update_block,
1312
+ &[],
1313
+ call_block,
1314
+ &[code_ptr, callee_vmctx],
1315
+ );
1316
+
1317
+ self.builder.seal_block(update_block);
1318
+ self.builder.switch_to_block(update_block);
1319
+
1320
+ self.store_cached_indirect_index_and_code_ptr(slot, callee, code_ptr);
1321
+ self.builder
1322
+ .ins()
1323
+ .jump(call_block, &[code_ptr, callee_vmctx]);
1324
+ }
1325
+
1326
+ // Call block: do the call.
1327
+
1328
+ self.builder.seal_block(call_block);
1329
+ self.builder.switch_to_block(call_block);
1330
+
1331
+ let code_ptr = self
1332
+ .builder
1333
+ .append_block_param(call_block, self.env.pointer_type());
1334
+ let callee_vmctx = self
1335
+ .builder
1336
+ .append_block_param(call_block, self.env.pointer_type());
1337
+ (code_ptr, callee_vmctx)
1338
+ } else {
1339
+ match self.check_and_load_code_and_callee_vmctx(table_index, ty_index, callee, false)? {
1340
+ Some(pair) => pair,
1341
+ None => return Ok(None),
1342
+ }
1343
+ };
1344
+
1345
+ self.unchecked_call_impl(sig_ref, code_ptr, callee_vmctx, call_args)
1346
+ .map(Some)
1347
+ }
1348
+
1349
+ fn check_and_load_code_and_callee_vmctx(
1350
+ &mut self,
1351
+ table_index: TableIndex,
1352
+ ty_index: TypeIndex,
1353
+ callee: ir::Value,
1354
+ cold_blocks: bool,
1355
+ ) -> WasmResult<Option<(ir::Value, ir::Value)>> {
1356
+ // Get the funcref pointer from the table.
1357
+ let funcref_ptr = self.env.get_or_init_func_ref_table_elem(
1358
+ self.builder,
1359
+ table_index,
1360
+ callee,
1361
+ cold_blocks,
1362
+ );
1363
+
1364
+ // If necessary, check the signature.
1365
+ let check = self.check_indirect_call_type_signature(table_index, ty_index, funcref_ptr);
1366
+
1367
+ let trap_code = match check {
1368
+ // `funcref_ptr` is checked at runtime that its type matches,
1369
+ // meaning that if code gets this far it's guaranteed to not be
1370
+ // null. That means nothing in `unchecked_call` can fail.
1371
+ CheckIndirectCallTypeSignature::Runtime => None,
1372
+
1373
+ // No type check was performed on `funcref_ptr` because it's
1374
+ // statically known to have the right type. Note that whether or
1375
+ // not the function is null is not necessarily tested so far since
1376
+ // no type information was inspected.
1377
+ //
1378
+ // If the table may hold null functions, then further loads in
1379
+ // `unchecked_call` may fail. If the table only holds non-null
1380
+ // functions, though, then there's no possibility of a trap.
1381
+ CheckIndirectCallTypeSignature::StaticMatch { may_be_null } => {
1382
+ if may_be_null {
1383
+ Some(ir::TrapCode::IndirectCallToNull)
1384
+ } else {
1385
+ None
1386
+ }
1387
+ }
1388
+
1389
+ // Code has already trapped, so return nothing indicating that this
1390
+ // is now unreachable code.
1391
+ CheckIndirectCallTypeSignature::StaticTrap => return Ok(None),
1392
+ };
1393
+
1394
+ Ok(Some(self.load_code_and_vmctx(funcref_ptr, trap_code)))
1395
+ }
1396
+
1397
+ fn check_indirect_call_type_signature(
1398
+ &mut self,
1399
+ table_index: TableIndex,
1400
+ ty_index: TypeIndex,
1401
+ funcref_ptr: ir::Value,
1402
+ ) -> CheckIndirectCallTypeSignature {
1403
+ let pointer_type = self.env.pointer_type();
1404
+ let table = &self.env.module.table_plans[table_index];
1405
+ let sig_id_size = self.env.offsets.size_of_vmshared_type_index();
1406
+ let sig_id_type = Type::int(u16::from(sig_id_size) * 8).unwrap();
1407
+
1408
+ // Generate a rustc compile error here if more styles are added in
1409
+ // the future as the following code is tailored to just this style.
1410
+ let TableStyle::CallerChecksSignature = table.style;
1411
+
1412
+ // Test if a type check is necessary for this table. If this table is a
1413
+ // table of typed functions and that type matches `ty_index`, then
1414
+ // there's no need to perform a typecheck.
1415
+ match table.table.wasm_ty.heap_type {
1416
+ // Functions do not have a statically known type in the table, a
1417
+ // typecheck is required. Fall through to below to perform the
1418
+ // actual typecheck.
1419
+ WasmHeapType::Func => {}
1420
+
1421
+ // Functions that have a statically known type are either going to
1422
+ // always succeed or always fail. Figure out by inspecting the types
1423
+ // further.
1424
+ WasmHeapType::ConcreteFunc(EngineOrModuleTypeIndex::Module(table_ty)) => {
1425
+ // If `ty_index` matches `table_ty`, then this call is
1426
+ // statically known to have the right type, so no checks are
1427
+ // necessary.
1428
+ let specified_ty = self.env.module.types[ty_index];
1429
+ if specified_ty == table_ty {
1430
+ return CheckIndirectCallTypeSignature::StaticMatch {
1431
+ may_be_null: table.table.wasm_ty.nullable,
1432
+ };
1433
+ }
1434
+
1435
+ // Otherwise if the types don't match then either (a) this is a
1436
+ // null pointer or (b) it's a pointer with the wrong type.
1437
+ // Figure out which and trap here.
1438
+ //
1439
+ // If it's possible to have a null here then try to load the
1440
+ // type information. If that fails due to the function being a
1441
+ // null pointer, then this was a call to null. Otherwise if it
1442
+ // succeeds then we know it won't match, so trap anyway.
1443
+ if table.table.wasm_ty.nullable {
1444
+ let mem_flags = ir::MemFlags::trusted().with_readonly();
1445
+ self.builder.ins().load(
1446
+ sig_id_type,
1447
+ mem_flags.with_trap_code(Some(ir::TrapCode::IndirectCallToNull)),
1448
+ funcref_ptr,
1449
+ i32::from(self.env.offsets.ptr.vm_func_ref_type_index()),
1450
+ );
1451
+ }
1452
+ self.builder.ins().trap(ir::TrapCode::BadSignature);
1453
+ return CheckIndirectCallTypeSignature::StaticTrap;
1454
+ }
1455
+
1456
+ // Tables of `nofunc` can only be inhabited by null, so go ahead and
1457
+ // trap with that.
1458
+ WasmHeapType::NoFunc => {
1459
+ assert!(table.table.wasm_ty.nullable);
1460
+ self.builder.ins().trap(ir::TrapCode::IndirectCallToNull);
1461
+ return CheckIndirectCallTypeSignature::StaticTrap;
1462
+ }
1463
+
1464
+ // Engine-indexed types don't show up until runtime and it's a Wasm
1465
+ // validation error to perform a call through a non-function table,
1466
+ // so these cases are dynamically not reachable.
1467
+ WasmHeapType::ConcreteFunc(EngineOrModuleTypeIndex::Engine(_))
1468
+ | WasmHeapType::ConcreteFunc(EngineOrModuleTypeIndex::RecGroup(_))
1469
+ | WasmHeapType::Extern
1470
+ | WasmHeapType::NoExtern
1471
+ | WasmHeapType::Any
1472
+ | WasmHeapType::Eq
1473
+ | WasmHeapType::I31
1474
+ | WasmHeapType::Array
1475
+ | WasmHeapType::ConcreteArray(_)
1476
+ | WasmHeapType::Struct
1477
+ | WasmHeapType::ConcreteStruct(_)
1478
+ | WasmHeapType::None => {
1479
+ unreachable!()
1480
+ }
1481
+ }
1482
+
1483
+ let vmctx = self.env.vmctx(self.builder.func);
1484
+ let base = self.builder.ins().global_value(pointer_type, vmctx);
1485
+
1486
+ // Load the caller ID. This requires loading the `*mut VMFuncRef` base
1487
+ // pointer from `VMContext` and then loading, based on `SignatureIndex`,
1488
+ // the corresponding entry.
1489
+ let mem_flags = ir::MemFlags::trusted().with_readonly();
1490
+ let signatures = self.builder.ins().load(
1491
+ pointer_type,
1492
+ mem_flags,
1493
+ base,
1494
+ i32::try_from(self.env.offsets.vmctx_type_ids_array()).unwrap(),
1495
+ );
1496
+ let sig_index = self.env.module.types[ty_index];
1497
+ let offset =
1498
+ i32::try_from(sig_index.as_u32().checked_mul(sig_id_type.bytes()).unwrap()).unwrap();
1499
+ let caller_sig_id = self
1500
+ .builder
1501
+ .ins()
1502
+ .load(sig_id_type, mem_flags, signatures, offset);
1503
+
1504
+ // Load the callee ID.
1505
+ //
1506
+ // Note that the callee may be null in which case this load may
1507
+ // trap. If so use the `IndirectCallToNull` trap code.
1508
+ let mem_flags = ir::MemFlags::trusted().with_readonly();
1509
+ let callee_sig_id = self.builder.ins().load(
1510
+ sig_id_type,
1511
+ mem_flags.with_trap_code(Some(ir::TrapCode::IndirectCallToNull)),
1512
+ funcref_ptr,
1513
+ i32::from(self.env.offsets.ptr.vm_func_ref_type_index()),
1514
+ );
1515
+
1516
+ // Check that they match.
1517
+ let cmp = self
1518
+ .builder
1519
+ .ins()
1520
+ .icmp(IntCC::Equal, callee_sig_id, caller_sig_id);
1521
+ self.builder.ins().trapz(cmp, ir::TrapCode::BadSignature);
1522
+ CheckIndirectCallTypeSignature::Runtime
1523
+ }
1524
+
1525
+ /// Call a typed function reference.
1526
+ pub fn call_ref(
1527
+ mut self,
1528
+ sig_ref: ir::SigRef,
1529
+ callee: ir::Value,
1530
+ args: &[ir::Value],
1531
+ ) -> WasmResult<ir::Inst> {
1532
+ // FIXME: the wasm type system tracks enough information to know whether
1533
+ // `callee` is a null reference or not. In some situations it can be
1534
+ // statically known here that `callee` cannot be null in which case this
1535
+ // can be `None` instead. This requires feeding type information from
1536
+ // wasmparser's validator into this function, however, which is not
1537
+ // easily done at this time.
1538
+ let callee_load_trap_code = Some(ir::TrapCode::NullReference);
1539
+
1540
+ self.unchecked_call(sig_ref, callee, callee_load_trap_code, args)
1541
+ }
1542
+
1543
+ /// This calls a function by reference without checking the signature.
1544
+ ///
1545
+ /// It gets the function address, sets relevant flags, and passes the
1546
+ /// special callee/caller vmctxs. It is used by both call_indirect (which
1547
+ /// checks the signature) and call_ref (which doesn't).
1548
+ fn unchecked_call(
1549
+ &mut self,
1550
+ sig_ref: ir::SigRef,
1551
+ callee: ir::Value,
1552
+ callee_load_trap_code: Option<ir::TrapCode>,
1553
+ call_args: &[ir::Value],
1554
+ ) -> WasmResult<ir::Inst> {
1555
+ let (func_addr, callee_vmctx) = self.load_code_and_vmctx(callee, callee_load_trap_code);
1556
+ self.unchecked_call_impl(sig_ref, func_addr, callee_vmctx, call_args)
1557
+ }
1558
+
1559
+ fn load_code_and_vmctx(
1560
+ &mut self,
1561
+ callee: ir::Value,
1562
+ callee_load_trap_code: Option<ir::TrapCode>,
1563
+ ) -> (ir::Value, ir::Value) {
1564
+ let pointer_type = self.env.pointer_type();
1565
+
1566
+ // Dereference callee pointer to get the function address.
1567
+ //
1568
+ // Note that this may trap if `callee` hasn't previously been verified
1569
+ // to be non-null. This means that this load is annotated with an
1570
+ // optional trap code provided by the caller of `unchecked_call` which
1571
+ // will handle the case where this is either already known to be
1572
+ // non-null or may trap.
1573
+ let mem_flags = ir::MemFlags::trusted().with_readonly();
1574
+ let func_addr = self.builder.ins().load(
1575
+ pointer_type,
1576
+ mem_flags.with_trap_code(callee_load_trap_code),
1577
+ callee,
1578
+ i32::from(self.env.offsets.ptr.vm_func_ref_wasm_call()),
1579
+ );
1580
+ let callee_vmctx = self.builder.ins().load(
1581
+ pointer_type,
1582
+ mem_flags,
1583
+ callee,
1584
+ i32::from(self.env.offsets.ptr.vm_func_ref_vmctx()),
1585
+ );
1586
+
1587
+ (func_addr, callee_vmctx)
1588
+ }
1589
+
1590
+ /// This calls a function by reference without checking the
1591
+ /// signature, given the raw code pointer to the
1592
+ /// Wasm-calling-convention entry point and the callee vmctx.
1593
+ fn unchecked_call_impl(
1594
+ &mut self,
1595
+ sig_ref: ir::SigRef,
1596
+ func_addr: ir::Value,
1597
+ callee_vmctx: ir::Value,
1598
+ call_args: &[ir::Value],
1599
+ ) -> WasmResult<ir::Inst> {
1600
+ let mut real_call_args = Vec::with_capacity(call_args.len() + 2);
1601
+ let caller_vmctx = self
1602
+ .builder
1603
+ .func
1604
+ .special_param(ArgumentPurpose::VMContext)
1605
+ .unwrap();
1606
+
1607
+ // First append the callee and caller vmctx addresses.
1608
+ real_call_args.push(callee_vmctx);
1609
+ real_call_args.push(caller_vmctx);
1610
+
1611
+ // Then append the regular call arguments.
1612
+ real_call_args.extend_from_slice(call_args);
1613
+
1614
+ Ok(self.indirect_call_inst(sig_ref, func_addr, &real_call_args))
1615
+ }
1616
+
1617
+ fn direct_call_inst(&mut self, callee: ir::FuncRef, args: &[ir::Value]) -> ir::Inst {
1618
+ if self.tail {
1619
+ self.builder.ins().return_call(callee, args)
1620
+ } else {
1621
+ self.builder.ins().call(callee, args)
1622
+ }
1623
+ }
1624
+
1625
+ fn indirect_call_inst(
1626
+ &mut self,
1627
+ sig_ref: ir::SigRef,
1628
+ func_addr: ir::Value,
1629
+ args: &[ir::Value],
1630
+ ) -> ir::Inst {
1631
+ if self.tail {
1632
+ self.builder
1633
+ .ins()
1634
+ .return_call_indirect(sig_ref, func_addr, args)
1635
+ } else {
1636
+ self.builder.ins().call_indirect(sig_ref, func_addr, args)
1637
+ }
1638
+ }
1639
+ }
1640
+
1641
+ impl TypeConvert for FuncEnvironment<'_> {
1642
+ fn lookup_heap_type(&self, ty: wasmparser::UnpackedIndex) -> WasmHeapType {
1643
+ wasmtime_environ::WasmparserTypeConverter::new(self.types, self.module).lookup_heap_type(ty)
1644
+ }
1645
+ }
1646
+
1647
+ impl<'module_environment> TargetEnvironment for FuncEnvironment<'module_environment> {
1648
+ fn target_config(&self) -> TargetFrontendConfig {
1649
+ self.isa.frontend_config()
1650
+ }
1651
+
1652
+ fn reference_type(&self, ty: WasmHeapType) -> ir::Type {
1653
+ crate::reference_type(ty, self.pointer_type())
1654
+ }
1655
+
1656
+ fn heap_access_spectre_mitigation(&self) -> bool {
1657
+ self.isa.flags().enable_heap_access_spectre_mitigation()
1658
+ }
1659
+
1660
+ fn proof_carrying_code(&self) -> bool {
1661
+ self.isa.flags().enable_pcc()
1662
+ }
1663
+ }
1664
+
1665
+ impl<'module_environment> cranelift_wasm::FuncEnvironment for FuncEnvironment<'module_environment> {
1666
+ fn heaps(&self) -> &PrimaryMap<Heap, HeapData> {
1667
+ &self.heaps
1668
+ }
1669
+
1670
+ fn is_wasm_parameter(&self, _signature: &ir::Signature, index: usize) -> bool {
1671
+ // The first two parameters are the vmctx and caller vmctx. The rest are
1672
+ // the wasm parameters.
1673
+ index >= 2
1674
+ }
1675
+
1676
+ fn after_locals(&mut self, num_locals: usize) {
1677
+ self.vmruntime_limits_ptr = Variable::new(num_locals);
1678
+ self.fuel_var = Variable::new(num_locals + 1);
1679
+ self.epoch_deadline_var = Variable::new(num_locals + 2);
1680
+ self.epoch_ptr_var = Variable::new(num_locals + 3);
1681
+ }
1682
+
1683
+ fn translate_table_grow(
1684
+ &mut self,
1685
+ mut pos: cranelift_codegen::cursor::FuncCursor<'_>,
1686
+ table_index: TableIndex,
1687
+ delta: ir::Value,
1688
+ init_value: ir::Value,
1689
+ ) -> WasmResult<ir::Value> {
1690
+ let ty = self.module.table_plans[table_index].table.wasm_ty.heap_type;
1691
+ let grow = if ty.is_vmgcref_type() {
1692
+ gc::gc_ref_table_grow_builtin(ty, self, &mut pos.func)?
1693
+ } else {
1694
+ debug_assert_eq!(ty.top(), WasmHeapTopType::Func);
1695
+ self.builtin_functions.table_grow_func_ref(&mut pos.func)
1696
+ };
1697
+
1698
+ let vmctx = self.vmctx_val(&mut pos);
1699
+
1700
+ let table_index_arg = pos.ins().iconst(I32, table_index.as_u32() as i64);
1701
+ let call_inst = pos
1702
+ .ins()
1703
+ .call(grow, &[vmctx, table_index_arg, delta, init_value]);
1704
+
1705
+ Ok(pos.func.dfg.first_result(call_inst))
1706
+ }
1707
+
1708
+ fn translate_table_get(
1709
+ &mut self,
1710
+ builder: &mut FunctionBuilder,
1711
+ table_index: TableIndex,
1712
+ index: ir::Value,
1713
+ ) -> WasmResult<ir::Value> {
1714
+ let plan = &self.module.table_plans[table_index];
1715
+ self.ensure_table_exists(builder.func, table_index);
1716
+ let table_data = self.tables[table_index].as_ref().unwrap();
1717
+ let heap_ty = plan.table.wasm_ty.heap_type;
1718
+ match heap_ty.top() {
1719
+ // `i31ref`s never need barriers, and therefore don't need to go
1720
+ // through the GC compiler.
1721
+ WasmHeapTopType::Any if heap_ty == WasmHeapType::I31 => {
1722
+ let (src, flags) = table_data.prepare_table_addr(
1723
+ builder,
1724
+ index,
1725
+ self.pointer_type(),
1726
+ self.isa.flags().enable_table_access_spectre_mitigation(),
1727
+ );
1728
+ gc::unbarriered_load_gc_ref(self, builder, WasmHeapType::I31, src, flags)
1729
+ }
1730
+
1731
+ // GC-managed types.
1732
+ WasmHeapTopType::Any | WasmHeapTopType::Extern => {
1733
+ let (src, flags) = table_data.prepare_table_addr(
1734
+ builder,
1735
+ index,
1736
+ self.pointer_type(),
1737
+ self.isa.flags().enable_table_access_spectre_mitigation(),
1738
+ );
1739
+ gc::gc_compiler(self).translate_read_gc_reference(
1740
+ self,
1741
+ builder,
1742
+ plan.table.wasm_ty,
1743
+ src,
1744
+ flags,
1745
+ )
1746
+ }
1747
+
1748
+ // Function types.
1749
+ WasmHeapTopType::Func => match plan.style {
1750
+ TableStyle::CallerChecksSignature => {
1751
+ Ok(self.get_or_init_func_ref_table_elem(builder, table_index, index, false))
1752
+ }
1753
+ },
1754
+ }
1755
+ }
1756
+
1757
+ fn translate_table_set(
1758
+ &mut self,
1759
+ builder: &mut FunctionBuilder,
1760
+ table_index: TableIndex,
1761
+ value: ir::Value,
1762
+ index: ir::Value,
1763
+ ) -> WasmResult<()> {
1764
+ let pointer_type = self.pointer_type();
1765
+ let plan = &self.module.table_plans[table_index];
1766
+ self.ensure_table_exists(builder.func, table_index);
1767
+ let table_data = self.tables[table_index].as_ref().unwrap();
1768
+ let heap_ty = plan.table.wasm_ty.heap_type;
1769
+ match heap_ty.top() {
1770
+ // `i31ref`s never need GC barriers, and therefore don't need to go
1771
+ // through the GC compiler.
1772
+ WasmHeapTopType::Any if heap_ty == WasmHeapType::I31 => {
1773
+ let (addr, flags) = table_data.prepare_table_addr(
1774
+ builder,
1775
+ index,
1776
+ self.pointer_type(),
1777
+ self.isa.flags().enable_table_access_spectre_mitigation(),
1778
+ );
1779
+ gc::unbarriered_store_gc_ref(self, builder, WasmHeapType::I31, addr, value, flags)
1780
+ }
1781
+
1782
+ // GC-managed types.
1783
+ WasmHeapTopType::Any | WasmHeapTopType::Extern => {
1784
+ let (dst, flags) = table_data.prepare_table_addr(
1785
+ builder,
1786
+ index,
1787
+ self.pointer_type(),
1788
+ self.isa.flags().enable_table_access_spectre_mitigation(),
1789
+ );
1790
+ gc::gc_compiler(self).translate_write_gc_reference(
1791
+ self,
1792
+ builder,
1793
+ plan.table.wasm_ty,
1794
+ dst,
1795
+ value,
1796
+ flags,
1797
+ )
1798
+ }
1799
+
1800
+ // Function types.
1801
+ WasmHeapTopType::Func => {
1802
+ match plan.style {
1803
+ TableStyle::CallerChecksSignature => {
1804
+ let (elem_addr, flags) = table_data.prepare_table_addr(
1805
+ builder,
1806
+ index,
1807
+ pointer_type,
1808
+ self.isa.flags().enable_table_access_spectre_mitigation(),
1809
+ );
1810
+ // Set the "initialized bit". See doc-comment on
1811
+ // `FUNCREF_INIT_BIT` in
1812
+ // crates/environ/src/ref_bits.rs for details.
1813
+ let value_with_init_bit = builder
1814
+ .ins()
1815
+ .bor_imm(value, Imm64::from(FUNCREF_INIT_BIT as i64));
1816
+ builder
1817
+ .ins()
1818
+ .store(flags, value_with_init_bit, elem_addr, 0);
1819
+ Ok(())
1820
+ }
1821
+ }
1822
+ }
1823
+ }
1824
+ }
1825
+
1826
+ fn translate_table_fill(
1827
+ &mut self,
1828
+ mut pos: cranelift_codegen::cursor::FuncCursor<'_>,
1829
+ table_index: TableIndex,
1830
+ dst: ir::Value,
1831
+ val: ir::Value,
1832
+ len: ir::Value,
1833
+ ) -> WasmResult<()> {
1834
+ let ty = self.module.table_plans[table_index].table.wasm_ty.heap_type;
1835
+ let libcall = if ty.is_vmgcref_type() {
1836
+ gc::gc_ref_table_fill_builtin(ty, self, &mut pos.func)?
1837
+ } else {
1838
+ debug_assert_eq!(ty.top(), WasmHeapTopType::Func);
1839
+ self.builtin_functions.table_fill_func_ref(&mut pos.func)
1840
+ };
1841
+
1842
+ let vmctx = self.vmctx_val(&mut pos);
1843
+
1844
+ let table_index_arg = pos.ins().iconst(I32, table_index.as_u32() as i64);
1845
+ pos.ins()
1846
+ .call(libcall, &[vmctx, table_index_arg, dst, val, len]);
1847
+
1848
+ Ok(())
1849
+ }
1850
+
1851
+ fn translate_ref_i31(&mut self, mut pos: FuncCursor, val: ir::Value) -> WasmResult<ir::Value> {
1852
+ let shifted = pos.ins().ishl_imm(val, 1);
1853
+ let tagged = pos
1854
+ .ins()
1855
+ .bor_imm(shifted, i64::from(crate::I31_REF_DISCRIMINANT));
1856
+ let ref_ty = self.reference_type(WasmHeapType::I31);
1857
+ let extended = if ref_ty.bytes() > 4 {
1858
+ pos.ins().uextend(ref_ty.as_int(), tagged)
1859
+ } else {
1860
+ tagged
1861
+ };
1862
+ let i31ref = pos.ins().bitcast(ref_ty, MemFlags::new(), extended);
1863
+ Ok(i31ref)
1864
+ }
1865
+
1866
+ fn translate_i31_get_s(
1867
+ &mut self,
1868
+ mut pos: FuncCursor,
1869
+ i31ref: ir::Value,
1870
+ ) -> WasmResult<ir::Value> {
1871
+ let val = self.i31_ref_to_unshifted_value(&mut pos, i31ref);
1872
+ let shifted = pos.ins().sshr_imm(val, 1);
1873
+ Ok(shifted)
1874
+ }
1875
+
1876
+ fn translate_i31_get_u(
1877
+ &mut self,
1878
+ mut pos: FuncCursor,
1879
+ i31ref: ir::Value,
1880
+ ) -> WasmResult<ir::Value> {
1881
+ let val = self.i31_ref_to_unshifted_value(&mut pos, i31ref);
1882
+ let shifted = pos.ins().ushr_imm(val, 1);
1883
+ Ok(shifted)
1884
+ }
1885
+
1886
+ fn translate_ref_null(
1887
+ &mut self,
1888
+ mut pos: cranelift_codegen::cursor::FuncCursor,
1889
+ ht: WasmHeapType,
1890
+ ) -> WasmResult<ir::Value> {
1891
+ Ok(match ht.top() {
1892
+ WasmHeapTopType::Func => pos.ins().iconst(self.pointer_type(), 0),
1893
+ WasmHeapTopType::Any | WasmHeapTopType::Extern => {
1894
+ pos.ins().null(self.reference_type(ht))
1895
+ }
1896
+ })
1897
+ }
1898
+
1899
+ fn translate_ref_is_null(
1900
+ &mut self,
1901
+ mut pos: cranelift_codegen::cursor::FuncCursor,
1902
+ value: ir::Value,
1903
+ ) -> WasmResult<ir::Value> {
1904
+ let bool_is_null = match pos.func.dfg.value_type(value) {
1905
+ // `externref`
1906
+ ty if ty.is_ref() => pos.ins().is_null(value),
1907
+ // `funcref`
1908
+ ty if ty == self.pointer_type() => {
1909
+ pos.ins()
1910
+ .icmp_imm(cranelift_codegen::ir::condcodes::IntCC::Equal, value, 0)
1911
+ }
1912
+ _ => unreachable!(),
1913
+ };
1914
+
1915
+ Ok(pos.ins().uextend(ir::types::I32, bool_is_null))
1916
+ }
1917
+
1918
+ fn translate_ref_func(
1919
+ &mut self,
1920
+ mut pos: cranelift_codegen::cursor::FuncCursor<'_>,
1921
+ func_index: FuncIndex,
1922
+ ) -> WasmResult<ir::Value> {
1923
+ let func_index = pos.ins().iconst(I32, func_index.as_u32() as i64);
1924
+ let ref_func = self.builtin_functions.ref_func(&mut pos.func);
1925
+ let vmctx = self.vmctx_val(&mut pos);
1926
+
1927
+ let call_inst = pos.ins().call(ref_func, &[vmctx, func_index]);
1928
+ Ok(pos.func.dfg.first_result(call_inst))
1929
+ }
1930
+
1931
+ fn translate_custom_global_get(
1932
+ &mut self,
1933
+ mut pos: cranelift_codegen::cursor::FuncCursor<'_>,
1934
+ index: cranelift_wasm::GlobalIndex,
1935
+ ) -> WasmResult<ir::Value> {
1936
+ let ty = self.module.globals[index].wasm_ty;
1937
+ debug_assert!(
1938
+ ty.is_vmgcref_type(),
1939
+ "We only use GlobalVariable::Custom for VMGcRef types"
1940
+ );
1941
+
1942
+ // TODO: use `GcCompiler::translate_read_gc_reference` for GC-reference
1943
+ // globals instead of a libcall.
1944
+ let libcall = gc::gc_ref_global_get_builtin(ty, self, &mut pos.func)?;
1945
+
1946
+ let vmctx = self.vmctx_val(&mut pos);
1947
+
1948
+ let global_index_arg = pos.ins().iconst(I32, index.as_u32() as i64);
1949
+ let call_inst = pos.ins().call(libcall, &[vmctx, global_index_arg]);
1950
+
1951
+ Ok(pos.func.dfg.first_result(call_inst))
1952
+ }
1953
+
1954
+ fn translate_custom_global_set(
1955
+ &mut self,
1956
+ mut pos: cranelift_codegen::cursor::FuncCursor<'_>,
1957
+ index: cranelift_wasm::GlobalIndex,
1958
+ value: ir::Value,
1959
+ ) -> WasmResult<()> {
1960
+ let ty = self.module.globals[index].wasm_ty;
1961
+ debug_assert!(
1962
+ ty.is_vmgcref_type(),
1963
+ "We only use GlobalVariable::Custom for VMGcRef types"
1964
+ );
1965
+
1966
+ // TODO: use `GcCompiler::translate_write_gc_reference` for GC-reference
1967
+ // globals instead of a libcall.
1968
+ let libcall = gc::gc_ref_global_set_builtin(ty, self, &mut pos.func)?;
1969
+
1970
+ let vmctx = self.vmctx_val(&mut pos);
1971
+
1972
+ let global_index_arg = pos.ins().iconst(I32, index.as_u32() as i64);
1973
+ pos.ins().call(libcall, &[vmctx, global_index_arg, value]);
1974
+
1975
+ Ok(())
1976
+ }
1977
+
1978
+ fn make_heap(&mut self, func: &mut ir::Function, index: MemoryIndex) -> WasmResult<Heap> {
1979
+ let pointer_type = self.pointer_type();
1980
+ let is_shared = self.module.memory_plans[index].memory.shared;
1981
+
1982
+ let min_size = self.module.memory_plans[index]
1983
+ .memory
1984
+ .minimum
1985
+ .checked_mul(u64::from(WASM_PAGE_SIZE))
1986
+ .unwrap_or_else(|| {
1987
+ // The only valid Wasm memory size that won't fit in a 64-bit
1988
+ // integer is the maximum memory64 size (2^64) which is one
1989
+ // larger than `u64::MAX` (2^64 - 1). In this case, just say the
1990
+ // minimum heap size is `u64::MAX`.
1991
+ debug_assert_eq!(self.module.memory_plans[index].memory.minimum, 1 << 48);
1992
+ u64::MAX
1993
+ });
1994
+
1995
+ let max_size = self.module.memory_plans[index]
1996
+ .memory
1997
+ .maximum
1998
+ .and_then(|max| max.checked_mul(u64::from(WASM_PAGE_SIZE)));
1999
+
2000
+ let (ptr, base_offset, current_length_offset, ptr_memtype) = {
2001
+ let vmctx = self.vmctx(func);
2002
+ if let Some(def_index) = self.module.defined_memory_index(index) {
2003
+ if is_shared {
2004
+ // As with imported memory, the `VMMemoryDefinition` for a
2005
+ // shared memory is stored elsewhere. We store a `*mut
2006
+ // VMMemoryDefinition` to it and dereference that when
2007
+ // atomically growing it.
2008
+ let from_offset = self.offsets.vmctx_vmmemory_pointer(def_index);
2009
+ let (memory, def_mt) = self.load_pointer_with_memtypes(
2010
+ func,
2011
+ vmctx,
2012
+ from_offset,
2013
+ true,
2014
+ self.pcc_vmctx_memtype,
2015
+ );
2016
+ let base_offset = i32::from(self.offsets.ptr.vmmemory_definition_base());
2017
+ let current_length_offset =
2018
+ i32::from(self.offsets.ptr.vmmemory_definition_current_length());
2019
+ (memory, base_offset, current_length_offset, def_mt)
2020
+ } else {
2021
+ let owned_index = self.module.owned_memory_index(def_index);
2022
+ let owned_base_offset =
2023
+ self.offsets.vmctx_vmmemory_definition_base(owned_index);
2024
+ let owned_length_offset = self
2025
+ .offsets
2026
+ .vmctx_vmmemory_definition_current_length(owned_index);
2027
+ let current_base_offset = i32::try_from(owned_base_offset).unwrap();
2028
+ let current_length_offset = i32::try_from(owned_length_offset).unwrap();
2029
+ (
2030
+ vmctx,
2031
+ current_base_offset,
2032
+ current_length_offset,
2033
+ self.pcc_vmctx_memtype,
2034
+ )
2035
+ }
2036
+ } else {
2037
+ let from_offset = self.offsets.vmctx_vmmemory_import_from(index);
2038
+ let (memory, def_mt) = self.load_pointer_with_memtypes(
2039
+ func,
2040
+ vmctx,
2041
+ from_offset,
2042
+ true,
2043
+ self.pcc_vmctx_memtype,
2044
+ );
2045
+ let base_offset = i32::from(self.offsets.ptr.vmmemory_definition_base());
2046
+ let current_length_offset =
2047
+ i32::from(self.offsets.ptr.vmmemory_definition_current_length());
2048
+ (memory, base_offset, current_length_offset, def_mt)
2049
+ }
2050
+ };
2051
+
2052
+ // If we have a declared maximum, we can make this a "static" heap, which is
2053
+ // allocated up front and never moved.
2054
+ let (offset_guard_size, heap_style, readonly_base, base_fact, memory_type) =
2055
+ match self.module.memory_plans[index] {
2056
+ MemoryPlan {
2057
+ style: MemoryStyle::Dynamic { .. },
2058
+ offset_guard_size,
2059
+ pre_guard_size: _,
2060
+ memory: _,
2061
+ } => {
2062
+ let heap_bound = func.create_global_value(ir::GlobalValueData::Load {
2063
+ base: ptr,
2064
+ offset: Offset32::new(current_length_offset),
2065
+ global_type: pointer_type,
2066
+ flags: MemFlags::trusted(),
2067
+ });
2068
+
2069
+ let (base_fact, data_mt) = if let Some(ptr_memtype) = ptr_memtype {
2070
+ // Create a memtype representing the untyped memory region.
2071
+ let data_mt = func.create_memory_type(ir::MemoryTypeData::DynamicMemory {
2072
+ gv: heap_bound,
2073
+ size: offset_guard_size,
2074
+ });
2075
+ // This fact applies to any pointer to the start of the memory.
2076
+ let base_fact = ir::Fact::dynamic_base_ptr(data_mt);
2077
+ // This fact applies to the length.
2078
+ let length_fact = ir::Fact::global_value(
2079
+ u16::try_from(self.isa.pointer_type().bits()).unwrap(),
2080
+ heap_bound,
2081
+ );
2082
+ // Create a field in the vmctx for the base pointer.
2083
+ match &mut func.memory_types[ptr_memtype] {
2084
+ ir::MemoryTypeData::Struct { size, fields } => {
2085
+ let base_offset = u64::try_from(base_offset).unwrap();
2086
+ fields.push(ir::MemoryTypeField {
2087
+ offset: base_offset,
2088
+ ty: self.isa.pointer_type(),
2089
+ // Read-only field from the PoV of PCC checks:
2090
+ // don't allow stores to this field. (Even if
2091
+ // it is a dynamic memory whose base can
2092
+ // change, that update happens inside the
2093
+ // runtime, not in generated code.)
2094
+ readonly: true,
2095
+ fact: Some(base_fact.clone()),
2096
+ });
2097
+ let current_length_offset =
2098
+ u64::try_from(current_length_offset).unwrap();
2099
+ fields.push(ir::MemoryTypeField {
2100
+ offset: current_length_offset,
2101
+ ty: self.isa.pointer_type(),
2102
+ // As above, read-only; only the runtime modifies it.
2103
+ readonly: true,
2104
+ fact: Some(length_fact),
2105
+ });
2106
+
2107
+ let pointer_size = u64::from(self.isa.pointer_type().bytes());
2108
+ let fields_end = std::cmp::max(
2109
+ base_offset + pointer_size,
2110
+ current_length_offset + pointer_size,
2111
+ );
2112
+ *size = std::cmp::max(*size, fields_end);
2113
+ }
2114
+ _ => {
2115
+ panic!("Bad memtype");
2116
+ }
2117
+ }
2118
+ // Apply a fact to the base pointer.
2119
+ (Some(base_fact), Some(data_mt))
2120
+ } else {
2121
+ (None, None)
2122
+ };
2123
+
2124
+ (
2125
+ offset_guard_size,
2126
+ HeapStyle::Dynamic {
2127
+ bound_gv: heap_bound,
2128
+ },
2129
+ false,
2130
+ base_fact,
2131
+ data_mt,
2132
+ )
2133
+ }
2134
+ MemoryPlan {
2135
+ style: MemoryStyle::Static { bound: bound_pages },
2136
+ offset_guard_size,
2137
+ pre_guard_size: _,
2138
+ memory: _,
2139
+ } => {
2140
+ let bound_bytes = u64::from(bound_pages) * u64::from(WASM_PAGE_SIZE);
2141
+ let (base_fact, data_mt) = if let Some(ptr_memtype) = ptr_memtype {
2142
+ // Create a memtype representing the untyped memory region.
2143
+ let data_mt = func.create_memory_type(ir::MemoryTypeData::Memory {
2144
+ size: bound_bytes
2145
+ .checked_add(offset_guard_size)
2146
+ .expect("Memory plan has overflowing size plus guard"),
2147
+ });
2148
+ // This fact applies to any pointer to the start of the memory.
2149
+ let base_fact = Fact::Mem {
2150
+ ty: data_mt,
2151
+ min_offset: 0,
2152
+ max_offset: 0,
2153
+ nullable: false,
2154
+ };
2155
+ // Create a field in the vmctx for the base pointer.
2156
+ match &mut func.memory_types[ptr_memtype] {
2157
+ ir::MemoryTypeData::Struct { size, fields } => {
2158
+ let offset = u64::try_from(base_offset).unwrap();
2159
+ fields.push(ir::MemoryTypeField {
2160
+ offset,
2161
+ ty: self.isa.pointer_type(),
2162
+ // Read-only field from the PoV of PCC checks:
2163
+ // don't allow stores to this field. (Even if
2164
+ // it is a dynamic memory whose base can
2165
+ // change, that update happens inside the
2166
+ // runtime, not in generated code.)
2167
+ readonly: true,
2168
+ fact: Some(base_fact.clone()),
2169
+ });
2170
+ *size = std::cmp::max(
2171
+ *size,
2172
+ offset + u64::from(self.isa.pointer_type().bytes()),
2173
+ );
2174
+ }
2175
+ _ => {
2176
+ panic!("Bad memtype");
2177
+ }
2178
+ }
2179
+ // Apply a fact to the base pointer.
2180
+ (Some(base_fact), Some(data_mt))
2181
+ } else {
2182
+ (None, None)
2183
+ };
2184
+ (
2185
+ offset_guard_size,
2186
+ HeapStyle::Static { bound: bound_bytes },
2187
+ true,
2188
+ base_fact,
2189
+ data_mt,
2190
+ )
2191
+ }
2192
+ };
2193
+
2194
+ let mut flags = MemFlags::trusted().with_checked();
2195
+ if readonly_base {
2196
+ flags.set_readonly();
2197
+ }
2198
+ let heap_base = func.create_global_value(ir::GlobalValueData::Load {
2199
+ base: ptr,
2200
+ offset: Offset32::new(base_offset),
2201
+ global_type: pointer_type,
2202
+ flags,
2203
+ });
2204
+ func.global_value_facts[heap_base] = base_fact;
2205
+
2206
+ Ok(self.heaps.push(HeapData {
2207
+ base: heap_base,
2208
+ min_size,
2209
+ max_size,
2210
+ offset_guard_size,
2211
+ style: heap_style,
2212
+ index_type: self.memory_index_type(index),
2213
+ memory_type,
2214
+ }))
2215
+ }
2216
+
2217
+ fn make_global(
2218
+ &mut self,
2219
+ func: &mut ir::Function,
2220
+ index: GlobalIndex,
2221
+ ) -> WasmResult<GlobalVariable> {
2222
+ let ty = self.module.globals[index].wasm_ty;
2223
+
2224
+ if ty.is_vmgcref_type() {
2225
+ // Although reference-typed globals live at the same memory location as
2226
+ // any other type of global at the same index would, getting or
2227
+ // setting them requires ref counting barriers. Therefore, we need
2228
+ // to use `GlobalVariable::Custom`, as that is the only kind of
2229
+ // `GlobalVariable` for which `cranelift-wasm` supports custom
2230
+ // access translation.
2231
+ return Ok(GlobalVariable::Custom);
2232
+ }
2233
+
2234
+ let (gv, offset) = self.get_global_location(func, index);
2235
+ Ok(GlobalVariable::Memory {
2236
+ gv,
2237
+ offset: offset.into(),
2238
+ ty: super::value_type(self.isa, ty),
2239
+ })
2240
+ }
2241
+
2242
+ fn make_indirect_sig(
2243
+ &mut self,
2244
+ func: &mut ir::Function,
2245
+ index: TypeIndex,
2246
+ ) -> WasmResult<ir::SigRef> {
2247
+ let index = self.module.types[index];
2248
+ let sig =
2249
+ crate::wasm_call_signature(self.isa, self.types[index].unwrap_func(), &self.tunables);
2250
+ Ok(func.import_signature(sig))
2251
+ }
2252
+
2253
+ fn make_direct_func(
2254
+ &mut self,
2255
+ func: &mut ir::Function,
2256
+ index: FuncIndex,
2257
+ ) -> WasmResult<ir::FuncRef> {
2258
+ let sig = self.module.functions[index].signature;
2259
+ let sig =
2260
+ crate::wasm_call_signature(self.isa, self.types[sig].unwrap_func(), &self.tunables);
2261
+ let signature = func.import_signature(sig);
2262
+ let name =
2263
+ ir::ExternalName::User(func.declare_imported_user_function(ir::UserExternalName {
2264
+ namespace: crate::NS_WASM_FUNC,
2265
+ index: index.as_u32(),
2266
+ }));
2267
+ Ok(func.import_function(ir::ExtFuncData {
2268
+ name,
2269
+ signature,
2270
+
2271
+ // The value of this flag determines the codegen for calls to this
2272
+ // function. If this flag is `false` then absolute relocations will
2273
+ // be generated for references to the function, which requires
2274
+ // load-time relocation resolution. If this flag is set to `true`
2275
+ // then relative relocations are emitted which can be resolved at
2276
+ // object-link-time, just after all functions are compiled.
2277
+ //
2278
+ // This flag is set to `true` for functions defined in the object
2279
+ // we'll be defining in this compilation unit, or everything local
2280
+ // to the wasm module. This means that between functions in a wasm
2281
+ // module there's relative calls encoded. All calls external to a
2282
+ // wasm module (e.g. imports or libcalls) are either encoded through
2283
+ // the `VMContext` as relative jumps (hence no relocations) or
2284
+ // they're libcalls with absolute relocations.
2285
+ colocated: self.module.defined_func_index(index).is_some(),
2286
+ }))
2287
+ }
2288
+
2289
+ fn translate_call_indirect(
2290
+ &mut self,
2291
+ builder: &mut FunctionBuilder,
2292
+ table_index: TableIndex,
2293
+ ty_index: TypeIndex,
2294
+ sig_ref: ir::SigRef,
2295
+ callee: ir::Value,
2296
+ call_args: &[ir::Value],
2297
+ ) -> WasmResult<Option<ir::Inst>> {
2298
+ Call::new(builder, self).indirect_call(table_index, ty_index, sig_ref, callee, call_args)
2299
+ }
2300
+
2301
+ fn translate_call(
2302
+ &mut self,
2303
+ builder: &mut FunctionBuilder,
2304
+ callee_index: FuncIndex,
2305
+ callee: ir::FuncRef,
2306
+ call_args: &[ir::Value],
2307
+ ) -> WasmResult<ir::Inst> {
2308
+ Call::new(builder, self).direct_call(callee_index, callee, call_args)
2309
+ }
2310
+
2311
+ fn translate_call_ref(
2312
+ &mut self,
2313
+ builder: &mut FunctionBuilder,
2314
+ sig_ref: ir::SigRef,
2315
+ callee: ir::Value,
2316
+ call_args: &[ir::Value],
2317
+ ) -> WasmResult<ir::Inst> {
2318
+ Call::new(builder, self).call_ref(sig_ref, callee, call_args)
2319
+ }
2320
+
2321
+ fn translate_return_call(
2322
+ &mut self,
2323
+ builder: &mut FunctionBuilder,
2324
+ callee_index: FuncIndex,
2325
+ callee: ir::FuncRef,
2326
+ call_args: &[ir::Value],
2327
+ ) -> WasmResult<()> {
2328
+ Call::new_tail(builder, self).direct_call(callee_index, callee, call_args)?;
2329
+ Ok(())
2330
+ }
2331
+
2332
+ fn translate_return_call_indirect(
2333
+ &mut self,
2334
+ builder: &mut FunctionBuilder,
2335
+ table_index: TableIndex,
2336
+ ty_index: TypeIndex,
2337
+ sig_ref: ir::SigRef,
2338
+ callee: ir::Value,
2339
+ call_args: &[ir::Value],
2340
+ ) -> WasmResult<()> {
2341
+ Call::new_tail(builder, self).indirect_call(
2342
+ table_index,
2343
+ ty_index,
2344
+ sig_ref,
2345
+ callee,
2346
+ call_args,
2347
+ )?;
2348
+ Ok(())
2349
+ }
2350
+
2351
+ fn translate_return_call_ref(
2352
+ &mut self,
2353
+ builder: &mut FunctionBuilder,
2354
+ sig_ref: ir::SigRef,
2355
+ callee: ir::Value,
2356
+ call_args: &[ir::Value],
2357
+ ) -> WasmResult<()> {
2358
+ Call::new_tail(builder, self).call_ref(sig_ref, callee, call_args)?;
2359
+ Ok(())
2360
+ }
2361
+
2362
+ fn translate_memory_grow(
2363
+ &mut self,
2364
+ mut pos: FuncCursor<'_>,
2365
+ index: MemoryIndex,
2366
+ _heap: Heap,
2367
+ val: ir::Value,
2368
+ ) -> WasmResult<ir::Value> {
2369
+ let memory_grow = self.builtin_functions.memory32_grow(&mut pos.func);
2370
+ let index_arg = index.index();
2371
+
2372
+ let memory_index = pos.ins().iconst(I32, index_arg as i64);
2373
+ let vmctx = self.vmctx_val(&mut pos);
2374
+
2375
+ let val = self.cast_memory_index_to_i64(&mut pos, val, index);
2376
+ let call_inst = pos.ins().call(memory_grow, &[vmctx, val, memory_index]);
2377
+ let result = *pos.func.dfg.inst_results(call_inst).first().unwrap();
2378
+ Ok(self.cast_pointer_to_memory_index(pos, result, index))
2379
+ }
2380
+
2381
+ fn translate_memory_size(
2382
+ &mut self,
2383
+ mut pos: FuncCursor<'_>,
2384
+ index: MemoryIndex,
2385
+ _heap: Heap,
2386
+ ) -> WasmResult<ir::Value> {
2387
+ let pointer_type = self.pointer_type();
2388
+ let vmctx = self.vmctx(&mut pos.func);
2389
+ let is_shared = self.module.memory_plans[index].memory.shared;
2390
+ let base = pos.ins().global_value(pointer_type, vmctx);
2391
+ let current_length_in_bytes = match self.module.defined_memory_index(index) {
2392
+ Some(def_index) => {
2393
+ if is_shared {
2394
+ let offset =
2395
+ i32::try_from(self.offsets.vmctx_vmmemory_pointer(def_index)).unwrap();
2396
+ let vmmemory_ptr =
2397
+ pos.ins()
2398
+ .load(pointer_type, ir::MemFlags::trusted(), base, offset);
2399
+ let vmmemory_definition_offset =
2400
+ i64::from(self.offsets.ptr.vmmemory_definition_current_length());
2401
+ let vmmemory_definition_ptr =
2402
+ pos.ins().iadd_imm(vmmemory_ptr, vmmemory_definition_offset);
2403
+ // This atomic access of the
2404
+ // `VMMemoryDefinition::current_length` is direct; no bounds
2405
+ // check is needed. This is possible because shared memory
2406
+ // has a static size (the maximum is always known). Shared
2407
+ // memory is thus built with a static memory plan and no
2408
+ // bounds-checked version of this is implemented.
2409
+ pos.ins().atomic_load(
2410
+ pointer_type,
2411
+ ir::MemFlags::trusted(),
2412
+ vmmemory_definition_ptr,
2413
+ )
2414
+ } else {
2415
+ let owned_index = self.module.owned_memory_index(def_index);
2416
+ let offset = i32::try_from(
2417
+ self.offsets
2418
+ .vmctx_vmmemory_definition_current_length(owned_index),
2419
+ )
2420
+ .unwrap();
2421
+ pos.ins()
2422
+ .load(pointer_type, ir::MemFlags::trusted(), base, offset)
2423
+ }
2424
+ }
2425
+ None => {
2426
+ let offset = i32::try_from(self.offsets.vmctx_vmmemory_import_from(index)).unwrap();
2427
+ let vmmemory_ptr =
2428
+ pos.ins()
2429
+ .load(pointer_type, ir::MemFlags::trusted(), base, offset);
2430
+ if is_shared {
2431
+ let vmmemory_definition_offset =
2432
+ i64::from(self.offsets.ptr.vmmemory_definition_current_length());
2433
+ let vmmemory_definition_ptr =
2434
+ pos.ins().iadd_imm(vmmemory_ptr, vmmemory_definition_offset);
2435
+ pos.ins().atomic_load(
2436
+ pointer_type,
2437
+ ir::MemFlags::trusted(),
2438
+ vmmemory_definition_ptr,
2439
+ )
2440
+ } else {
2441
+ pos.ins().load(
2442
+ pointer_type,
2443
+ ir::MemFlags::trusted(),
2444
+ vmmemory_ptr,
2445
+ i32::from(self.offsets.ptr.vmmemory_definition_current_length()),
2446
+ )
2447
+ }
2448
+ }
2449
+ };
2450
+ let current_length_in_pages = pos
2451
+ .ins()
2452
+ .udiv_imm(current_length_in_bytes, i64::from(WASM_PAGE_SIZE));
2453
+
2454
+ Ok(self.cast_pointer_to_memory_index(pos, current_length_in_pages, index))
2455
+ }
2456
+
2457
+ fn translate_memory_copy(
2458
+ &mut self,
2459
+ mut pos: FuncCursor,
2460
+ src_index: MemoryIndex,
2461
+ _src_heap: Heap,
2462
+ dst_index: MemoryIndex,
2463
+ _dst_heap: Heap,
2464
+ dst: ir::Value,
2465
+ src: ir::Value,
2466
+ len: ir::Value,
2467
+ ) -> WasmResult<()> {
2468
+ let vmctx = self.vmctx_val(&mut pos);
2469
+
2470
+ let memory_copy = self.builtin_functions.memory_copy(&mut pos.func);
2471
+ let dst = self.cast_memory_index_to_i64(&mut pos, dst, dst_index);
2472
+ let src = self.cast_memory_index_to_i64(&mut pos, src, src_index);
2473
+ // The length is 32-bit if either memory is 32-bit, but if they're both
2474
+ // 64-bit then it's 64-bit. Our intrinsic takes a 64-bit length for
2475
+ // compatibility across all memories, so make sure that it's cast
2476
+ // correctly here (this is a bit special so no generic helper unlike for
2477
+ // `dst`/`src` above)
2478
+ let len = if self.memory_index_type(dst_index) == I64
2479
+ && self.memory_index_type(src_index) == I64
2480
+ {
2481
+ len
2482
+ } else {
2483
+ pos.ins().uextend(I64, len)
2484
+ };
2485
+ let src_index = pos.ins().iconst(I32, i64::from(src_index.as_u32()));
2486
+ let dst_index = pos.ins().iconst(I32, i64::from(dst_index.as_u32()));
2487
+ pos.ins()
2488
+ .call(memory_copy, &[vmctx, dst_index, dst, src_index, src, len]);
2489
+
2490
+ Ok(())
2491
+ }
2492
+
2493
+ fn translate_memory_fill(
2494
+ &mut self,
2495
+ mut pos: FuncCursor,
2496
+ memory_index: MemoryIndex,
2497
+ _heap: Heap,
2498
+ dst: ir::Value,
2499
+ val: ir::Value,
2500
+ len: ir::Value,
2501
+ ) -> WasmResult<()> {
2502
+ let memory_fill = self.builtin_functions.memory_fill(&mut pos.func);
2503
+ let dst = self.cast_memory_index_to_i64(&mut pos, dst, memory_index);
2504
+ let len = self.cast_memory_index_to_i64(&mut pos, len, memory_index);
2505
+ let memory_index_arg = pos.ins().iconst(I32, i64::from(memory_index.as_u32()));
2506
+
2507
+ let vmctx = self.vmctx_val(&mut pos);
2508
+
2509
+ pos.ins()
2510
+ .call(memory_fill, &[vmctx, memory_index_arg, dst, val, len]);
2511
+
2512
+ Ok(())
2513
+ }
2514
+
2515
+ fn translate_memory_init(
2516
+ &mut self,
2517
+ mut pos: FuncCursor,
2518
+ memory_index: MemoryIndex,
2519
+ _heap: Heap,
2520
+ seg_index: u32,
2521
+ dst: ir::Value,
2522
+ src: ir::Value,
2523
+ len: ir::Value,
2524
+ ) -> WasmResult<()> {
2525
+ let memory_init = self.builtin_functions.memory_init(&mut pos.func);
2526
+
2527
+ let memory_index_arg = pos.ins().iconst(I32, memory_index.index() as i64);
2528
+ let seg_index_arg = pos.ins().iconst(I32, seg_index as i64);
2529
+
2530
+ let vmctx = self.vmctx_val(&mut pos);
2531
+
2532
+ let dst = self.cast_memory_index_to_i64(&mut pos, dst, memory_index);
2533
+
2534
+ pos.ins().call(
2535
+ memory_init,
2536
+ &[vmctx, memory_index_arg, seg_index_arg, dst, src, len],
2537
+ );
2538
+
2539
+ Ok(())
2540
+ }
2541
+
2542
+ fn translate_data_drop(&mut self, mut pos: FuncCursor, seg_index: u32) -> WasmResult<()> {
2543
+ let data_drop = self.builtin_functions.data_drop(&mut pos.func);
2544
+ let seg_index_arg = pos.ins().iconst(I32, seg_index as i64);
2545
+ let vmctx = self.vmctx_val(&mut pos);
2546
+ pos.ins().call(data_drop, &[vmctx, seg_index_arg]);
2547
+ Ok(())
2548
+ }
2549
+
2550
+ fn translate_table_size(
2551
+ &mut self,
2552
+ pos: FuncCursor,
2553
+ table_index: TableIndex,
2554
+ ) -> WasmResult<ir::Value> {
2555
+ self.ensure_table_exists(pos.func, table_index);
2556
+ let table_data = self.tables[table_index].as_ref().unwrap();
2557
+ Ok(table_data.bound.bound(pos, ir::types::I32))
2558
+ }
2559
+
2560
+ fn translate_table_copy(
2561
+ &mut self,
2562
+ mut pos: FuncCursor,
2563
+ dst_table_index: TableIndex,
2564
+ src_table_index: TableIndex,
2565
+ dst: ir::Value,
2566
+ src: ir::Value,
2567
+ len: ir::Value,
2568
+ ) -> WasmResult<()> {
2569
+ let (table_copy, dst_table_index_arg, src_table_index_arg) =
2570
+ self.get_table_copy_func(&mut pos.func, dst_table_index, src_table_index);
2571
+
2572
+ let dst_table_index_arg = pos.ins().iconst(I32, dst_table_index_arg as i64);
2573
+ let src_table_index_arg = pos.ins().iconst(I32, src_table_index_arg as i64);
2574
+ let vmctx = self.vmctx_val(&mut pos);
2575
+ pos.ins().call(
2576
+ table_copy,
2577
+ &[
2578
+ vmctx,
2579
+ dst_table_index_arg,
2580
+ src_table_index_arg,
2581
+ dst,
2582
+ src,
2583
+ len,
2584
+ ],
2585
+ );
2586
+
2587
+ Ok(())
2588
+ }
2589
+
2590
+ fn translate_table_init(
2591
+ &mut self,
2592
+ mut pos: FuncCursor,
2593
+ seg_index: u32,
2594
+ table_index: TableIndex,
2595
+ dst: ir::Value,
2596
+ src: ir::Value,
2597
+ len: ir::Value,
2598
+ ) -> WasmResult<()> {
2599
+ let table_init = self.builtin_functions.table_init(&mut pos.func);
2600
+ let table_index_arg = pos.ins().iconst(I32, i64::from(table_index.as_u32()));
2601
+ let seg_index_arg = pos.ins().iconst(I32, i64::from(seg_index));
2602
+ let vmctx = self.vmctx_val(&mut pos);
2603
+ pos.ins().call(
2604
+ table_init,
2605
+ &[vmctx, table_index_arg, seg_index_arg, dst, src, len],
2606
+ );
2607
+
2608
+ Ok(())
2609
+ }
2610
+
2611
+ fn translate_elem_drop(&mut self, mut pos: FuncCursor, elem_index: u32) -> WasmResult<()> {
2612
+ let elem_drop = self.builtin_functions.elem_drop(&mut pos.func);
2613
+ let elem_index_arg = pos.ins().iconst(I32, elem_index as i64);
2614
+ let vmctx = self.vmctx_val(&mut pos);
2615
+ pos.ins().call(elem_drop, &[vmctx, elem_index_arg]);
2616
+ Ok(())
2617
+ }
2618
+
2619
+ fn translate_atomic_wait(
2620
+ &mut self,
2621
+ mut pos: FuncCursor,
2622
+ memory_index: MemoryIndex,
2623
+ _heap: Heap,
2624
+ addr: ir::Value,
2625
+ expected: ir::Value,
2626
+ timeout: ir::Value,
2627
+ ) -> WasmResult<ir::Value> {
2628
+ #[cfg(feature = "threads")]
2629
+ {
2630
+ let addr = self.cast_memory_index_to_i64(&mut pos, addr, memory_index);
2631
+ let implied_ty = pos.func.dfg.value_type(expected);
2632
+ let (wait_func, memory_index) =
2633
+ self.get_memory_atomic_wait(&mut pos.func, memory_index, implied_ty);
2634
+
2635
+ let memory_index_arg = pos.ins().iconst(I32, memory_index as i64);
2636
+
2637
+ let vmctx = self.vmctx_val(&mut pos);
2638
+
2639
+ let call_inst = pos.ins().call(
2640
+ wait_func,
2641
+ &[vmctx, memory_index_arg, addr, expected, timeout],
2642
+ );
2643
+
2644
+ Ok(*pos.func.dfg.inst_results(call_inst).first().unwrap())
2645
+ }
2646
+ #[cfg(not(feature = "threads"))]
2647
+ {
2648
+ let _ = (&mut pos, memory_index, addr, expected, timeout);
2649
+ Err(wasmtime_environ::WasmError::Unsupported(
2650
+ "threads support disabled at compile time".to_string(),
2651
+ ))
2652
+ }
2653
+ }
2654
+
2655
+ fn translate_atomic_notify(
2656
+ &mut self,
2657
+ mut pos: FuncCursor,
2658
+ memory_index: MemoryIndex,
2659
+ _heap: Heap,
2660
+ addr: ir::Value,
2661
+ count: ir::Value,
2662
+ ) -> WasmResult<ir::Value> {
2663
+ #[cfg(feature = "threads")]
2664
+ {
2665
+ let addr = self.cast_memory_index_to_i64(&mut pos, addr, memory_index);
2666
+ let atomic_notify = self.builtin_functions.memory_atomic_notify(&mut pos.func);
2667
+
2668
+ let memory_index_arg = pos.ins().iconst(I32, memory_index.index() as i64);
2669
+ let vmctx = self.vmctx_val(&mut pos);
2670
+ let call_inst = pos
2671
+ .ins()
2672
+ .call(atomic_notify, &[vmctx, memory_index_arg, addr, count]);
2673
+
2674
+ Ok(*pos.func.dfg.inst_results(call_inst).first().unwrap())
2675
+ }
2676
+ #[cfg(not(feature = "threads"))]
2677
+ {
2678
+ let _ = (&mut pos, memory_index, addr, count);
2679
+ Err(wasmtime_environ::WasmError::Unsupported(
2680
+ "threads support disabled at compile time".to_string(),
2681
+ ))
2682
+ }
2683
+ }
2684
+
2685
+ fn translate_loop_header(&mut self, builder: &mut FunctionBuilder) -> WasmResult<()> {
2686
+ // Additionally if enabled check how much fuel we have remaining to see
2687
+ // if we've run out by this point.
2688
+ if self.tunables.consume_fuel {
2689
+ self.fuel_check(builder);
2690
+ }
2691
+
2692
+ // If we are performing epoch-based interruption, check to see
2693
+ // if the epoch counter has changed.
2694
+ if self.tunables.epoch_interruption {
2695
+ self.epoch_check(builder);
2696
+ }
2697
+
2698
+ Ok(())
2699
+ }
2700
+
2701
+ fn before_translate_operator(
2702
+ &mut self,
2703
+ op: &Operator,
2704
+ builder: &mut FunctionBuilder,
2705
+ state: &FuncTranslationState,
2706
+ ) -> WasmResult<()> {
2707
+ if self.tunables.consume_fuel {
2708
+ self.fuel_before_op(op, builder, state.reachable());
2709
+ }
2710
+ Ok(())
2711
+ }
2712
+
2713
+ fn after_translate_operator(
2714
+ &mut self,
2715
+ op: &Operator,
2716
+ builder: &mut FunctionBuilder,
2717
+ state: &FuncTranslationState,
2718
+ ) -> WasmResult<()> {
2719
+ if self.tunables.consume_fuel && state.reachable() {
2720
+ self.fuel_after_op(op, builder);
2721
+ }
2722
+ Ok(())
2723
+ }
2724
+
2725
+ fn before_unconditionally_trapping_memory_access(
2726
+ &mut self,
2727
+ builder: &mut FunctionBuilder,
2728
+ ) -> WasmResult<()> {
2729
+ if self.tunables.consume_fuel {
2730
+ self.fuel_increment_var(builder);
2731
+ self.fuel_save_from_var(builder);
2732
+ }
2733
+ Ok(())
2734
+ }
2735
+
2736
+ fn before_translate_function(
2737
+ &mut self,
2738
+ builder: &mut FunctionBuilder,
2739
+ _state: &FuncTranslationState,
2740
+ ) -> WasmResult<()> {
2741
+ // If the `vmruntime_limits_ptr` variable will get used then we initialize
2742
+ // it here.
2743
+ if self.tunables.consume_fuel || self.tunables.epoch_interruption {
2744
+ self.declare_vmruntime_limits_ptr(builder);
2745
+ }
2746
+ // Additionally we initialize `fuel_var` if it will get used.
2747
+ if self.tunables.consume_fuel {
2748
+ self.fuel_function_entry(builder);
2749
+ }
2750
+ // Initialize `epoch_var` with the current epoch.
2751
+ if self.tunables.epoch_interruption {
2752
+ self.epoch_function_entry(builder);
2753
+ }
2754
+
2755
+ #[cfg(feature = "wmemcheck")]
2756
+ {
2757
+ let func_name = self.current_func_name(builder);
2758
+ if func_name == Some("malloc") {
2759
+ self.check_malloc_start(builder);
2760
+ } else if func_name == Some("free") {
2761
+ self.check_free_start(builder);
2762
+ }
2763
+ }
2764
+
2765
+ Ok(())
2766
+ }
2767
+
2768
+ fn after_translate_function(
2769
+ &mut self,
2770
+ builder: &mut FunctionBuilder,
2771
+ state: &FuncTranslationState,
2772
+ ) -> WasmResult<()> {
2773
+ if self.tunables.consume_fuel && state.reachable() {
2774
+ self.fuel_function_exit(builder);
2775
+ }
2776
+ Ok(())
2777
+ }
2778
+
2779
+ fn relaxed_simd_deterministic(&self) -> bool {
2780
+ self.tunables.relaxed_simd_deterministic
2781
+ }
2782
+
2783
+ fn has_native_fma(&self) -> bool {
2784
+ self.isa.has_native_fma()
2785
+ }
2786
+
2787
+ fn is_x86(&self) -> bool {
2788
+ self.isa.triple().architecture == target_lexicon::Architecture::X86_64
2789
+ }
2790
+
2791
+ fn use_x86_blendv_for_relaxed_laneselect(&self, ty: Type) -> bool {
2792
+ self.isa.has_x86_blendv_lowering(ty)
2793
+ }
2794
+
2795
+ fn use_x86_pshufb_for_relaxed_swizzle(&self) -> bool {
2796
+ self.isa.has_x86_pshufb_lowering()
2797
+ }
2798
+
2799
+ fn use_x86_pmulhrsw_for_relaxed_q15mul(&self) -> bool {
2800
+ self.isa.has_x86_pmulhrsw_lowering()
2801
+ }
2802
+
2803
+ fn use_x86_pmaddubsw_for_dot(&self) -> bool {
2804
+ self.isa.has_x86_pmaddubsw_lowering()
2805
+ }
2806
+
2807
+ #[cfg(feature = "wmemcheck")]
2808
+ fn handle_before_return(&mut self, retvals: &[ir::Value], builder: &mut FunctionBuilder) {
2809
+ if self.wmemcheck {
2810
+ let func_name = self.current_func_name(builder);
2811
+ if func_name == Some("malloc") {
2812
+ self.hook_malloc_exit(builder, retvals);
2813
+ } else if func_name == Some("free") {
2814
+ self.hook_free_exit(builder);
2815
+ }
2816
+ }
2817
+ }
2818
+
2819
+ #[cfg(feature = "wmemcheck")]
2820
+ fn before_load(
2821
+ &mut self,
2822
+ builder: &mut FunctionBuilder,
2823
+ val_size: u8,
2824
+ addr: ir::Value,
2825
+ offset: u64,
2826
+ ) {
2827
+ if self.wmemcheck {
2828
+ let check_load = self.builtin_functions.check_load(builder.func);
2829
+ let vmctx = self.vmctx_val(&mut builder.cursor());
2830
+ let num_bytes = builder.ins().iconst(I32, val_size as i64);
2831
+ let offset_val = builder.ins().iconst(I64, offset as i64);
2832
+ builder
2833
+ .ins()
2834
+ .call(check_load, &[vmctx, num_bytes, addr, offset_val]);
2835
+ }
2836
+ }
2837
+
2838
+ #[cfg(feature = "wmemcheck")]
2839
+ fn before_store(
2840
+ &mut self,
2841
+ builder: &mut FunctionBuilder,
2842
+ val_size: u8,
2843
+ addr: ir::Value,
2844
+ offset: u64,
2845
+ ) {
2846
+ if self.wmemcheck {
2847
+ let check_store = self.builtin_functions.check_store(builder.func);
2848
+ let vmctx = self.vmctx_val(&mut builder.cursor());
2849
+ let num_bytes = builder.ins().iconst(I32, val_size as i64);
2850
+ let offset_val = builder.ins().iconst(I64, offset as i64);
2851
+ builder
2852
+ .ins()
2853
+ .call(check_store, &[vmctx, num_bytes, addr, offset_val]);
2854
+ }
2855
+ }
2856
+
2857
+ #[cfg(feature = "wmemcheck")]
2858
+ fn update_global(
2859
+ &mut self,
2860
+ builder: &mut FunctionBuilder,
2861
+ global_index: u32,
2862
+ value: ir::Value,
2863
+ ) {
2864
+ if self.wmemcheck {
2865
+ if global_index == 0 {
2866
+ // We are making the assumption that global 0 is the auxiliary stack pointer.
2867
+ let update_stack_pointer =
2868
+ self.builtin_functions.update_stack_pointer(builder.func);
2869
+ let vmctx = self.vmctx_val(&mut builder.cursor());
2870
+ builder.ins().call(update_stack_pointer, &[vmctx, value]);
2871
+ }
2872
+ }
2873
+ }
2874
+
2875
+ #[cfg(feature = "wmemcheck")]
2876
+ fn before_memory_grow(
2877
+ &mut self,
2878
+ builder: &mut FunctionBuilder,
2879
+ num_pages: ir::Value,
2880
+ mem_index: MemoryIndex,
2881
+ ) {
2882
+ if self.wmemcheck && mem_index.as_u32() == 0 {
2883
+ let update_mem_size = self.builtin_functions.update_mem_size(builder.func);
2884
+ let vmctx = self.vmctx_val(&mut builder.cursor());
2885
+ builder.ins().call(update_mem_size, &[vmctx, num_pages]);
2886
+ }
2887
+ }
2888
+ }