wasmtime 20.0.2 → 21.0.1

Sign up to get free protection for your applications and to get access to all the features.
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,2904 @@
1
+ use crate::prelude::*;
2
+ use alloc::sync::Arc;
3
+ use anyhow::{bail, ensure, Result};
4
+ use core::fmt;
5
+ use core::str::FromStr;
6
+ use hashbrown::{HashMap, HashSet};
7
+ use serde_derive::{Deserialize, Serialize};
8
+ #[cfg(any(feature = "cache", feature = "cranelift", feature = "winch"))]
9
+ use std::path::Path;
10
+ use target_lexicon::Architecture;
11
+ use wasmparser::WasmFeatures;
12
+ #[cfg(feature = "cache")]
13
+ use wasmtime_cache::CacheConfig;
14
+ use wasmtime_environ::Tunables;
15
+
16
+ #[cfg(feature = "runtime")]
17
+ use crate::memory::MemoryCreator;
18
+ #[cfg(feature = "runtime")]
19
+ use crate::profiling_agent::{self, ProfilingAgent};
20
+ #[cfg(feature = "runtime")]
21
+ use crate::runtime::vm::{
22
+ GcRuntime, InstanceAllocator, OnDemandInstanceAllocator, RuntimeMemoryCreator,
23
+ };
24
+ #[cfg(feature = "runtime")]
25
+ use crate::trampoline::MemoryCreatorProxy;
26
+
27
+ #[cfg(feature = "async")]
28
+ use crate::stack::{StackCreator, StackCreatorProxy};
29
+ #[cfg(feature = "async")]
30
+ use wasmtime_fiber::RuntimeFiberStackCreator;
31
+
32
+ #[cfg(feature = "pooling-allocator")]
33
+ use crate::runtime::vm::mpk;
34
+ #[cfg(feature = "pooling-allocator")]
35
+ pub use crate::runtime::vm::MpkEnabled;
36
+ #[cfg(all(feature = "incremental-cache", feature = "cranelift"))]
37
+ pub use wasmtime_environ::CacheStore;
38
+
39
+ /// Represents the module instance allocation strategy to use.
40
+ #[derive(Clone)]
41
+ pub enum InstanceAllocationStrategy {
42
+ /// The on-demand instance allocation strategy.
43
+ ///
44
+ /// Resources related to a module instance are allocated at instantiation time and
45
+ /// immediately deallocated when the `Store` referencing the instance is dropped.
46
+ ///
47
+ /// This is the default allocation strategy for Wasmtime.
48
+ OnDemand,
49
+ /// The pooling instance allocation strategy.
50
+ ///
51
+ /// A pool of resources is created in advance and module instantiation reuses resources
52
+ /// from the pool. Resources are returned to the pool when the `Store` referencing the instance
53
+ /// is dropped.
54
+ #[cfg(feature = "pooling-allocator")]
55
+ Pooling(PoolingAllocationConfig),
56
+ }
57
+
58
+ impl InstanceAllocationStrategy {
59
+ /// The default pooling instance allocation strategy.
60
+ #[cfg(feature = "pooling-allocator")]
61
+ pub fn pooling() -> Self {
62
+ Self::Pooling(Default::default())
63
+ }
64
+ }
65
+
66
+ impl Default for InstanceAllocationStrategy {
67
+ fn default() -> Self {
68
+ Self::OnDemand
69
+ }
70
+ }
71
+
72
+ #[derive(Clone)]
73
+ /// Configure the strategy used for versioning in serializing and deserializing [`crate::Module`].
74
+ pub enum ModuleVersionStrategy {
75
+ /// Use the wasmtime crate's Cargo package version.
76
+ WasmtimeVersion,
77
+ /// Use a custom version string. Must be at most 255 bytes.
78
+ Custom(String),
79
+ /// Emit no version string in serialization, and accept all version strings in deserialization.
80
+ None,
81
+ }
82
+
83
+ impl Default for ModuleVersionStrategy {
84
+ fn default() -> Self {
85
+ ModuleVersionStrategy::WasmtimeVersion
86
+ }
87
+ }
88
+
89
+ impl core::hash::Hash for ModuleVersionStrategy {
90
+ fn hash<H: core::hash::Hasher>(&self, hasher: &mut H) {
91
+ match self {
92
+ Self::WasmtimeVersion => env!("CARGO_PKG_VERSION").hash(hasher),
93
+ Self::Custom(s) => s.hash(hasher),
94
+ Self::None => {}
95
+ };
96
+ }
97
+ }
98
+
99
+ /// Global configuration options used to create an [`Engine`](crate::Engine)
100
+ /// and customize its behavior.
101
+ ///
102
+ /// This structure exposed a builder-like interface and is primarily consumed by
103
+ /// [`Engine::new()`](crate::Engine::new).
104
+ ///
105
+ /// The validation of `Config` is deferred until the engine is being built, thus
106
+ /// a problematic config may cause `Engine::new` to fail.
107
+ #[derive(Clone)]
108
+ pub struct Config {
109
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
110
+ compiler_config: CompilerConfig,
111
+ profiling_strategy: ProfilingStrategy,
112
+ tunables: ConfigTunables,
113
+
114
+ #[cfg(feature = "cache")]
115
+ pub(crate) cache_config: CacheConfig,
116
+ #[cfg(feature = "runtime")]
117
+ pub(crate) mem_creator: Option<Arc<dyn RuntimeMemoryCreator>>,
118
+ pub(crate) allocation_strategy: InstanceAllocationStrategy,
119
+ pub(crate) max_wasm_stack: usize,
120
+ pub(crate) features: WasmFeatures,
121
+ pub(crate) wasm_backtrace: bool,
122
+ pub(crate) wasm_backtrace_details_env_used: bool,
123
+ pub(crate) native_unwind_info: Option<bool>,
124
+ #[cfg(feature = "async")]
125
+ pub(crate) async_stack_size: usize,
126
+ #[cfg(feature = "async")]
127
+ pub(crate) stack_creator: Option<Arc<dyn RuntimeFiberStackCreator>>,
128
+ pub(crate) async_support: bool,
129
+ pub(crate) module_version: ModuleVersionStrategy,
130
+ pub(crate) parallel_compilation: bool,
131
+ pub(crate) memory_init_cow: bool,
132
+ pub(crate) memory_guaranteed_dense_image_size: u64,
133
+ pub(crate) force_memory_init_memfd: bool,
134
+ pub(crate) wmemcheck: bool,
135
+ pub(crate) coredump_on_trap: bool,
136
+ pub(crate) macos_use_mach_ports: bool,
137
+ pub(crate) detect_host_feature: Option<fn(&str) -> Option<bool>>,
138
+ }
139
+
140
+ #[derive(Default, Clone)]
141
+ struct ConfigTunables {
142
+ static_memory_bound: Option<u64>,
143
+ static_memory_offset_guard_size: Option<u64>,
144
+ dynamic_memory_offset_guard_size: Option<u64>,
145
+ dynamic_memory_growth_reserve: Option<u64>,
146
+ generate_native_debuginfo: Option<bool>,
147
+ parse_wasm_debuginfo: Option<bool>,
148
+ consume_fuel: Option<bool>,
149
+ epoch_interruption: Option<bool>,
150
+ static_memory_bound_is_maximum: Option<bool>,
151
+ guard_before_linear_memory: Option<bool>,
152
+ generate_address_map: Option<bool>,
153
+ debug_adapter_modules: Option<bool>,
154
+ relaxed_simd_deterministic: Option<bool>,
155
+ tail_callable: Option<bool>,
156
+ cache_call_indirects: Option<bool>,
157
+ max_call_indirect_cache_slots: Option<usize>,
158
+ }
159
+
160
+ /// User-provided configuration for the compiler.
161
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
162
+ #[derive(Debug, Clone)]
163
+ struct CompilerConfig {
164
+ strategy: Strategy,
165
+ target: Option<target_lexicon::Triple>,
166
+ settings: HashMap<String, String>,
167
+ flags: HashSet<String>,
168
+ #[cfg(all(feature = "incremental-cache", feature = "cranelift"))]
169
+ cache_store: Option<Arc<dyn CacheStore>>,
170
+ clif_dir: Option<std::path::PathBuf>,
171
+ wmemcheck: bool,
172
+ }
173
+
174
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
175
+ impl CompilerConfig {
176
+ fn new(strategy: Strategy) -> Self {
177
+ Self {
178
+ strategy,
179
+ target: None,
180
+ settings: HashMap::new(),
181
+ flags: HashSet::new(),
182
+ #[cfg(all(feature = "incremental-cache", feature = "cranelift"))]
183
+ cache_store: None,
184
+ clif_dir: None,
185
+ wmemcheck: false,
186
+ }
187
+ }
188
+
189
+ /// Ensures that the key is not set or equals to the given value.
190
+ /// If the key is not set, it will be set to the given value.
191
+ ///
192
+ /// # Returns
193
+ ///
194
+ /// Returns true if successfully set or already had the given setting
195
+ /// value, or false if the setting was explicitly set to something
196
+ /// else previously.
197
+ fn ensure_setting_unset_or_given(&mut self, k: &str, v: &str) -> bool {
198
+ if let Some(value) = self.settings.get(k) {
199
+ if value != v {
200
+ return false;
201
+ }
202
+ } else {
203
+ self.settings.insert(k.to_string(), v.to_string());
204
+ }
205
+ true
206
+ }
207
+ }
208
+
209
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
210
+ impl Default for CompilerConfig {
211
+ fn default() -> Self {
212
+ Self::new(Strategy::Auto)
213
+ }
214
+ }
215
+
216
+ impl Config {
217
+ /// Creates a new configuration object with the default configuration
218
+ /// specified.
219
+ pub fn new() -> Self {
220
+ let mut ret = Self {
221
+ tunables: ConfigTunables::default(),
222
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
223
+ compiler_config: CompilerConfig::default(),
224
+ #[cfg(feature = "cache")]
225
+ cache_config: CacheConfig::new_cache_disabled(),
226
+ profiling_strategy: ProfilingStrategy::None,
227
+ #[cfg(feature = "runtime")]
228
+ mem_creator: None,
229
+ allocation_strategy: InstanceAllocationStrategy::OnDemand,
230
+ // 512k of stack -- note that this is chosen currently to not be too
231
+ // big, not be too small, and be a good default for most platforms.
232
+ // One platform of particular note is Windows where the stack size
233
+ // of the main thread seems to, by default, be smaller than that of
234
+ // Linux and macOS. This 512k value at least lets our current test
235
+ // suite pass on the main thread of Windows (using `--test-threads
236
+ // 1` forces this), or at least it passed when this change was
237
+ // committed.
238
+ max_wasm_stack: 512 * 1024,
239
+ wasm_backtrace: true,
240
+ wasm_backtrace_details_env_used: false,
241
+ native_unwind_info: None,
242
+ features: WasmFeatures::default(),
243
+ #[cfg(feature = "async")]
244
+ async_stack_size: 2 << 20,
245
+ #[cfg(feature = "async")]
246
+ stack_creator: None,
247
+ async_support: false,
248
+ module_version: ModuleVersionStrategy::default(),
249
+ parallel_compilation: !cfg!(miri),
250
+ memory_init_cow: true,
251
+ memory_guaranteed_dense_image_size: 16 << 20,
252
+ force_memory_init_memfd: false,
253
+ wmemcheck: false,
254
+ coredump_on_trap: false,
255
+ macos_use_mach_ports: !cfg!(miri),
256
+ #[cfg(feature = "std")]
257
+ detect_host_feature: Some(detect_host_feature),
258
+ #[cfg(not(feature = "std"))]
259
+ detect_host_feature: None,
260
+ };
261
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
262
+ {
263
+ ret.cranelift_debug_verifier(false);
264
+ ret.cranelift_opt_level(OptLevel::Speed);
265
+ }
266
+
267
+ // Not yet implemented in Wasmtime
268
+ ret.features.set(WasmFeatures::EXTENDED_CONST, false);
269
+
270
+ // Conditionally enabled features depending on compile-time crate
271
+ // features. Note that if these features are disabled then `Config` has
272
+ // no way of re-enabling them.
273
+ ret.features
274
+ .set(WasmFeatures::REFERENCE_TYPES, cfg!(feature = "gc"));
275
+ ret.features
276
+ .set(WasmFeatures::THREADS, cfg!(feature = "threads"));
277
+ ret.features.set(
278
+ WasmFeatures::COMPONENT_MODEL,
279
+ cfg!(feature = "component-model"),
280
+ );
281
+
282
+ // If GC is disabled at compile time also disable it in features
283
+ // forcibly irrespective of `wasmparser` defaults. Note that these also
284
+ // aren't yet fully implemented in Wasmtime.
285
+ if !cfg!(feature = "gc") {
286
+ ret.features.set(WasmFeatures::FUNCTION_REFERENCES, false);
287
+ ret.features.set(WasmFeatures::GC, false);
288
+ }
289
+
290
+ ret.wasm_multi_value(true);
291
+ ret.wasm_bulk_memory(true);
292
+ ret.wasm_simd(true);
293
+ ret.wasm_backtrace_details(WasmBacktraceDetails::Environment);
294
+
295
+ // This is on-by-default in `wasmparser` since it's a stage 4+ proposal
296
+ // but it's not implemented in Wasmtime yet so disable it.
297
+ ret.features.set(WasmFeatures::TAIL_CALL, false);
298
+
299
+ ret
300
+ }
301
+
302
+ /// Sets the target triple for the [`Config`].
303
+ ///
304
+ /// By default, the host target triple is used for the [`Config`].
305
+ ///
306
+ /// This method can be used to change the target triple.
307
+ ///
308
+ /// Cranelift flags will not be inferred for the given target and any
309
+ /// existing target-specific Cranelift flags will be cleared.
310
+ ///
311
+ /// # Errors
312
+ ///
313
+ /// This method will error if the given target triple is not supported.
314
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
315
+ pub fn target(&mut self, target: &str) -> Result<&mut Self> {
316
+ self.compiler_config.target =
317
+ Some(target_lexicon::Triple::from_str(target).map_err(|e| anyhow::anyhow!(e))?);
318
+
319
+ Ok(self)
320
+ }
321
+
322
+ /// Enables the incremental compilation cache in Cranelift, using the provided `CacheStore`
323
+ /// backend for storage.
324
+ #[cfg(all(feature = "incremental-cache", feature = "cranelift"))]
325
+ pub fn enable_incremental_compilation(
326
+ &mut self,
327
+ cache_store: Arc<dyn CacheStore>,
328
+ ) -> Result<&mut Self> {
329
+ self.compiler_config.cache_store = Some(cache_store);
330
+ Ok(self)
331
+ }
332
+
333
+ /// Whether or not to enable support for asynchronous functions in Wasmtime.
334
+ ///
335
+ /// When enabled, the config can optionally define host functions with `async`.
336
+ /// Instances created and functions called with this `Config` *must* be called
337
+ /// through their asynchronous APIs, however. For example using
338
+ /// [`Func::call`](crate::Func::call) will panic when used with this config.
339
+ ///
340
+ /// # Asynchronous Wasm
341
+ ///
342
+ /// WebAssembly does not currently have a way to specify at the bytecode
343
+ /// level what is and isn't async. Host-defined functions, however, may be
344
+ /// defined as `async`. WebAssembly imports always appear synchronous, which
345
+ /// gives rise to a bit of an impedance mismatch here. To solve this
346
+ /// Wasmtime supports "asynchronous configs" which enables calling these
347
+ /// asynchronous functions in a way that looks synchronous to the executing
348
+ /// WebAssembly code.
349
+ ///
350
+ /// An asynchronous config must always invoke wasm code asynchronously,
351
+ /// meaning we'll always represent its computation as a
352
+ /// [`Future`](std::future::Future). The `poll` method of the futures
353
+ /// returned by Wasmtime will perform the actual work of calling the
354
+ /// WebAssembly. Wasmtime won't manage its own thread pools or similar,
355
+ /// that's left up to the embedder.
356
+ ///
357
+ /// To implement futures in a way that WebAssembly sees asynchronous host
358
+ /// functions as synchronous, all async Wasmtime futures will execute on a
359
+ /// separately allocated native stack from the thread otherwise executing
360
+ /// Wasmtime. This separate native stack can then be switched to and from.
361
+ /// Using this whenever an `async` host function returns a future that
362
+ /// resolves to `Pending` we switch away from the temporary stack back to
363
+ /// the main stack and propagate the `Pending` status.
364
+ ///
365
+ /// In general it's encouraged that the integration with `async` and
366
+ /// wasmtime is designed early on in your embedding of Wasmtime to ensure
367
+ /// that it's planned that WebAssembly executes in the right context of your
368
+ /// application.
369
+ ///
370
+ /// # Execution in `poll`
371
+ ///
372
+ /// The [`Future::poll`](std::future::Future::poll) method is the main
373
+ /// driving force behind Rust's futures. That method's own documentation
374
+ /// states "an implementation of `poll` should strive to return quickly, and
375
+ /// should not block". This, however, can be at odds with executing
376
+ /// WebAssembly code as part of the `poll` method itself. If your
377
+ /// WebAssembly is untrusted then this could allow the `poll` method to take
378
+ /// arbitrarily long in the worst case, likely blocking all other
379
+ /// asynchronous tasks.
380
+ ///
381
+ /// To remedy this situation you have a a few possible ways to solve this:
382
+ ///
383
+ /// * The most efficient solution is to enable
384
+ /// [`Config::epoch_interruption`] in conjunction with
385
+ /// [`crate::Store::epoch_deadline_async_yield_and_update`]. Coupled with
386
+ /// periodic calls to [`crate::Engine::increment_epoch`] this will cause
387
+ /// executing WebAssembly to periodically yield back according to the
388
+ /// epoch configuration settings. This enables `Future::poll` to take at
389
+ /// most a certain amount of time according to epoch configuration
390
+ /// settings and when increments happen. The benefit of this approach is
391
+ /// that the instrumentation in compiled code is quite lightweight, but a
392
+ /// downside can be that the scheduling is somewhat nondeterministic since
393
+ /// increments are usually timer-based which are not always deterministic.
394
+ ///
395
+ /// Note that to prevent infinite execution of wasm it's recommended to
396
+ /// place a timeout on the entire future representing executing wasm code
397
+ /// and the periodic yields with epochs should ensure that when the
398
+ /// timeout is reached it's appropriately recognized.
399
+ ///
400
+ /// * Alternatively you can enable the
401
+ /// [`Config::consume_fuel`](crate::Config::consume_fuel) method as well
402
+ /// as [`crate::Store::fuel_async_yield_interval`] When doing so this will
403
+ /// configure Wasmtime futures to yield periodically while they're
404
+ /// executing WebAssembly code. After consuming the specified amount of
405
+ /// fuel wasm futures will return `Poll::Pending` from their `poll`
406
+ /// method, and will get automatically re-polled later. This enables the
407
+ /// `Future::poll` method to take roughly a fixed amount of time since
408
+ /// fuel is guaranteed to get consumed while wasm is executing. Unlike
409
+ /// epoch-based preemption this is deterministic since wasm always
410
+ /// consumes a fixed amount of fuel per-operation. The downside of this
411
+ /// approach, however, is that the compiled code instrumentation is
412
+ /// significantly more expensive than epoch checks.
413
+ ///
414
+ /// Note that to prevent infinite execution of wasm it's recommended to
415
+ /// place a timeout on the entire future representing executing wasm code
416
+ /// and the periodic yields with epochs should ensure that when the
417
+ /// timeout is reached it's appropriately recognized.
418
+ ///
419
+ /// In all cases special care needs to be taken when integrating
420
+ /// asynchronous wasm into your application. You should carefully plan where
421
+ /// WebAssembly will execute and what compute resources will be allotted to
422
+ /// it. If Wasmtime doesn't support exactly what you'd like just yet, please
423
+ /// feel free to open an issue!
424
+ #[cfg(feature = "async")]
425
+ pub fn async_support(&mut self, enable: bool) -> &mut Self {
426
+ self.async_support = enable;
427
+ self
428
+ }
429
+
430
+ /// Configures whether DWARF debug information will be emitted during
431
+ /// compilation.
432
+ ///
433
+ /// Note that the `debug-builtins` compile-time Cargo feature must also be
434
+ /// enabled for native debuggers such as GDB or LLDB to be able to debug
435
+ /// guest WebAssembly programs.
436
+ ///
437
+ /// By default this option is `false`.
438
+ pub fn debug_info(&mut self, enable: bool) -> &mut Self {
439
+ self.tunables.generate_native_debuginfo = Some(enable);
440
+ self
441
+ }
442
+
443
+ /// Configures whether [`WasmBacktrace`] will be present in the context of
444
+ /// errors returned from Wasmtime.
445
+ ///
446
+ /// A backtrace may be collected whenever an error is returned from a host
447
+ /// function call through to WebAssembly or when WebAssembly itself hits a
448
+ /// trap condition, such as an out-of-bounds memory access. This flag
449
+ /// indicates, in these conditions, whether the backtrace is collected or
450
+ /// not.
451
+ ///
452
+ /// Currently wasm backtraces are implemented through frame pointer walking.
453
+ /// This means that collecting a backtrace is expected to be a fast and
454
+ /// relatively cheap operation. Additionally backtrace collection is
455
+ /// suitable in concurrent environments since one thread capturing a
456
+ /// backtrace won't block other threads.
457
+ ///
458
+ /// Collected backtraces are attached via [`anyhow::Error::context`] to
459
+ /// errors returned from host functions. The [`WasmBacktrace`] type can be
460
+ /// acquired via [`anyhow::Error::downcast_ref`] to inspect the backtrace.
461
+ /// When this option is disabled then this context is never applied to
462
+ /// errors coming out of wasm.
463
+ ///
464
+ /// This option is `true` by default.
465
+ ///
466
+ /// [`WasmBacktrace`]: crate::WasmBacktrace
467
+ pub fn wasm_backtrace(&mut self, enable: bool) -> &mut Self {
468
+ self.wasm_backtrace = enable;
469
+ self
470
+ }
471
+
472
+ /// Configures whether backtraces in `Trap` will parse debug info in the wasm file to
473
+ /// have filename/line number information.
474
+ ///
475
+ /// When enabled this will causes modules to retain debugging information
476
+ /// found in wasm binaries. This debug information will be used when a trap
477
+ /// happens to symbolicate each stack frame and attempt to print a
478
+ /// filename/line number for each wasm frame in the stack trace.
479
+ ///
480
+ /// By default this option is `WasmBacktraceDetails::Environment`, meaning
481
+ /// that wasm will read `WASMTIME_BACKTRACE_DETAILS` to indicate whether
482
+ /// details should be parsed. Note that the `std` feature of this crate must
483
+ /// be active to read environment variables, otherwise this is disabled by
484
+ /// default.
485
+ pub fn wasm_backtrace_details(&mut self, enable: WasmBacktraceDetails) -> &mut Self {
486
+ self.wasm_backtrace_details_env_used = false;
487
+ self.tunables.parse_wasm_debuginfo = match enable {
488
+ WasmBacktraceDetails::Enable => Some(true),
489
+ WasmBacktraceDetails::Disable => Some(false),
490
+ WasmBacktraceDetails::Environment => {
491
+ self.wasm_backtrace_details_env_used = true;
492
+ #[cfg(feature = "std")]
493
+ {
494
+ std::env::var("WASMTIME_BACKTRACE_DETAILS")
495
+ .map(|s| Some(s == "1"))
496
+ .unwrap_or(Some(false))
497
+ }
498
+ #[cfg(not(feature = "std"))]
499
+ {
500
+ Some(false)
501
+ }
502
+ }
503
+ };
504
+ self
505
+ }
506
+
507
+ /// Configures whether to generate native unwind information
508
+ /// (e.g. `.eh_frame` on Linux).
509
+ ///
510
+ /// This configuration option only exists to help third-party stack
511
+ /// capturing mechanisms, such as the system's unwinder or the `backtrace`
512
+ /// crate, determine how to unwind through Wasm frames. It does not affect
513
+ /// whether Wasmtime can capture Wasm backtraces or not. The presence of
514
+ /// [`WasmBacktrace`] is controlled by the [`Config::wasm_backtrace`]
515
+ /// option.
516
+ ///
517
+ /// Native unwind information is included:
518
+ /// - When targeting Windows, since the Windows ABI requires it.
519
+ /// - By default.
520
+ ///
521
+ /// [`WasmBacktrace`]: crate::WasmBacktrace
522
+ pub fn native_unwind_info(&mut self, enable: bool) -> &mut Self {
523
+ self.native_unwind_info = Some(enable);
524
+ self
525
+ }
526
+
527
+ /// Configures whether execution of WebAssembly will "consume fuel" to
528
+ /// either halt or yield execution as desired.
529
+ ///
530
+ /// This can be used to deterministically prevent infinitely-executing
531
+ /// WebAssembly code by instrumenting generated code to consume fuel as it
532
+ /// executes. When fuel runs out a trap is raised, however [`Store`] can be
533
+ /// configured to yield execution periodically via
534
+ /// [`crate::Store::fuel_async_yield_interval`].
535
+ ///
536
+ /// Note that a [`Store`] starts with no fuel, so if you enable this option
537
+ /// you'll have to be sure to pour some fuel into [`Store`] before
538
+ /// executing some code.
539
+ ///
540
+ /// By default this option is `false`.
541
+ ///
542
+ /// [`Store`]: crate::Store
543
+ pub fn consume_fuel(&mut self, enable: bool) -> &mut Self {
544
+ self.tunables.consume_fuel = Some(enable);
545
+ self
546
+ }
547
+
548
+ /// Enables epoch-based interruption.
549
+ ///
550
+ /// When executing code in async mode, we sometimes want to
551
+ /// implement a form of cooperative timeslicing: long-running Wasm
552
+ /// guest code should periodically yield to the executor
553
+ /// loop. This yielding could be implemented by using "fuel" (see
554
+ /// [`consume_fuel`](Config::consume_fuel)). However, fuel
555
+ /// instrumentation is somewhat expensive: it modifies the
556
+ /// compiled form of the Wasm code so that it maintains a precise
557
+ /// instruction count, frequently checking this count against the
558
+ /// remaining fuel. If one does not need this precise count or
559
+ /// deterministic interruptions, and only needs a periodic
560
+ /// interrupt of some form, then It would be better to have a more
561
+ /// lightweight mechanism.
562
+ ///
563
+ /// Epoch-based interruption is that mechanism. There is a global
564
+ /// "epoch", which is a counter that divides time into arbitrary
565
+ /// periods (or epochs). This counter lives on the
566
+ /// [`Engine`](crate::Engine) and can be incremented by calling
567
+ /// [`Engine::increment_epoch`](crate::Engine::increment_epoch).
568
+ /// Epoch-based instrumentation works by setting a "deadline
569
+ /// epoch". The compiled code knows the deadline, and at certain
570
+ /// points, checks the current epoch against that deadline. It
571
+ /// will yield if the deadline has been reached.
572
+ ///
573
+ /// The idea is that checking an infrequently-changing counter is
574
+ /// cheaper than counting and frequently storing a precise metric
575
+ /// (instructions executed) locally. The interruptions are not
576
+ /// deterministic, but if the embedder increments the epoch in a
577
+ /// periodic way (say, every regular timer tick by a thread or
578
+ /// signal handler), then we can ensure that all async code will
579
+ /// yield to the executor within a bounded time.
580
+ ///
581
+ /// The deadline check cannot be avoided by malicious wasm code. It is safe
582
+ /// to use epoch deadlines to limit the execution time of untrusted
583
+ /// code.
584
+ ///
585
+ /// The [`Store`](crate::Store) tracks the deadline, and controls
586
+ /// what happens when the deadline is reached during
587
+ /// execution. Several behaviors are possible:
588
+ ///
589
+ /// - Trap if code is executing when the epoch deadline is
590
+ /// met. See
591
+ /// [`Store::epoch_deadline_trap`](crate::Store::epoch_deadline_trap).
592
+ ///
593
+ /// - Call an arbitrary function. This function may chose to trap or
594
+ /// increment the epoch. See
595
+ /// [`Store::epoch_deadline_callback`](crate::Store::epoch_deadline_callback).
596
+ ///
597
+ /// - Yield to the executor loop, then resume when the future is
598
+ /// next polled. See
599
+ /// [`Store::epoch_deadline_async_yield_and_update`](crate::Store::epoch_deadline_async_yield_and_update).
600
+ ///
601
+ /// Trapping is the default. The yielding behaviour may be used for
602
+ /// the timeslicing behavior described above.
603
+ ///
604
+ /// This feature is available with or without async support.
605
+ /// However, without async support, the timeslicing behaviour is
606
+ /// not available. This means epoch-based interruption can only
607
+ /// serve as a simple external-interruption mechanism.
608
+ ///
609
+ /// An initial deadline must be set before executing code by calling
610
+ /// [`Store::set_epoch_deadline`](crate::Store::set_epoch_deadline). If this
611
+ /// deadline is not configured then wasm will immediately trap.
612
+ ///
613
+ /// ## When to use fuel vs. epochs
614
+ ///
615
+ /// In general, epoch-based interruption results in faster
616
+ /// execution. This difference is sometimes significant: in some
617
+ /// measurements, up to 2-3x. This is because epoch-based
618
+ /// interruption does less work: it only watches for a global
619
+ /// rarely-changing counter to increment, rather than keeping a
620
+ /// local frequently-changing counter and comparing it to a
621
+ /// deadline.
622
+ ///
623
+ /// Fuel, in contrast, should be used when *deterministic*
624
+ /// yielding or trapping is needed. For example, if it is required
625
+ /// that the same function call with the same starting state will
626
+ /// always either complete or trap with an out-of-fuel error,
627
+ /// deterministically, then fuel with a fixed bound should be
628
+ /// used.
629
+ ///
630
+ /// # See Also
631
+ ///
632
+ /// - [`Engine::increment_epoch`](crate::Engine::increment_epoch)
633
+ /// - [`Store::set_epoch_deadline`](crate::Store::set_epoch_deadline)
634
+ /// - [`Store::epoch_deadline_trap`](crate::Store::epoch_deadline_trap)
635
+ /// - [`Store::epoch_deadline_callback`](crate::Store::epoch_deadline_callback)
636
+ /// - [`Store::epoch_deadline_async_yield_and_update`](crate::Store::epoch_deadline_async_yield_and_update)
637
+ pub fn epoch_interruption(&mut self, enable: bool) -> &mut Self {
638
+ self.tunables.epoch_interruption = Some(enable);
639
+ self
640
+ }
641
+
642
+ /// Configures the maximum amount of stack space available for
643
+ /// executing WebAssembly code.
644
+ ///
645
+ /// WebAssembly has well-defined semantics on stack overflow. This is
646
+ /// intended to be a knob which can help configure how much stack space
647
+ /// wasm execution is allowed to consume. Note that the number here is not
648
+ /// super-precise, but rather wasm will take at most "pretty close to this
649
+ /// much" stack space.
650
+ ///
651
+ /// If a wasm call (or series of nested wasm calls) take more stack space
652
+ /// than the `size` specified then a stack overflow trap will be raised.
653
+ ///
654
+ /// Caveat: this knob only limits the stack space consumed by wasm code.
655
+ /// More importantly, it does not ensure that this much stack space is
656
+ /// available on the calling thread stack. Exhausting the thread stack
657
+ /// typically leads to an **abort** of the process.
658
+ ///
659
+ /// Here are some examples of how that could happen:
660
+ ///
661
+ /// - Let's assume this option is set to 2 MiB and then a thread that has
662
+ /// a stack with 512 KiB left.
663
+ ///
664
+ /// If wasm code consumes more than 512 KiB then the process will be aborted.
665
+ ///
666
+ /// - Assuming the same conditions, but this time wasm code does not consume
667
+ /// any stack but calls into a host function. The host function consumes
668
+ /// more than 512 KiB of stack space. The process will be aborted.
669
+ ///
670
+ /// There's another gotcha related to recursive calling into wasm: the stack
671
+ /// space consumed by a host function is counted towards this limit. The
672
+ /// host functions are not prevented from consuming more than this limit.
673
+ /// However, if the host function that used more than this limit and called
674
+ /// back into wasm, then the execution will trap immediatelly because of
675
+ /// stack overflow.
676
+ ///
677
+ /// When the `async` feature is enabled, this value cannot exceed the
678
+ /// `async_stack_size` option. Be careful not to set this value too close
679
+ /// to `async_stack_size` as doing so may limit how much stack space
680
+ /// is available for host functions.
681
+ ///
682
+ /// By default this option is 512 KiB.
683
+ ///
684
+ /// # Errors
685
+ ///
686
+ /// The `Engine::new` method will fail if the `size` specified here is
687
+ /// either 0 or larger than the [`Config::async_stack_size`] configuration.
688
+ pub fn max_wasm_stack(&mut self, size: usize) -> &mut Self {
689
+ self.max_wasm_stack = size;
690
+ self
691
+ }
692
+
693
+ /// Configures the size of the stacks used for asynchronous execution.
694
+ ///
695
+ /// This setting configures the size of the stacks that are allocated for
696
+ /// asynchronous execution. The value cannot be less than `max_wasm_stack`.
697
+ ///
698
+ /// The amount of stack space guaranteed for host functions is
699
+ /// `async_stack_size - max_wasm_stack`, so take care not to set these two values
700
+ /// close to one another; doing so may cause host functions to overflow the
701
+ /// stack and abort the process.
702
+ ///
703
+ /// By default this option is 2 MiB.
704
+ ///
705
+ /// # Errors
706
+ ///
707
+ /// The `Engine::new` method will fail if the value for this option is
708
+ /// smaller than the [`Config::max_wasm_stack`] option.
709
+ #[cfg(feature = "async")]
710
+ pub fn async_stack_size(&mut self, size: usize) -> &mut Self {
711
+ self.async_stack_size = size;
712
+ self
713
+ }
714
+
715
+ /// Configures whether the WebAssembly tail calls proposal will be enabled
716
+ /// for compilation or not.
717
+ ///
718
+ /// The [WebAssembly tail calls proposal] introduces the `return_call` and
719
+ /// `return_call_indirect` instructions. These instructions allow for Wasm
720
+ /// programs to implement some recursive algorithms with *O(1)* stack space
721
+ /// usage.
722
+ ///
723
+ /// This feature is disabled by default.
724
+ ///
725
+ /// [WebAssembly tail calls proposal]: https://github.com/WebAssembly/tail-call
726
+ pub fn wasm_tail_call(&mut self, enable: bool) -> &mut Self {
727
+ self.features.set(WasmFeatures::TAIL_CALL, enable);
728
+ self.tunables.tail_callable = Some(enable);
729
+ self
730
+ }
731
+
732
+ /// Configures whether the WebAssembly [threads] proposal will be enabled
733
+ /// for compilation.
734
+ ///
735
+ /// This feature gates items such as shared memories and atomic
736
+ /// instructions. Note that the threads feature depends on the bulk memory
737
+ /// feature, which is enabled by default. Additionally note that while the
738
+ /// wasm feature is called "threads" it does not actually include the
739
+ /// ability to spawn threads. Spawning threads is part of the [wasi-threads]
740
+ /// proposal which is a separately gated feature in Wasmtime.
741
+ ///
742
+ /// Embeddings of Wasmtime are able to build their own custom threading
743
+ /// scheme on top of the core wasm threads proposal, however.
744
+ ///
745
+ /// This is `true` by default.
746
+ ///
747
+ /// [threads]: https://github.com/webassembly/threads
748
+ /// [wasi-threads]: https://github.com/webassembly/wasi-threads
749
+ #[cfg(feature = "threads")]
750
+ pub fn wasm_threads(&mut self, enable: bool) -> &mut Self {
751
+ self.features.set(WasmFeatures::THREADS, enable);
752
+ self
753
+ }
754
+
755
+ /// Configures whether the [WebAssembly reference types proposal][proposal]
756
+ /// will be enabled for compilation.
757
+ ///
758
+ /// This feature gates items such as the `externref` and `funcref` types as
759
+ /// well as allowing a module to define multiple tables.
760
+ ///
761
+ /// Note that the reference types proposal depends on the bulk memory proposal.
762
+ ///
763
+ /// This feature is `true` by default.
764
+ ///
765
+ /// # Errors
766
+ ///
767
+ /// The validation of this feature are deferred until the engine is being built,
768
+ /// and thus may cause `Engine::new` fail if the `bulk_memory` feature is disabled.
769
+ ///
770
+ /// [proposal]: https://github.com/webassembly/reference-types
771
+ #[cfg(feature = "gc")]
772
+ pub fn wasm_reference_types(&mut self, enable: bool) -> &mut Self {
773
+ self.features.set(WasmFeatures::REFERENCE_TYPES, enable);
774
+ self
775
+ }
776
+
777
+ /// Configures whether the [WebAssembly function references
778
+ /// proposal][proposal] will be enabled for compilation.
779
+ ///
780
+ /// This feature gates non-nullable reference types, function reference
781
+ /// types, `call_ref`, `ref.func`, and non-nullable reference related
782
+ /// instructions.
783
+ ///
784
+ /// Note that the function references proposal depends on the reference
785
+ /// types proposal.
786
+ ///
787
+ /// This feature is `false` by default.
788
+ ///
789
+ /// [proposal]: https://github.com/WebAssembly/function-references
790
+ #[cfg(feature = "gc")]
791
+ pub fn wasm_function_references(&mut self, enable: bool) -> &mut Self {
792
+ self.features.set(WasmFeatures::FUNCTION_REFERENCES, enable);
793
+ self
794
+ }
795
+
796
+ /// Configures whether the [WebAssembly Garbage Collection
797
+ /// proposal][proposal] will be enabled for compilation.
798
+ ///
799
+ /// This feature gates `struct` and `array` type definitions and references,
800
+ /// the `i31ref` type, and all related instructions.
801
+ ///
802
+ /// Note that the function references proposal depends on the typed function
803
+ /// references proposal.
804
+ ///
805
+ /// This feature is `false` by default.
806
+ ///
807
+ /// **Warning: Wasmtime's implementation of the GC proposal is still in
808
+ /// progress and generally not ready for primetime.**
809
+ ///
810
+ /// [proposal]: https://github.com/WebAssembly/gc
811
+ #[cfg(feature = "gc")]
812
+ pub fn wasm_gc(&mut self, enable: bool) -> &mut Self {
813
+ self.features.set(WasmFeatures::GC, enable);
814
+ self
815
+ }
816
+
817
+ /// Configures whether the WebAssembly SIMD proposal will be
818
+ /// enabled for compilation.
819
+ ///
820
+ /// The [WebAssembly SIMD proposal][proposal]. This feature gates items such
821
+ /// as the `v128` type and all of its operators being in a module. Note that
822
+ /// this does not enable the [relaxed simd proposal].
823
+ ///
824
+ /// On x86_64 platforms note that enabling this feature requires SSE 4.2 and
825
+ /// below to be available on the target platform. Compilation will fail if
826
+ /// the compile target does not include SSE 4.2.
827
+ ///
828
+ /// This is `true` by default.
829
+ ///
830
+ /// [proposal]: https://github.com/webassembly/simd
831
+ /// [relaxed simd proposal]: https://github.com/WebAssembly/relaxed-simd
832
+ pub fn wasm_simd(&mut self, enable: bool) -> &mut Self {
833
+ self.features.set(WasmFeatures::SIMD, enable);
834
+ self
835
+ }
836
+
837
+ /// Configures whether the WebAssembly Relaxed SIMD proposal will be
838
+ /// enabled for compilation.
839
+ ///
840
+ /// The relaxed SIMD proposal adds new instructions to WebAssembly which,
841
+ /// for some specific inputs, are allowed to produce different results on
842
+ /// different hosts. More-or-less this proposal enables exposing
843
+ /// platform-specific semantics of SIMD instructions in a controlled
844
+ /// fashion to a WebAssembly program. From an embedder's perspective this
845
+ /// means that WebAssembly programs may execute differently depending on
846
+ /// whether the host is x86_64 or AArch64, for example.
847
+ ///
848
+ /// By default Wasmtime lowers relaxed SIMD instructions to the fastest
849
+ /// lowering for the platform it's running on. This means that, by default,
850
+ /// some relaxed SIMD instructions may have different results for the same
851
+ /// inputs across x86_64 and AArch64. This behavior can be disabled through
852
+ /// the [`Config::relaxed_simd_deterministic`] option which will force
853
+ /// deterministic behavior across all platforms, as classified by the
854
+ /// specification, at the cost of performance.
855
+ ///
856
+ /// This is `true` by default.
857
+ ///
858
+ /// [proposal]: https://github.com/webassembly/relaxed-simd
859
+ pub fn wasm_relaxed_simd(&mut self, enable: bool) -> &mut Self {
860
+ self.features.set(WasmFeatures::RELAXED_SIMD, enable);
861
+ self
862
+ }
863
+
864
+ /// This option can be used to control the behavior of the [relaxed SIMD
865
+ /// proposal's][proposal] instructions.
866
+ ///
867
+ /// The relaxed SIMD proposal introduces instructions that are allowed to
868
+ /// have different behavior on different architectures, primarily to afford
869
+ /// an efficient implementation on all architectures. This means, however,
870
+ /// that the same module may execute differently on one host than another,
871
+ /// which typically is not otherwise the case. This option is provided to
872
+ /// force Wasmtime to generate deterministic code for all relaxed simd
873
+ /// instructions, at the cost of performance, for all architectures. When
874
+ /// this option is enabled then the deterministic behavior of all
875
+ /// instructions in the relaxed SIMD proposal is selected.
876
+ ///
877
+ /// This is `false` by default.
878
+ ///
879
+ /// [proposal]: https://github.com/webassembly/relaxed-simd
880
+ pub fn relaxed_simd_deterministic(&mut self, enable: bool) -> &mut Self {
881
+ self.tunables.relaxed_simd_deterministic = Some(enable);
882
+ self
883
+ }
884
+
885
+ /// Configures whether the [WebAssembly bulk memory operations
886
+ /// proposal][proposal] will be enabled for compilation.
887
+ ///
888
+ /// This feature gates items such as the `memory.copy` instruction, passive
889
+ /// data/table segments, etc, being in a module.
890
+ ///
891
+ /// This is `true` by default.
892
+ ///
893
+ /// Feature `reference_types`, which is also `true` by default, requires
894
+ /// this feature to be enabled. Thus disabling this feature must also disable
895
+ /// `reference_types` as well using [`wasm_reference_types`](crate::Config::wasm_reference_types).
896
+ ///
897
+ /// # Errors
898
+ ///
899
+ /// Disabling this feature without disabling `reference_types` will cause
900
+ /// `Engine::new` to fail.
901
+ ///
902
+ /// [proposal]: https://github.com/webassembly/bulk-memory-operations
903
+ pub fn wasm_bulk_memory(&mut self, enable: bool) -> &mut Self {
904
+ self.features.set(WasmFeatures::BULK_MEMORY, enable);
905
+ self
906
+ }
907
+
908
+ /// Configures whether the WebAssembly multi-value [proposal] will
909
+ /// be enabled for compilation.
910
+ ///
911
+ /// This feature gates functions and blocks returning multiple values in a
912
+ /// module, for example.
913
+ ///
914
+ /// This is `true` by default.
915
+ ///
916
+ /// [proposal]: https://github.com/webassembly/multi-value
917
+ pub fn wasm_multi_value(&mut self, enable: bool) -> &mut Self {
918
+ self.features.set(WasmFeatures::MULTI_VALUE, enable);
919
+ self
920
+ }
921
+
922
+ /// Configures whether the WebAssembly multi-memory [proposal] will
923
+ /// be enabled for compilation.
924
+ ///
925
+ /// This feature gates modules having more than one linear memory
926
+ /// declaration or import.
927
+ ///
928
+ /// This is `true` by default.
929
+ ///
930
+ /// [proposal]: https://github.com/webassembly/multi-memory
931
+ pub fn wasm_multi_memory(&mut self, enable: bool) -> &mut Self {
932
+ self.features.set(WasmFeatures::MULTI_MEMORY, enable);
933
+ self
934
+ }
935
+
936
+ /// Configures whether the WebAssembly memory64 [proposal] will
937
+ /// be enabled for compilation.
938
+ ///
939
+ /// Note that this the upstream specification is not finalized and Wasmtime
940
+ /// may also have bugs for this feature since it hasn't been exercised
941
+ /// much.
942
+ ///
943
+ /// This is `false` by default.
944
+ ///
945
+ /// [proposal]: https://github.com/webassembly/memory64
946
+ pub fn wasm_memory64(&mut self, enable: bool) -> &mut Self {
947
+ self.features.set(WasmFeatures::MEMORY64, enable);
948
+ self
949
+ }
950
+
951
+ /// Configures whether the WebAssembly component-model [proposal] will
952
+ /// be enabled for compilation.
953
+ ///
954
+ /// Note that this feature is a work-in-progress and is incomplete.
955
+ ///
956
+ /// This is `false` by default.
957
+ ///
958
+ /// [proposal]: https://github.com/webassembly/component-model
959
+ #[cfg(feature = "component-model")]
960
+ pub fn wasm_component_model(&mut self, enable: bool) -> &mut Self {
961
+ self.features.set(WasmFeatures::COMPONENT_MODEL, enable);
962
+ self
963
+ }
964
+
965
+ /// Configures whether we enable the "indirect call cache" optimization.
966
+ ///
967
+ /// This feature adds, for each `call_indirect` instruction in a
968
+ /// Wasm module (i.e., a function-pointer call in guest code), a
969
+ /// one-entry cache that speeds up the translation from a table
970
+ /// index to the actual machine code. By default, the VM's
971
+ /// implementation of this translation requires several
972
+ /// indirections and checks (table bounds-check, function
973
+ /// signature-check, table lazy-initialization logic). The intent
974
+ /// of this feature is to speed up indirect calls substantially
975
+ /// when they are repeated frequently in hot code.
976
+ ///
977
+ /// While it accelerates repeated calls, this feature has the
978
+ /// potential to slow down instantiation slightly, because it adds
979
+ /// additional state (the cache storage -- usually 16 bytes per
980
+ /// `call_indirect` instruction for each instance) that has to be
981
+ /// initialized. In practice, we have not seen
982
+ /// measurable/statistically-significant impact from this, though.
983
+ ///
984
+ /// Until we have further experience with this feature, it will
985
+ /// remain off: it is `false` by default.
986
+ pub fn cache_call_indirects(&mut self, enable: bool) -> &mut Self {
987
+ self.tunables.cache_call_indirects = Some(enable);
988
+ self
989
+ }
990
+
991
+ /// Configures the "indirect call cache" maximum capacity.
992
+ ///
993
+ /// If the [`Config::cache_call_indirects`] configuration option
994
+ /// is enabled, the engine allocates "cache slots" directly in its
995
+ /// per-instance state struct for each `call_indirect` in the
996
+ /// module's code. We place a limit on this count in order to
997
+ /// avoid inflating the state too much with very large modules. If
998
+ /// a module exceeds the limit, the first `max` indirect
999
+ /// call-sites will still have a one-entry cache, but any indirect
1000
+ /// call-sites beyond the limit (in linear order in the module's
1001
+ /// code section) do not participate in the caching, as if the
1002
+ /// option were turned off.
1003
+ ///
1004
+ /// There is also an internal hard cap to this limit:
1005
+ /// configurations with `max` beyond `50_000` will effectively cap
1006
+ /// the limit at `50_000`. This is so that instance state does not
1007
+ /// become unreasonably large.
1008
+ ///
1009
+ /// This is `50_000` by default.
1010
+ pub fn max_call_indirect_cache_slots(&mut self, max: usize) -> &mut Self {
1011
+ const HARD_CAP: usize = 50_000; // See doc-comment above.
1012
+ self.tunables.max_call_indirect_cache_slots = Some(core::cmp::min(max, HARD_CAP));
1013
+ self
1014
+ }
1015
+
1016
+ /// Configures which compilation strategy will be used for wasm modules.
1017
+ ///
1018
+ /// This method can be used to configure which compiler is used for wasm
1019
+ /// modules, and for more documentation consult the [`Strategy`] enumeration
1020
+ /// and its documentation.
1021
+ ///
1022
+ /// The default value for this is `Strategy::Auto`.
1023
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1024
+ pub fn strategy(&mut self, strategy: Strategy) -> &mut Self {
1025
+ self.compiler_config.strategy = strategy;
1026
+ self
1027
+ }
1028
+
1029
+ /// Creates a default profiler based on the profiling strategy chosen.
1030
+ ///
1031
+ /// Profiler creation calls the type's default initializer where the purpose is
1032
+ /// really just to put in place the type used for profiling.
1033
+ ///
1034
+ /// Some [`ProfilingStrategy`] require specific platforms or particular feature
1035
+ /// to be enabled, such as `ProfilingStrategy::JitDump` requires the `jitdump`
1036
+ /// feature.
1037
+ ///
1038
+ /// # Errors
1039
+ ///
1040
+ /// The validation of this field is deferred until the engine is being built, and thus may
1041
+ /// cause `Engine::new` fail if the required feature is disabled, or the platform is not
1042
+ /// supported.
1043
+ pub fn profiler(&mut self, profile: ProfilingStrategy) -> &mut Self {
1044
+ self.profiling_strategy = profile;
1045
+ self
1046
+ }
1047
+
1048
+ /// Configures whether the debug verifier of Cranelift is enabled or not.
1049
+ ///
1050
+ /// When Cranelift is used as a code generation backend this will configure
1051
+ /// it to have the `enable_verifier` flag which will enable a number of debug
1052
+ /// checks inside of Cranelift. This is largely only useful for the
1053
+ /// developers of wasmtime itself.
1054
+ ///
1055
+ /// The default value for this is `false`
1056
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1057
+ pub fn cranelift_debug_verifier(&mut self, enable: bool) -> &mut Self {
1058
+ let val = if enable { "true" } else { "false" };
1059
+ self.compiler_config
1060
+ .settings
1061
+ .insert("enable_verifier".to_string(), val.to_string());
1062
+ self
1063
+ }
1064
+
1065
+ /// Configures the Cranelift code generator optimization level.
1066
+ ///
1067
+ /// When the Cranelift code generator is used you can configure the
1068
+ /// optimization level used for generated code in a few various ways. For
1069
+ /// more information see the documentation of [`OptLevel`].
1070
+ ///
1071
+ /// The default value for this is `OptLevel::None`.
1072
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1073
+ pub fn cranelift_opt_level(&mut self, level: OptLevel) -> &mut Self {
1074
+ let val = match level {
1075
+ OptLevel::None => "none",
1076
+ OptLevel::Speed => "speed",
1077
+ OptLevel::SpeedAndSize => "speed_and_size",
1078
+ };
1079
+ self.compiler_config
1080
+ .settings
1081
+ .insert("opt_level".to_string(), val.to_string());
1082
+ self
1083
+ }
1084
+
1085
+ /// Configures whether Cranelift should perform a NaN-canonicalization pass.
1086
+ ///
1087
+ /// When Cranelift is used as a code generation backend this will configure
1088
+ /// it to replace NaNs with a single canonical value. This is useful for
1089
+ /// users requiring entirely deterministic WebAssembly computation. This is
1090
+ /// not required by the WebAssembly spec, so it is not enabled by default.
1091
+ ///
1092
+ /// Note that this option affects not only WebAssembly's `f32` and `f64`
1093
+ /// types but additionally the `v128` type. This option will cause
1094
+ /// operations using any of these types to have extra checks placed after
1095
+ /// them to normalize NaN values as needed.
1096
+ ///
1097
+ /// The default value for this is `false`
1098
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1099
+ pub fn cranelift_nan_canonicalization(&mut self, enable: bool) -> &mut Self {
1100
+ let val = if enable { "true" } else { "false" };
1101
+ self.compiler_config
1102
+ .settings
1103
+ .insert("enable_nan_canonicalization".to_string(), val.to_string());
1104
+ self
1105
+ }
1106
+
1107
+ /// Controls whether proof-carrying code (PCC) is used to validate
1108
+ /// lowering of Wasm sandbox checks.
1109
+ ///
1110
+ /// Proof-carrying code carries "facts" about program values from
1111
+ /// the IR all the way to machine code, and checks those facts
1112
+ /// against known machine-instruction semantics. This guards
1113
+ /// against bugs in instruction lowering that might create holes
1114
+ /// in the Wasm sandbox.
1115
+ ///
1116
+ /// PCC is designed to be fast: it does not require complex
1117
+ /// solvers or logic engines to verify, but only a linear pass
1118
+ /// over a trail of "breadcrumbs" or facts at each intermediate
1119
+ /// value. Thus, it is appropriate to enable in production.
1120
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1121
+ pub fn cranelift_pcc(&mut self, enable: bool) -> &mut Self {
1122
+ let val = if enable { "true" } else { "false" };
1123
+ self.compiler_config
1124
+ .settings
1125
+ .insert("enable_pcc".to_string(), val.to_string());
1126
+ self
1127
+ }
1128
+
1129
+ /// Allows setting a Cranelift boolean flag or preset. This allows
1130
+ /// fine-tuning of Cranelift settings.
1131
+ ///
1132
+ /// Since Cranelift flags may be unstable, this method should not be considered to be stable
1133
+ /// either; other `Config` functions should be preferred for stability.
1134
+ ///
1135
+ /// # Safety
1136
+ ///
1137
+ /// This is marked as unsafe, because setting the wrong flag might break invariants,
1138
+ /// resulting in execution hazards.
1139
+ ///
1140
+ /// # Errors
1141
+ ///
1142
+ /// The validation of the flags are deferred until the engine is being built, and thus may
1143
+ /// cause `Engine::new` fail if the flag's name does not exist, or the value is not appropriate
1144
+ /// for the flag type.
1145
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1146
+ pub unsafe fn cranelift_flag_enable(&mut self, flag: &str) -> &mut Self {
1147
+ self.compiler_config.flags.insert(flag.to_string());
1148
+ self
1149
+ }
1150
+
1151
+ /// Allows settings another Cranelift flag defined by a flag name and value. This allows
1152
+ /// fine-tuning of Cranelift settings.
1153
+ ///
1154
+ /// Since Cranelift flags may be unstable, this method should not be considered to be stable
1155
+ /// either; other `Config` functions should be preferred for stability.
1156
+ ///
1157
+ /// # Safety
1158
+ ///
1159
+ /// This is marked as unsafe, because setting the wrong flag might break invariants,
1160
+ /// resulting in execution hazards.
1161
+ ///
1162
+ /// # Errors
1163
+ ///
1164
+ /// The validation of the flags are deferred until the engine is being built, and thus may
1165
+ /// cause `Engine::new` fail if the flag's name does not exist, or incompatible with other
1166
+ /// settings.
1167
+ ///
1168
+ /// For example, feature `wasm_backtrace` will set `unwind_info` to `true`, but if it's
1169
+ /// manually set to false then it will fail.
1170
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1171
+ pub unsafe fn cranelift_flag_set(&mut self, name: &str, value: &str) -> &mut Self {
1172
+ self.compiler_config
1173
+ .settings
1174
+ .insert(name.to_string(), value.to_string());
1175
+ self
1176
+ }
1177
+
1178
+ /// Loads cache configuration specified at `path`.
1179
+ ///
1180
+ /// This method will read the file specified by `path` on the filesystem and
1181
+ /// attempt to load cache configuration from it. This method can also fail
1182
+ /// due to I/O errors, misconfiguration, syntax errors, etc. For expected
1183
+ /// syntax in the configuration file see the [documentation online][docs].
1184
+ ///
1185
+ /// By default cache configuration is not enabled or loaded.
1186
+ ///
1187
+ /// This method is only available when the `cache` feature of this crate is
1188
+ /// enabled.
1189
+ ///
1190
+ /// # Errors
1191
+ ///
1192
+ /// This method can fail due to any error that happens when loading the file
1193
+ /// pointed to by `path` and attempting to load the cache configuration.
1194
+ ///
1195
+ /// [docs]: https://bytecodealliance.github.io/wasmtime/cli-cache.html
1196
+ #[cfg(feature = "cache")]
1197
+ pub fn cache_config_load(&mut self, path: impl AsRef<Path>) -> Result<&mut Self> {
1198
+ self.cache_config = CacheConfig::from_file(Some(path.as_ref()))?;
1199
+ Ok(self)
1200
+ }
1201
+
1202
+ /// Disable caching.
1203
+ ///
1204
+ /// Every call to [`Module::new(my_wasm)`][crate::Module::new] will
1205
+ /// recompile `my_wasm`, even when it is unchanged.
1206
+ ///
1207
+ /// By default, new configs do not have caching enabled. This method is only
1208
+ /// useful for disabling a previous cache configuration.
1209
+ ///
1210
+ /// This method is only available when the `cache` feature of this crate is
1211
+ /// enabled.
1212
+ #[cfg(feature = "cache")]
1213
+ pub fn disable_cache(&mut self) -> &mut Self {
1214
+ self.cache_config = CacheConfig::new_cache_disabled();
1215
+ self
1216
+ }
1217
+
1218
+ /// Loads cache configuration from the system default path.
1219
+ ///
1220
+ /// This commit is the same as [`Config::cache_config_load`] except that it
1221
+ /// does not take a path argument and instead loads the default
1222
+ /// configuration present on the system. This is located, for example, on
1223
+ /// Unix at `$HOME/.config/wasmtime/config.toml` and is typically created
1224
+ /// with the `wasmtime config new` command.
1225
+ ///
1226
+ /// By default cache configuration is not enabled or loaded.
1227
+ ///
1228
+ /// This method is only available when the `cache` feature of this crate is
1229
+ /// enabled.
1230
+ ///
1231
+ /// # Errors
1232
+ ///
1233
+ /// This method can fail due to any error that happens when loading the
1234
+ /// default system configuration. Note that it is not an error if the
1235
+ /// default config file does not exist, in which case the default settings
1236
+ /// for an enabled cache are applied.
1237
+ ///
1238
+ /// [docs]: https://bytecodealliance.github.io/wasmtime/cli-cache.html
1239
+ #[cfg(feature = "cache")]
1240
+ pub fn cache_config_load_default(&mut self) -> Result<&mut Self> {
1241
+ self.cache_config = CacheConfig::from_file(None)?;
1242
+ Ok(self)
1243
+ }
1244
+
1245
+ /// Sets a custom memory creator.
1246
+ ///
1247
+ /// Custom memory creators are used when creating host `Memory` objects or when
1248
+ /// creating instance linear memories for the on-demand instance allocation strategy.
1249
+ #[cfg(feature = "runtime")]
1250
+ pub fn with_host_memory(&mut self, mem_creator: Arc<dyn MemoryCreator>) -> &mut Self {
1251
+ self.mem_creator = Some(Arc::new(MemoryCreatorProxy(mem_creator)));
1252
+ self
1253
+ }
1254
+
1255
+ /// Sets a custom stack creator.
1256
+ ///
1257
+ /// Custom memory creators are used when creating creating async instance stacks for
1258
+ /// the on-demand instance allocation strategy.
1259
+ #[cfg(feature = "async")]
1260
+ pub fn with_host_stack(&mut self, stack_creator: Arc<dyn StackCreator>) -> &mut Self {
1261
+ self.stack_creator = Some(Arc::new(StackCreatorProxy(stack_creator)));
1262
+ self
1263
+ }
1264
+
1265
+ /// Sets the instance allocation strategy to use.
1266
+ ///
1267
+ /// When using the pooling instance allocation strategy, all linear memories
1268
+ /// will be created as "static" and the
1269
+ /// [`Config::static_memory_maximum_size`] and
1270
+ /// [`Config::static_memory_guard_size`] options will be used to configure
1271
+ /// the virtual memory allocations of linear memories.
1272
+ pub fn allocation_strategy(&mut self, strategy: InstanceAllocationStrategy) -> &mut Self {
1273
+ self.allocation_strategy = strategy;
1274
+ self
1275
+ }
1276
+
1277
+ /// Configures the maximum size, in bytes, where a linear memory is
1278
+ /// considered static, above which it'll be considered dynamic.
1279
+ ///
1280
+ /// > Note: this value has important performance ramifications, be sure to
1281
+ /// > understand what this value does before tweaking it and benchmarking.
1282
+ ///
1283
+ /// This function configures the threshold for wasm memories whether they're
1284
+ /// implemented as a dynamically relocatable chunk of memory or a statically
1285
+ /// located chunk of memory. The `max_size` parameter here is the size, in
1286
+ /// bytes, where if the maximum size of a linear memory is below `max_size`
1287
+ /// then it will be statically allocated with enough space to never have to
1288
+ /// move. If the maximum size of a linear memory is larger than `max_size`
1289
+ /// then wasm memory will be dynamically located and may move in memory
1290
+ /// through growth operations.
1291
+ ///
1292
+ /// Specifying a `max_size` of 0 means that all memories will be dynamic and
1293
+ /// may be relocated through `memory.grow`. Also note that if any wasm
1294
+ /// memory's maximum size is below `max_size` then it will still reserve
1295
+ /// `max_size` bytes in the virtual memory space.
1296
+ ///
1297
+ /// ## Static vs Dynamic Memory
1298
+ ///
1299
+ /// Linear memories represent contiguous arrays of bytes, but they can also
1300
+ /// be grown through the API and wasm instructions. When memory is grown if
1301
+ /// space hasn't been preallocated then growth may involve relocating the
1302
+ /// base pointer in memory. Memories in Wasmtime are classified in two
1303
+ /// different ways:
1304
+ ///
1305
+ /// * **static** - these memories preallocate all space necessary they'll
1306
+ /// ever need, meaning that the base pointer of these memories is never
1307
+ /// moved. Static memories may take more virtual memory space because of
1308
+ /// pre-reserving space for memories.
1309
+ ///
1310
+ /// * **dynamic** - these memories are not preallocated and may move during
1311
+ /// growth operations. Dynamic memories consume less virtual memory space
1312
+ /// because they don't need to preallocate space for future growth.
1313
+ ///
1314
+ /// Static memories can be optimized better in JIT code because once the
1315
+ /// base address is loaded in a function it's known that we never need to
1316
+ /// reload it because it never changes, `memory.grow` is generally a pretty
1317
+ /// fast operation because the wasm memory is never relocated, and under
1318
+ /// some conditions bounds checks can be elided on memory accesses.
1319
+ ///
1320
+ /// Dynamic memories can't be quite as heavily optimized because the base
1321
+ /// address may need to be reloaded more often, they may require relocating
1322
+ /// lots of data on `memory.grow`, and dynamic memories require
1323
+ /// unconditional bounds checks on all memory accesses.
1324
+ ///
1325
+ /// ## Should you use static or dynamic memory?
1326
+ ///
1327
+ /// In general you probably don't need to change the value of this property.
1328
+ /// The defaults here are optimized for each target platform to consume a
1329
+ /// reasonable amount of physical memory while also generating speedy
1330
+ /// machine code.
1331
+ ///
1332
+ /// One of the main reasons you may want to configure this today is if your
1333
+ /// environment can't reserve virtual memory space for each wasm linear
1334
+ /// memory. On 64-bit platforms wasm memories require a 6GB reservation by
1335
+ /// default, and system limits may prevent this in some scenarios. In this
1336
+ /// case you may wish to force memories to be allocated dynamically meaning
1337
+ /// that the virtual memory footprint of creating a wasm memory should be
1338
+ /// exactly what's used by the wasm itself.
1339
+ ///
1340
+ /// For 32-bit memories a static memory must contain at least 4GB of
1341
+ /// reserved address space plus a guard page to elide any bounds checks at
1342
+ /// all. Smaller static memories will use similar bounds checks as dynamic
1343
+ /// memories.
1344
+ ///
1345
+ /// ## Default
1346
+ ///
1347
+ /// The default value for this property depends on the host platform. For
1348
+ /// 64-bit platforms there's lots of address space available, so the default
1349
+ /// configured here is 4GB. WebAssembly linear memories currently max out at
1350
+ /// 4GB which means that on 64-bit platforms Wasmtime by default always uses
1351
+ /// a static memory. This, coupled with a sufficiently sized guard region,
1352
+ /// should produce the fastest JIT code on 64-bit platforms, but does
1353
+ /// require a large address space reservation for each wasm memory.
1354
+ ///
1355
+ /// For 32-bit platforms this value defaults to 1GB. This means that wasm
1356
+ /// memories whose maximum size is less than 1GB will be allocated
1357
+ /// statically, otherwise they'll be considered dynamic.
1358
+ ///
1359
+ /// ## Static Memory and Pooled Instance Allocation
1360
+ ///
1361
+ /// When using the pooling instance allocator memories are considered to
1362
+ /// always be static memories, they are never dynamic. This setting
1363
+ /// configures the size of linear memory to reserve for each memory in the
1364
+ /// pooling allocator.
1365
+ ///
1366
+ /// Note that the pooling allocator can reduce the amount of memory needed
1367
+ /// for pooling allocation by using memory protection; see
1368
+ /// `PoolingAllocatorConfig::memory_protection_keys` for details.
1369
+ pub fn static_memory_maximum_size(&mut self, max_size: u64) -> &mut Self {
1370
+ let max_pages = max_size / u64::from(wasmtime_environ::WASM_PAGE_SIZE);
1371
+ self.tunables.static_memory_bound = Some(max_pages);
1372
+ self
1373
+ }
1374
+
1375
+ /// Indicates that the "static" style of memory should always be used.
1376
+ ///
1377
+ /// This configuration option enables selecting the "static" option for all
1378
+ /// linear memories created within this `Config`. This means that all
1379
+ /// memories will be allocated up-front and will never move. Additionally
1380
+ /// this means that all memories are synthetically limited by the
1381
+ /// [`Config::static_memory_maximum_size`] option, regardless of what the
1382
+ /// actual maximum size is on the memory's original type.
1383
+ ///
1384
+ /// For the difference between static and dynamic memories, see the
1385
+ /// [`Config::static_memory_maximum_size`].
1386
+ pub fn static_memory_forced(&mut self, force: bool) -> &mut Self {
1387
+ self.tunables.static_memory_bound_is_maximum = Some(force);
1388
+ self
1389
+ }
1390
+
1391
+ /// Configures the size, in bytes, of the guard region used at the end of a
1392
+ /// static memory's address space reservation.
1393
+ ///
1394
+ /// > Note: this value has important performance ramifications, be sure to
1395
+ /// > understand what this value does before tweaking it and benchmarking.
1396
+ ///
1397
+ /// All WebAssembly loads/stores are bounds-checked and generate a trap if
1398
+ /// they're out-of-bounds. Loads and stores are often very performance
1399
+ /// critical, so we want the bounds check to be as fast as possible!
1400
+ /// Accelerating these memory accesses is the motivation for a guard after a
1401
+ /// memory allocation.
1402
+ ///
1403
+ /// Memories (both static and dynamic) can be configured with a guard at the
1404
+ /// end of them which consists of unmapped virtual memory. This unmapped
1405
+ /// memory will trigger a memory access violation (e.g. segfault) if
1406
+ /// accessed. This allows JIT code to elide bounds checks if it can prove
1407
+ /// that an access, if out of bounds, would hit the guard region. This means
1408
+ /// that having such a guard of unmapped memory can remove the need for
1409
+ /// bounds checks in JIT code.
1410
+ ///
1411
+ /// For the difference between static and dynamic memories, see the
1412
+ /// [`Config::static_memory_maximum_size`].
1413
+ ///
1414
+ /// ## How big should the guard be?
1415
+ ///
1416
+ /// In general, like with configuring `static_memory_maximum_size`, you
1417
+ /// probably don't want to change this value from the defaults. Otherwise,
1418
+ /// though, the size of the guard region affects the number of bounds checks
1419
+ /// needed for generated wasm code. More specifically, loads/stores with
1420
+ /// immediate offsets will generate bounds checks based on how big the guard
1421
+ /// page is.
1422
+ ///
1423
+ /// For 32-bit wasm memories a 4GB static memory is required to even start
1424
+ /// removing bounds checks. A 4GB guard size will guarantee that the module
1425
+ /// has zero bounds checks for memory accesses. A 2GB guard size will
1426
+ /// eliminate all bounds checks with an immediate offset less than 2GB. A
1427
+ /// guard size of zero means that all memory accesses will still have bounds
1428
+ /// checks.
1429
+ ///
1430
+ /// ## Default
1431
+ ///
1432
+ /// The default value for this property is 2GB on 64-bit platforms. This
1433
+ /// allows eliminating almost all bounds checks on loads/stores with an
1434
+ /// immediate offset of less than 2GB. On 32-bit platforms this defaults to
1435
+ /// 64KB.
1436
+ ///
1437
+ /// ## Errors
1438
+ ///
1439
+ /// The `Engine::new` method will return an error if this option is smaller
1440
+ /// than the value configured for [`Config::dynamic_memory_guard_size`].
1441
+ pub fn static_memory_guard_size(&mut self, guard_size: u64) -> &mut Self {
1442
+ let guard_size = round_up_to_pages(guard_size);
1443
+ self.tunables.static_memory_offset_guard_size = Some(guard_size);
1444
+ self
1445
+ }
1446
+
1447
+ /// Configures the size, in bytes, of the guard region used at the end of a
1448
+ /// dynamic memory's address space reservation.
1449
+ ///
1450
+ /// For the difference between static and dynamic memories, see the
1451
+ /// [`Config::static_memory_maximum_size`]
1452
+ ///
1453
+ /// For more information about what a guard is, see the documentation on
1454
+ /// [`Config::static_memory_guard_size`].
1455
+ ///
1456
+ /// Note that the size of the guard region for dynamic memories is not super
1457
+ /// critical for performance. Making it reasonably-sized can improve
1458
+ /// generated code slightly, but for maximum performance you'll want to lean
1459
+ /// towards static memories rather than dynamic anyway.
1460
+ ///
1461
+ /// Also note that the dynamic memory guard size must be smaller than the
1462
+ /// static memory guard size, so if a large dynamic memory guard is
1463
+ /// specified then the static memory guard size will also be automatically
1464
+ /// increased.
1465
+ ///
1466
+ /// ## Default
1467
+ ///
1468
+ /// This value defaults to 64KB.
1469
+ ///
1470
+ /// ## Errors
1471
+ ///
1472
+ /// The `Engine::new` method will return an error if this option is larger
1473
+ /// than the value configured for [`Config::static_memory_guard_size`].
1474
+ pub fn dynamic_memory_guard_size(&mut self, guard_size: u64) -> &mut Self {
1475
+ let guard_size = round_up_to_pages(guard_size);
1476
+ self.tunables.dynamic_memory_offset_guard_size = Some(guard_size);
1477
+ self
1478
+ }
1479
+
1480
+ /// Configures the size, in bytes, of the extra virtual memory space
1481
+ /// reserved after a "dynamic" memory for growing into.
1482
+ ///
1483
+ /// For the difference between static and dynamic memories, see the
1484
+ /// [`Config::static_memory_maximum_size`]
1485
+ ///
1486
+ /// Dynamic memories can be relocated in the process's virtual address space
1487
+ /// on growth and do not always reserve their entire space up-front. This
1488
+ /// means that a growth of the memory may require movement in the address
1489
+ /// space, which in the worst case can copy a large number of bytes from one
1490
+ /// region to another.
1491
+ ///
1492
+ /// This setting configures how many bytes are reserved after the initial
1493
+ /// reservation for a dynamic memory for growing into. A value of 0 here
1494
+ /// means that no extra bytes are reserved and all calls to `memory.grow`
1495
+ /// will need to relocate the wasm linear memory (copying all the bytes). A
1496
+ /// value of 1 megabyte, however, means that `memory.grow` can allocate up
1497
+ /// to a megabyte of extra memory before the memory needs to be moved in
1498
+ /// linear memory.
1499
+ ///
1500
+ /// Note that this is a currently simple heuristic for optimizing the growth
1501
+ /// of dynamic memories, primarily implemented for the memory64 proposal
1502
+ /// where all memories are currently "dynamic". This is unlikely to be a
1503
+ /// one-size-fits-all style approach and if you're an embedder running into
1504
+ /// issues with dynamic memories and growth and are interested in having
1505
+ /// other growth strategies available here please feel free to [open an
1506
+ /// issue on the Wasmtime repository][issue]!
1507
+ ///
1508
+ /// [issue]: https://github.com/bytecodealliance/wasmtime/issues/ne
1509
+ ///
1510
+ /// ## Default
1511
+ ///
1512
+ /// For 64-bit platforms this defaults to 2GB, and for 32-bit platforms this
1513
+ /// defaults to 1MB.
1514
+ pub fn dynamic_memory_reserved_for_growth(&mut self, reserved: u64) -> &mut Self {
1515
+ self.tunables.dynamic_memory_growth_reserve = Some(round_up_to_pages(reserved));
1516
+ self
1517
+ }
1518
+
1519
+ /// Indicates whether a guard region is present before allocations of
1520
+ /// linear memory.
1521
+ ///
1522
+ /// Guard regions before linear memories are never used during normal
1523
+ /// operation of WebAssembly modules, even if they have out-of-bounds
1524
+ /// loads. The only purpose for a preceding guard region in linear memory
1525
+ /// is extra protection against possible bugs in code generators like
1526
+ /// Cranelift. This setting does not affect performance in any way, but will
1527
+ /// result in larger virtual memory reservations for linear memories (it
1528
+ /// won't actually ever use more memory, just use more of the address
1529
+ /// space).
1530
+ ///
1531
+ /// The size of the guard region before linear memory is the same as the
1532
+ /// guard size that comes after linear memory, which is configured by
1533
+ /// [`Config::static_memory_guard_size`] and
1534
+ /// [`Config::dynamic_memory_guard_size`].
1535
+ ///
1536
+ /// ## Default
1537
+ ///
1538
+ /// This value defaults to `true`.
1539
+ pub fn guard_before_linear_memory(&mut self, guard: bool) -> &mut Self {
1540
+ self.tunables.guard_before_linear_memory = Some(guard);
1541
+ self
1542
+ }
1543
+
1544
+ /// Configure the version information used in serialized and deserialzied [`crate::Module`]s.
1545
+ /// This effects the behavior of [`crate::Module::serialize()`], as well as
1546
+ /// [`crate::Module::deserialize()`] and related functions.
1547
+ ///
1548
+ /// The default strategy is to use the wasmtime crate's Cargo package version.
1549
+ pub fn module_version(&mut self, strategy: ModuleVersionStrategy) -> Result<&mut Self> {
1550
+ match strategy {
1551
+ // This case requires special precondition for assertion in SerializedModule::to_bytes
1552
+ ModuleVersionStrategy::Custom(ref v) => {
1553
+ if v.as_bytes().len() > 255 {
1554
+ bail!("custom module version cannot be more than 255 bytes: {}", v);
1555
+ }
1556
+ }
1557
+ _ => {}
1558
+ }
1559
+ self.module_version = strategy;
1560
+ Ok(self)
1561
+ }
1562
+
1563
+ /// Configure wether wasmtime should compile a module using multiple
1564
+ /// threads.
1565
+ ///
1566
+ /// Disabling this will result in a single thread being used to compile
1567
+ /// the wasm bytecode.
1568
+ ///
1569
+ /// By default parallel compilation is enabled.
1570
+ #[cfg(feature = "parallel-compilation")]
1571
+ pub fn parallel_compilation(&mut self, parallel: bool) -> &mut Self {
1572
+ self.parallel_compilation = parallel;
1573
+ self
1574
+ }
1575
+
1576
+ /// Configures whether compiled artifacts will contain information to map
1577
+ /// native program addresses back to the original wasm module.
1578
+ ///
1579
+ /// This configuration option is `true` by default and, if enabled,
1580
+ /// generates the appropriate tables in compiled modules to map from native
1581
+ /// address back to wasm source addresses. This is used for displaying wasm
1582
+ /// program counters in backtraces as well as generating filenames/line
1583
+ /// numbers if so configured as well (and the original wasm module has DWARF
1584
+ /// debugging information present).
1585
+ pub fn generate_address_map(&mut self, generate: bool) -> &mut Self {
1586
+ self.tunables.generate_address_map = Some(generate);
1587
+ self
1588
+ }
1589
+
1590
+ /// Configures whether copy-on-write memory-mapped data is used to
1591
+ /// initialize a linear memory.
1592
+ ///
1593
+ /// Initializing linear memory via a copy-on-write mapping can drastically
1594
+ /// improve instantiation costs of a WebAssembly module because copying
1595
+ /// memory is deferred. Additionally if a page of memory is only ever read
1596
+ /// from WebAssembly and never written too then the same underlying page of
1597
+ /// data will be reused between all instantiations of a module meaning that
1598
+ /// if a module is instantiated many times this can lower the overall memory
1599
+ /// required needed to run that module.
1600
+ ///
1601
+ /// The main disadvantage of copy-on-write initialization, however, is that
1602
+ /// it may be possible for highly-parallel scenarios to be less scalable. If
1603
+ /// a page is read initially by a WebAssembly module then that page will be
1604
+ /// mapped to a read-only copy shared between all WebAssembly instances. If
1605
+ /// the same page is then written, however, then a private copy is created
1606
+ /// and swapped out from the read-only version. This also requires an [IPI],
1607
+ /// however, which can be a significant bottleneck in high-parallelism
1608
+ /// situations.
1609
+ ///
1610
+ /// This feature is only applicable when a WebAssembly module meets specific
1611
+ /// criteria to be initialized in this fashion, such as:
1612
+ ///
1613
+ /// * Only memories defined in the module can be initialized this way.
1614
+ /// * Data segments for memory must use statically known offsets.
1615
+ /// * Data segments for memory must all be in-bounds.
1616
+ ///
1617
+ /// Modules which do not meet these criteria will fall back to
1618
+ /// initialization of linear memory based on copying memory.
1619
+ ///
1620
+ /// This feature of Wasmtime is also platform-specific:
1621
+ ///
1622
+ /// * Linux - this feature is supported for all instances of [`Module`].
1623
+ /// Modules backed by an existing mmap (such as those created by
1624
+ /// [`Module::deserialize_file`]) will reuse that mmap to cow-initialize
1625
+ /// memory. Other instance of [`Module`] may use the `memfd_create`
1626
+ /// syscall to create an initialization image to `mmap`.
1627
+ /// * Unix (not Linux) - this feature is only supported when loading modules
1628
+ /// from a precompiled file via [`Module::deserialize_file`] where there
1629
+ /// is a file descriptor to use to map data into the process. Note that
1630
+ /// the module must have been compiled with this setting enabled as well.
1631
+ /// * Windows - there is no support for this feature at this time. Memory
1632
+ /// initialization will always copy bytes.
1633
+ ///
1634
+ /// By default this option is enabled.
1635
+ ///
1636
+ /// [`Module::deserialize_file`]: crate::Module::deserialize_file
1637
+ /// [`Module`]: crate::Module
1638
+ /// [IPI]: https://en.wikipedia.org/wiki/Inter-processor_interrupt
1639
+ pub fn memory_init_cow(&mut self, enable: bool) -> &mut Self {
1640
+ self.memory_init_cow = enable;
1641
+ self
1642
+ }
1643
+
1644
+ /// A configuration option to force the usage of `memfd_create` on Linux to
1645
+ /// be used as the backing source for a module's initial memory image.
1646
+ ///
1647
+ /// When [`Config::memory_init_cow`] is enabled, which is enabled by
1648
+ /// default, module memory initialization images are taken from a module's
1649
+ /// original mmap if possible. If a precompiled module was loaded from disk
1650
+ /// this means that the disk's file is used as an mmap source for the
1651
+ /// initial linear memory contents. This option can be used to force, on
1652
+ /// Linux, that instead of using the original file on disk a new in-memory
1653
+ /// file is created with `memfd_create` to hold the contents of the initial
1654
+ /// image.
1655
+ ///
1656
+ /// This option can be used to avoid possibly loading the contents of memory
1657
+ /// from disk through a page fault. Instead with `memfd_create` the contents
1658
+ /// of memory are always in RAM, meaning that even page faults which
1659
+ /// initially populate a wasm linear memory will only work with RAM instead
1660
+ /// of ever hitting the disk that the original precompiled module is stored
1661
+ /// on.
1662
+ ///
1663
+ /// This option is disabled by default.
1664
+ pub fn force_memory_init_memfd(&mut self, enable: bool) -> &mut Self {
1665
+ self.force_memory_init_memfd = enable;
1666
+ self
1667
+ }
1668
+
1669
+ /// Configures whether or not a coredump should be generated and attached to
1670
+ /// the anyhow::Error when a trap is raised.
1671
+ ///
1672
+ /// This option is disabled by default.
1673
+ #[cfg(feature = "coredump")]
1674
+ pub fn coredump_on_trap(&mut self, enable: bool) -> &mut Self {
1675
+ self.coredump_on_trap = enable;
1676
+ self
1677
+ }
1678
+
1679
+ /// Enables memory error checking for wasm programs.
1680
+ ///
1681
+ /// This option is disabled by default.
1682
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1683
+ pub fn wmemcheck(&mut self, enable: bool) -> &mut Self {
1684
+ self.wmemcheck = enable;
1685
+ self.compiler_config.wmemcheck = enable;
1686
+ self
1687
+ }
1688
+
1689
+ /// Configures the "guaranteed dense image size" for copy-on-write
1690
+ /// initialized memories.
1691
+ ///
1692
+ /// When using the [`Config::memory_init_cow`] feature to initialize memory
1693
+ /// efficiently (which is enabled by default), compiled modules contain an
1694
+ /// image of the module's initial heap. If the module has a fairly sparse
1695
+ /// initial heap, with just a few data segments at very different offsets,
1696
+ /// this could result in a large region of zero bytes in the image. In
1697
+ /// other words, it's not very memory-efficient.
1698
+ ///
1699
+ /// We normally use a heuristic to avoid this: if less than half
1700
+ /// of the initialized range (first non-zero to last non-zero
1701
+ /// byte) of any memory in the module has pages with nonzero
1702
+ /// bytes, then we avoid creating a memory image for the entire module.
1703
+ ///
1704
+ /// However, if the embedder always needs the instantiation-time efficiency
1705
+ /// of copy-on-write initialization, and is otherwise carefully controlling
1706
+ /// parameters of the modules (for example, by limiting the maximum heap
1707
+ /// size of the modules), then it may be desirable to ensure a memory image
1708
+ /// is created even if this could go against the heuristic above. Thus, we
1709
+ /// add another condition: there is a size of initialized data region up to
1710
+ /// which we *always* allow a memory image. The embedder can set this to a
1711
+ /// known maximum heap size if they desire to always get the benefits of
1712
+ /// copy-on-write images.
1713
+ ///
1714
+ /// In the future we may implement a "best of both worlds"
1715
+ /// solution where we have a dense image up to some limit, and
1716
+ /// then support a sparse list of initializers beyond that; this
1717
+ /// would get most of the benefit of copy-on-write and pay the incremental
1718
+ /// cost of eager initialization only for those bits of memory
1719
+ /// that are out-of-bounds. However, for now, an embedder desiring
1720
+ /// fast instantiation should ensure that this setting is as large
1721
+ /// as the maximum module initial memory content size.
1722
+ ///
1723
+ /// By default this value is 16 MiB.
1724
+ pub fn memory_guaranteed_dense_image_size(&mut self, size_in_bytes: u64) -> &mut Self {
1725
+ self.memory_guaranteed_dense_image_size = size_in_bytes;
1726
+ self
1727
+ }
1728
+
1729
+ pub(crate) fn conditionally_enable_defaults(&mut self) {
1730
+ // If tail calls were not explicitly enabled/disabled (i.e. tail_callable is None), enable
1731
+ // them if we are targeting a backend that supports them. Currently the Cranelift
1732
+ // compilation strategy is the only one that supports tail calls, but not targeting s390x.
1733
+ if self.tunables.tail_callable.is_none() {
1734
+ #[cfg(feature = "cranelift")]
1735
+ let default_tail_calls = self.compiler_config.strategy == Strategy::Cranelift
1736
+ && self.compiler_config.target.as_ref().map_or_else(
1737
+ || target_lexicon::Triple::host().architecture,
1738
+ |triple| triple.architecture,
1739
+ ) != Architecture::S390x;
1740
+ #[cfg(not(feature = "cranelift"))]
1741
+ let default_tail_calls = false;
1742
+
1743
+ self.wasm_tail_call(default_tail_calls);
1744
+ }
1745
+ }
1746
+
1747
+ pub(crate) fn validate(&self) -> Result<Tunables> {
1748
+ if self.features.contains(WasmFeatures::REFERENCE_TYPES)
1749
+ && !self.features.contains(WasmFeatures::BULK_MEMORY)
1750
+ {
1751
+ bail!("feature 'reference_types' requires 'bulk_memory' to be enabled");
1752
+ }
1753
+ if self.features.contains(WasmFeatures::THREADS)
1754
+ && !self.features.contains(WasmFeatures::BULK_MEMORY)
1755
+ {
1756
+ bail!("feature 'threads' requires 'bulk_memory' to be enabled");
1757
+ }
1758
+ if self.features.contains(WasmFeatures::FUNCTION_REFERENCES)
1759
+ && !self.features.contains(WasmFeatures::REFERENCE_TYPES)
1760
+ {
1761
+ bail!("feature 'function_references' requires 'reference_types' to be enabled");
1762
+ }
1763
+ if self.features.contains(WasmFeatures::GC)
1764
+ && !self.features.contains(WasmFeatures::FUNCTION_REFERENCES)
1765
+ {
1766
+ bail!("feature 'gc' requires 'function_references' to be enabled");
1767
+ }
1768
+ #[cfg(feature = "async")]
1769
+ if self.async_support && self.max_wasm_stack > self.async_stack_size {
1770
+ bail!("max_wasm_stack size cannot exceed the async_stack_size");
1771
+ }
1772
+ if self.max_wasm_stack == 0 {
1773
+ bail!("max_wasm_stack size cannot be zero");
1774
+ }
1775
+ #[cfg(not(feature = "wmemcheck"))]
1776
+ if self.wmemcheck {
1777
+ bail!("wmemcheck (memory checker) was requested but is not enabled in this build");
1778
+ }
1779
+
1780
+ #[cfg(not(any(feature = "cranelift", feature = "winch")))]
1781
+ let mut tunables = Tunables::default_host();
1782
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1783
+ let mut tunables = match &self.compiler_config.target.as_ref() {
1784
+ Some(target) => Tunables::default_for_target(target)?,
1785
+ None => Tunables::default_host(),
1786
+ };
1787
+
1788
+ macro_rules! set_fields {
1789
+ ($($field:ident)*) => (
1790
+ let ConfigTunables {
1791
+ $($field,)*
1792
+ } = &self.tunables;
1793
+
1794
+ $(
1795
+ if let Some(e) = $field {
1796
+ tunables.$field = *e;
1797
+ }
1798
+ )*
1799
+ )
1800
+ }
1801
+
1802
+ set_fields! {
1803
+ static_memory_bound
1804
+ static_memory_offset_guard_size
1805
+ dynamic_memory_offset_guard_size
1806
+ dynamic_memory_growth_reserve
1807
+ generate_native_debuginfo
1808
+ parse_wasm_debuginfo
1809
+ consume_fuel
1810
+ epoch_interruption
1811
+ static_memory_bound_is_maximum
1812
+ guard_before_linear_memory
1813
+ generate_address_map
1814
+ debug_adapter_modules
1815
+ relaxed_simd_deterministic
1816
+ tail_callable
1817
+ cache_call_indirects
1818
+ max_call_indirect_cache_slots
1819
+ }
1820
+
1821
+ // If we're going to compile with winch, we must use the winch calling convention.
1822
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1823
+ {
1824
+ tunables.winch_callable = match self.compiler_config.strategy {
1825
+ Strategy::Auto => !cfg!(feature = "cranelift") && cfg!(feature = "winch"),
1826
+ Strategy::Cranelift => false,
1827
+ Strategy::Winch => true,
1828
+ };
1829
+
1830
+ if tunables.winch_callable && tunables.tail_callable {
1831
+ bail!("Winch does not support the WebAssembly tail call proposal");
1832
+ }
1833
+ }
1834
+
1835
+ if tunables.static_memory_offset_guard_size < tunables.dynamic_memory_offset_guard_size {
1836
+ bail!("static memory guard size cannot be smaller than dynamic memory guard size");
1837
+ }
1838
+
1839
+ Ok(tunables)
1840
+ }
1841
+
1842
+ #[cfg(feature = "runtime")]
1843
+ pub(crate) fn build_allocator(
1844
+ &self,
1845
+ tunables: &Tunables,
1846
+ ) -> Result<Box<dyn InstanceAllocator + Send + Sync>> {
1847
+ #[cfg(feature = "async")]
1848
+ let stack_size = self.async_stack_size;
1849
+
1850
+ #[cfg(not(feature = "async"))]
1851
+ let stack_size = 0;
1852
+
1853
+ let _ = tunables;
1854
+
1855
+ match &self.allocation_strategy {
1856
+ InstanceAllocationStrategy::OnDemand => {
1857
+ #[allow(unused_mut)]
1858
+ let mut allocator = Box::new(OnDemandInstanceAllocator::new(
1859
+ self.mem_creator.clone(),
1860
+ stack_size,
1861
+ ));
1862
+ #[cfg(feature = "async")]
1863
+ if let Some(stack_creator) = &self.stack_creator {
1864
+ allocator.set_stack_creator(stack_creator.clone());
1865
+ }
1866
+ Ok(allocator)
1867
+ }
1868
+ #[cfg(feature = "pooling-allocator")]
1869
+ InstanceAllocationStrategy::Pooling(config) => {
1870
+ let mut config = config.config;
1871
+ config.stack_size = stack_size;
1872
+ Ok(Box::new(crate::runtime::vm::PoolingInstanceAllocator::new(
1873
+ &config, tunables,
1874
+ )?))
1875
+ }
1876
+ }
1877
+ }
1878
+
1879
+ #[cfg(feature = "runtime")]
1880
+ pub(crate) fn build_gc_runtime(&self) -> Result<Arc<dyn GcRuntime>> {
1881
+ Ok(Arc::new(crate::runtime::vm::default_gc_runtime()) as Arc<dyn GcRuntime>)
1882
+ }
1883
+
1884
+ #[cfg(feature = "runtime")]
1885
+ pub(crate) fn build_profiler(&self) -> Result<Box<dyn ProfilingAgent>> {
1886
+ Ok(match self.profiling_strategy {
1887
+ ProfilingStrategy::PerfMap => profiling_agent::new_perfmap()?,
1888
+ ProfilingStrategy::JitDump => profiling_agent::new_jitdump()?,
1889
+ ProfilingStrategy::VTune => profiling_agent::new_vtune()?,
1890
+ ProfilingStrategy::None => profiling_agent::new_null(),
1891
+ })
1892
+ }
1893
+
1894
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1895
+ pub(crate) fn build_compiler(
1896
+ mut self,
1897
+ tunables: &Tunables,
1898
+ ) -> Result<(Self, Box<dyn wasmtime_environ::Compiler>)> {
1899
+ let target = self.compiler_config.target.clone();
1900
+
1901
+ let mut compiler = match self.compiler_config.strategy {
1902
+ #[cfg(feature = "cranelift")]
1903
+ Strategy::Auto => wasmtime_cranelift::builder(target)?,
1904
+ #[cfg(all(feature = "winch", not(feature = "cranelift")))]
1905
+ Strategy::Auto => wasmtime_winch::builder(target)?,
1906
+ #[cfg(feature = "cranelift")]
1907
+ Strategy::Cranelift => wasmtime_cranelift::builder(target)?,
1908
+ #[cfg(not(feature = "cranelift"))]
1909
+ Strategy::Cranelift => bail!("cranelift support not compiled in"),
1910
+ #[cfg(feature = "winch")]
1911
+ Strategy::Winch => wasmtime_winch::builder(target)?,
1912
+ #[cfg(not(feature = "winch"))]
1913
+ Strategy::Winch => bail!("winch support not compiled in"),
1914
+ };
1915
+
1916
+ if let Some(path) = &self.compiler_config.clif_dir {
1917
+ compiler.clif_dir(path)?;
1918
+ }
1919
+
1920
+ // If probestack is enabled for a target, Wasmtime will always use the
1921
+ // inline strategy which doesn't require us to define a `__probestack`
1922
+ // function or similar.
1923
+ self.compiler_config
1924
+ .settings
1925
+ .insert("probestack_strategy".into(), "inline".into());
1926
+
1927
+ let host = target_lexicon::Triple::host();
1928
+ let target = self
1929
+ .compiler_config
1930
+ .target
1931
+ .as_ref()
1932
+ .unwrap_or(&host)
1933
+ .clone();
1934
+
1935
+ // On supported targets, we enable stack probing by default.
1936
+ // This is required on Windows because of the way Windows
1937
+ // commits its stacks, but it's also a good idea on other
1938
+ // platforms to ensure guard pages are hit for large frame
1939
+ // sizes.
1940
+ if probestack_supported(target.architecture) {
1941
+ self.compiler_config
1942
+ .flags
1943
+ .insert("enable_probestack".into());
1944
+ }
1945
+
1946
+ if self.features.contains(WasmFeatures::TAIL_CALL) {
1947
+ ensure!(
1948
+ target.architecture != Architecture::S390x,
1949
+ "Tail calls are not supported on s390x yet: \
1950
+ https://github.com/bytecodealliance/wasmtime/issues/6530"
1951
+ );
1952
+ }
1953
+
1954
+ if let Some(unwind_requested) = self.native_unwind_info {
1955
+ if !self
1956
+ .compiler_config
1957
+ .ensure_setting_unset_or_given("unwind_info", &unwind_requested.to_string())
1958
+ {
1959
+ bail!("incompatible settings requested for Cranelift and Wasmtime `unwind-info` settings");
1960
+ }
1961
+ }
1962
+
1963
+ if target.operating_system == target_lexicon::OperatingSystem::Windows {
1964
+ if !self
1965
+ .compiler_config
1966
+ .ensure_setting_unset_or_given("unwind_info", "true")
1967
+ {
1968
+ bail!("`native_unwind_info` cannot be disabled on Windows");
1969
+ }
1970
+ }
1971
+
1972
+ // We require frame pointers for correct stack walking, which is safety
1973
+ // critical in the presence of reference types, and otherwise it is just
1974
+ // really bad developer experience to get wrong.
1975
+ self.compiler_config
1976
+ .settings
1977
+ .insert("preserve_frame_pointers".into(), "true".into());
1978
+
1979
+ // check for incompatible compiler options and set required values
1980
+ if self.features.contains(WasmFeatures::REFERENCE_TYPES) {
1981
+ if !self
1982
+ .compiler_config
1983
+ .ensure_setting_unset_or_given("enable_safepoints", "true")
1984
+ {
1985
+ bail!("compiler option 'enable_safepoints' must be enabled when 'reference types' is enabled");
1986
+ }
1987
+ }
1988
+
1989
+ if self.features.contains(WasmFeatures::RELAXED_SIMD)
1990
+ && !self.features.contains(WasmFeatures::SIMD)
1991
+ {
1992
+ bail!("cannot disable the simd proposal but enable the relaxed simd proposal");
1993
+ }
1994
+
1995
+ // Apply compiler settings and flags
1996
+ for (k, v) in self.compiler_config.settings.iter() {
1997
+ compiler.set(k, v)?;
1998
+ }
1999
+ for flag in self.compiler_config.flags.iter() {
2000
+ compiler.enable(flag)?;
2001
+ }
2002
+
2003
+ #[cfg(feature = "incremental-cache")]
2004
+ if let Some(cache_store) = &self.compiler_config.cache_store {
2005
+ compiler.enable_incremental_compilation(cache_store.clone())?;
2006
+ }
2007
+
2008
+ compiler.set_tunables(tunables.clone())?;
2009
+ compiler.wmemcheck(self.compiler_config.wmemcheck);
2010
+
2011
+ Ok((self, compiler.build()?))
2012
+ }
2013
+
2014
+ /// Internal setting for whether adapter modules for components will have
2015
+ /// extra WebAssembly instructions inserted performing more debug checks
2016
+ /// then are necessary.
2017
+ #[cfg(feature = "component-model")]
2018
+ pub fn debug_adapter_modules(&mut self, debug: bool) -> &mut Self {
2019
+ self.tunables.debug_adapter_modules = Some(debug);
2020
+ self
2021
+ }
2022
+
2023
+ /// Enables clif output when compiling a WebAssembly module.
2024
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
2025
+ pub fn emit_clif(&mut self, path: &Path) -> &mut Self {
2026
+ self.compiler_config.clif_dir = Some(path.to_path_buf());
2027
+ self
2028
+ }
2029
+
2030
+ /// Configures whether, when on macOS, Mach ports are used for exception
2031
+ /// handling instead of traditional Unix-based signal handling.
2032
+ ///
2033
+ /// WebAssembly traps in Wasmtime are implemented with native faults, for
2034
+ /// example a `SIGSEGV` will occur when a WebAssembly guest accesses
2035
+ /// out-of-bounds memory. Handling this can be configured to either use Unix
2036
+ /// signals or Mach ports on macOS. By default Mach ports are used.
2037
+ ///
2038
+ /// Mach ports enable Wasmtime to work by default with foreign
2039
+ /// error-handling systems such as breakpad which also use Mach ports to
2040
+ /// handle signals. In this situation Wasmtime will continue to handle guest
2041
+ /// faults gracefully while any non-guest faults will get forwarded to
2042
+ /// process-level handlers such as breakpad. Some more background on this
2043
+ /// can be found in #2456.
2044
+ ///
2045
+ /// A downside of using mach ports, however, is that they don't interact
2046
+ /// well with `fork()`. Forking a Wasmtime process on macOS will produce a
2047
+ /// child process that cannot successfully run WebAssembly. In this
2048
+ /// situation traditional Unix signal handling should be used as that's
2049
+ /// inherited and works across forks.
2050
+ ///
2051
+ /// If your embedding wants to use a custom error handler which leverages
2052
+ /// Mach ports and you additionally wish to `fork()` the process and use
2053
+ /// Wasmtime in the child process that's not currently possible. Please
2054
+ /// reach out to us if you're in this bucket!
2055
+ ///
2056
+ /// This option defaults to `true`, using Mach ports by default.
2057
+ pub fn macos_use_mach_ports(&mut self, mach_ports: bool) -> &mut Self {
2058
+ self.macos_use_mach_ports = mach_ports;
2059
+ self
2060
+ }
2061
+
2062
+ /// Configures an embedder-provided function, `detect`, which is used to
2063
+ /// determine if an ISA-specific feature is available on the current host.
2064
+ ///
2065
+ /// This function is used to verify that any features enabled for a compiler
2066
+ /// backend, such as AVX support on x86\_64, are also available on the host.
2067
+ /// It is undefined behavior to execute an AVX instruction on a host that
2068
+ /// doesn't support AVX instructions, for example.
2069
+ ///
2070
+ /// When the `std` feature is active on this crate then this function is
2071
+ /// configured to a default implementation that uses the standard library's
2072
+ /// feature detection. When the `std` feature is disabled then there is no
2073
+ /// default available and this method must be called to configure a feature
2074
+ /// probing function.
2075
+ ///
2076
+ /// The `detect` function provided is given a string name of an ISA feature.
2077
+ /// The function should then return:
2078
+ ///
2079
+ /// * `Some(true)` - indicates that the feature was found on the host and it
2080
+ /// is supported.
2081
+ /// * `Some(false)` - the feature name was recognized but it was not
2082
+ /// detected on the host, for example the CPU is too old.
2083
+ /// * `None` - the feature name was not recognized and it's not known
2084
+ /// whether it's on the host or not.
2085
+ ///
2086
+ /// Feature names passed to `detect` match the same feature name used in the
2087
+ /// Rust standard library. For example `"sse4.2"` is used on x86\_64.
2088
+ ///
2089
+ /// # Unsafety
2090
+ ///
2091
+ /// This function is `unsafe` because it is undefined behavior to execute
2092
+ /// instructions that a host does not support. This means that the result of
2093
+ /// `detect` must be correct for memory safe execution at runtime.
2094
+ pub unsafe fn detect_host_feature(&mut self, detect: fn(&str) -> Option<bool>) -> &mut Self {
2095
+ self.detect_host_feature = Some(detect);
2096
+ self
2097
+ }
2098
+ }
2099
+
2100
+ /// If building without the runtime feature we can't determine the page size of
2101
+ /// the platform where the execution will happen so just keep the original
2102
+ /// values.
2103
+ #[cfg(not(feature = "runtime"))]
2104
+ fn round_up_to_pages(val: u64) -> u64 {
2105
+ val
2106
+ }
2107
+
2108
+ #[cfg(feature = "runtime")]
2109
+ fn round_up_to_pages(val: u64) -> u64 {
2110
+ let page_size = crate::runtime::vm::page_size() as u64;
2111
+ debug_assert!(page_size.is_power_of_two());
2112
+ val.checked_add(page_size - 1)
2113
+ .map(|val| val & !(page_size - 1))
2114
+ .unwrap_or(u64::MAX / page_size + 1)
2115
+ }
2116
+
2117
+ impl Default for Config {
2118
+ fn default() -> Config {
2119
+ Config::new()
2120
+ }
2121
+ }
2122
+
2123
+ impl fmt::Debug for Config {
2124
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
2125
+ let mut f = f.debug_struct("Config");
2126
+ f.field("debug_info", &self.tunables.generate_native_debuginfo)
2127
+ .field(
2128
+ "wasm_threads",
2129
+ &self.features.contains(WasmFeatures::THREADS),
2130
+ )
2131
+ .field(
2132
+ "wasm_reference_types",
2133
+ &self.features.contains(WasmFeatures::REFERENCE_TYPES),
2134
+ )
2135
+ .field(
2136
+ "wasm_function_references",
2137
+ &self.features.contains(WasmFeatures::FUNCTION_REFERENCES),
2138
+ )
2139
+ .field("wasm_gc", &self.features.contains(WasmFeatures::GC))
2140
+ .field(
2141
+ "wasm_bulk_memory",
2142
+ &self.features.contains(WasmFeatures::BULK_MEMORY),
2143
+ )
2144
+ .field("wasm_simd", &self.features.contains(WasmFeatures::SIMD))
2145
+ .field(
2146
+ "wasm_relaxed_simd",
2147
+ &self.features.contains(WasmFeatures::RELAXED_SIMD),
2148
+ )
2149
+ .field(
2150
+ "wasm_multi_value",
2151
+ &self.features.contains(WasmFeatures::MULTI_VALUE),
2152
+ )
2153
+ .field("parallel_compilation", &self.parallel_compilation);
2154
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
2155
+ {
2156
+ f.field("compiler_config", &self.compiler_config);
2157
+ }
2158
+
2159
+ if let Some(enable) = self.tunables.parse_wasm_debuginfo {
2160
+ f.field("parse_wasm_debuginfo", &enable);
2161
+ }
2162
+ if let Some(size) = self.tunables.static_memory_bound {
2163
+ f.field(
2164
+ "static_memory_maximum_size",
2165
+ &(u64::from(size) * u64::from(wasmtime_environ::WASM_PAGE_SIZE)),
2166
+ );
2167
+ }
2168
+ if let Some(size) = self.tunables.static_memory_offset_guard_size {
2169
+ f.field("static_memory_guard_size", &size);
2170
+ }
2171
+ if let Some(size) = self.tunables.dynamic_memory_offset_guard_size {
2172
+ f.field("dynamic_memory_guard_size", &size);
2173
+ }
2174
+ if let Some(enable) = self.tunables.guard_before_linear_memory {
2175
+ f.field("guard_before_linear_memory", &enable);
2176
+ }
2177
+ f.finish()
2178
+ }
2179
+ }
2180
+
2181
+ /// Possible Compilation strategies for a wasm module.
2182
+ ///
2183
+ /// This is used as an argument to the [`Config::strategy`] method.
2184
+ #[non_exhaustive]
2185
+ #[derive(PartialEq, Eq, Clone, Debug, Copy)]
2186
+ pub enum Strategy {
2187
+ /// An indicator that the compilation strategy should be automatically
2188
+ /// selected.
2189
+ ///
2190
+ /// This is generally what you want for most projects and indicates that the
2191
+ /// `wasmtime` crate itself should make the decision about what the best
2192
+ /// code generator for a wasm module is.
2193
+ ///
2194
+ /// Currently this always defaults to Cranelift, but the default value may
2195
+ /// change over time.
2196
+ Auto,
2197
+
2198
+ /// Currently the default backend, Cranelift aims to be a reasonably fast
2199
+ /// code generator which generates high quality machine code.
2200
+ Cranelift,
2201
+
2202
+ /// A baseline compiler for WebAssembly, currently under active development and not ready for
2203
+ /// production applications.
2204
+ Winch,
2205
+ }
2206
+
2207
+ /// Possible optimization levels for the Cranelift codegen backend.
2208
+ #[non_exhaustive]
2209
+ #[derive(Copy, Clone, Debug, Serialize, Deserialize, Eq, PartialEq)]
2210
+ pub enum OptLevel {
2211
+ /// No optimizations performed, minimizes compilation time by disabling most
2212
+ /// optimizations.
2213
+ None,
2214
+ /// Generates the fastest possible code, but may take longer.
2215
+ Speed,
2216
+ /// Similar to `speed`, but also performs transformations aimed at reducing
2217
+ /// code size.
2218
+ SpeedAndSize,
2219
+ }
2220
+
2221
+ /// Select which profiling technique to support.
2222
+ #[derive(Debug, Clone, Copy, PartialEq)]
2223
+ pub enum ProfilingStrategy {
2224
+ /// No profiler support.
2225
+ None,
2226
+
2227
+ /// Collect function name information as the "perf map" file format, used with `perf` on Linux.
2228
+ PerfMap,
2229
+
2230
+ /// Collect profiling info for "jitdump" file format, used with `perf` on
2231
+ /// Linux.
2232
+ JitDump,
2233
+
2234
+ /// Collect profiling info using the "ittapi", used with `VTune` on Linux.
2235
+ VTune,
2236
+ }
2237
+
2238
+ /// Select how wasm backtrace detailed information is handled.
2239
+ #[derive(Debug, Clone, Copy)]
2240
+ pub enum WasmBacktraceDetails {
2241
+ /// Support is unconditionally enabled and wasmtime will parse and read
2242
+ /// debug information.
2243
+ Enable,
2244
+
2245
+ /// Support is disabled, and wasmtime will not parse debug information for
2246
+ /// backtrace details.
2247
+ Disable,
2248
+
2249
+ /// Support for backtrace details is conditional on the
2250
+ /// `WASMTIME_BACKTRACE_DETAILS` environment variable.
2251
+ Environment,
2252
+ }
2253
+
2254
+ /// Configuration options used with [`InstanceAllocationStrategy::Pooling`] to
2255
+ /// change the behavior of the pooling instance allocator.
2256
+ ///
2257
+ /// This structure has a builder-style API in the same manner as [`Config`] and
2258
+ /// is configured with [`Config::allocation_strategy`].
2259
+ ///
2260
+ /// Note that usage of the pooling allocator does not affect compiled
2261
+ /// WebAssembly code. Compiled `*.cwasm` files, for example, are usable both
2262
+ /// with and without the pooling allocator.
2263
+ ///
2264
+ /// ## Advantages of Pooled Allocation
2265
+ ///
2266
+ /// The main benefit of the pooling allocator is to make WebAssembly
2267
+ /// instantiation both faster and more scalable in terms of parallelism.
2268
+ /// Allocation is faster because virtual memory is already configured and ready
2269
+ /// to go within the pool, there's no need to [`mmap`] (for example on Unix) a
2270
+ /// new region and configure it with guard pages. By avoiding [`mmap`] this
2271
+ /// avoids whole-process virtual memory locks which can improve scalability and
2272
+ /// performance through avoiding this.
2273
+ ///
2274
+ /// Additionally with pooled allocation it's possible to create "affine slots"
2275
+ /// to a particular WebAssembly module or component over time. For example if
2276
+ /// the same module is multiple times over time the pooling allocator will, by
2277
+ /// default, attempt to reuse the same slot. This mean that the slot has been
2278
+ /// pre-configured and can retain virtual memory mappings for a copy-on-write
2279
+ /// image, for example (see [`Config::memory_init_cow`] for more information.
2280
+ /// This means that in a steady state instance deallocation is a single
2281
+ /// [`madvise`] to reset linear memory to its original contents followed by a
2282
+ /// single (optional) [`mprotect`] during the next instantiation to shrink
2283
+ /// memory back to its original size. Compared to non-pooled allocation this
2284
+ /// avoids the need to [`mmap`] a new region of memory, [`munmap`] it, and
2285
+ /// [`mprotect`] regions too.
2286
+ ///
2287
+ /// Another benefit of pooled allocation is that it's possible to configure
2288
+ /// things such that no virtual memory management is required at all in a steady
2289
+ /// state. For example a pooling allocator can be configured with
2290
+ /// [`Config::memory_init_cow`] disabledd, dynamic bounds checks enabled
2291
+ /// through
2292
+ /// [`Config::static_memory_maximum_size(0)`](Config::static_memory_maximum_size),
2293
+ /// and sufficient space through
2294
+ /// [`PoolingAllocationConfig::table_keep_resident`] /
2295
+ /// [`PoolingAllocationConfig::linear_memory_keep_resident`]. With all these
2296
+ /// options in place no virtual memory tricks are used at all and everything is
2297
+ /// manually managed by Wasmtime (for example resetting memory is a
2298
+ /// `memset(0)`). This is not as fast in a single-threaded scenario but can
2299
+ /// provide benefits in high-parallelism situations as no virtual memory locks
2300
+ /// or IPIs need happen.
2301
+ ///
2302
+ /// ## Disadvantages of Pooled Allocation
2303
+ ///
2304
+ /// Despite the above advantages to instantiation performance the pooling
2305
+ /// allocator is not enabled by default in Wasmtime. One reason is that the
2306
+ /// performance advantages are not necessarily portable, for example while the
2307
+ /// pooling allocator works on Windows it has not been tuned for performance on
2308
+ /// Windows in the same way it has on Linux.
2309
+ ///
2310
+ /// Additionally the main cost of the pooling allocator is that it requires a
2311
+ /// very large reservation of virtual memory (on the order of most of the
2312
+ /// addressable virtual address space). WebAssembly 32-bit linear memories in
2313
+ /// Wasmtime are, by default 4G address space reservations with a 2G guard
2314
+ /// region both before and after the linear memory. Memories in the pooling
2315
+ /// allocator are contiguous which means that we only need a guard after linear
2316
+ /// memory because the previous linear memory's slot post-guard is our own
2317
+ /// pre-guard. This means that, by default, the pooling allocator uses 6G of
2318
+ /// virtual memory per WebAssembly linear memory slot. 6G of virtual memory is
2319
+ /// 32.5 bits of a 64-bit address. Many 64-bit systems can only actually use
2320
+ /// 48-bit addresses by default (although this can be extended on architectures
2321
+ /// nowadays too), and of those 48 bits one of them is reserved to indicate
2322
+ /// kernel-vs-userspace. This leaves 47-32.5=14.5 bits left, meaning you can
2323
+ /// only have at most 64k slots of linear memories on many systems by default.
2324
+ /// This is a relatively small number and shows how the pooling allocator can
2325
+ /// quickly exhaust all of virtual memory.
2326
+ ///
2327
+ /// Another disadvantage of the pooling allocator is that it may keep memory
2328
+ /// alive when nothing is using it. A previously used slot for an instance might
2329
+ /// have paged-in memory that will not get paged out until the
2330
+ /// [`Engine`](crate::Engine) owning the pooling allocator is dropped. While
2331
+ /// suitable for some applications this behavior may not be suitable for all
2332
+ /// applications.
2333
+ ///
2334
+ /// Finally the last disadvantage of the pooling allocator is that the
2335
+ /// configuration values for the maximum number of instances, memories, tables,
2336
+ /// etc, must all be fixed up-front. There's not always a clear answer as to
2337
+ /// what these values should be so not all applications may be able to work
2338
+ /// with this constraint.
2339
+ ///
2340
+ /// [`madvise`]: https://man7.org/linux/man-pages/man2/madvise.2.html
2341
+ /// [`mprotect`]: https://man7.org/linux/man-pages/man2/mprotect.2.html
2342
+ /// [`mmap`]: https://man7.org/linux/man-pages/man2/mmap.2.html
2343
+ /// [`munmap`]: https://man7.org/linux/man-pages/man2/munmap.2.html
2344
+ #[cfg(feature = "pooling-allocator")]
2345
+ #[derive(Debug, Clone, Default)]
2346
+ pub struct PoolingAllocationConfig {
2347
+ config: crate::runtime::vm::PoolingInstanceAllocatorConfig,
2348
+ }
2349
+
2350
+ #[cfg(feature = "pooling-allocator")]
2351
+ impl PoolingAllocationConfig {
2352
+ /// Configures the maximum number of "unused warm slots" to retain in the
2353
+ /// pooling allocator.
2354
+ ///
2355
+ /// The pooling allocator operates over slots to allocate from, and each
2356
+ /// slot is considered "cold" if it's never been used before or "warm" if
2357
+ /// it's been used by some module in the past. Slots in the pooling
2358
+ /// allocator additionally track an "affinity" flag to a particular core
2359
+ /// wasm module. When a module is instantiated into a slot then the slot is
2360
+ /// considered affine to that module, even after the instance has been
2361
+ /// deallocated.
2362
+ ///
2363
+ /// When a new instance is created then a slot must be chosen, and the
2364
+ /// current algorithm for selecting a slot is:
2365
+ ///
2366
+ /// * If there are slots that are affine to the module being instantiated,
2367
+ /// then the most recently used slot is selected to be allocated from.
2368
+ /// This is done to improve reuse of resources such as memory mappings and
2369
+ /// additionally try to benefit from temporal locality for things like
2370
+ /// caches.
2371
+ ///
2372
+ /// * Otherwise if there are more than N affine slots to other modules, then
2373
+ /// one of those affine slots is chosen to be allocated. The slot chosen
2374
+ /// is picked on a least-recently-used basis.
2375
+ ///
2376
+ /// * Finally, if there are less than N affine slots to other modules, then
2377
+ /// the non-affine slots are allocated from.
2378
+ ///
2379
+ /// This setting, `max_unused_warm_slots`, is the value for N in the above
2380
+ /// algorithm. The purpose of this setting is to have a knob over the RSS
2381
+ /// impact of "unused slots" for a long-running wasm server.
2382
+ ///
2383
+ /// If this setting is set to 0, for example, then affine slots are
2384
+ /// aggressively reused on a least-recently-used basis. A "cold" slot is
2385
+ /// only used if there are no affine slots available to allocate from. This
2386
+ /// means that the set of slots used over the lifetime of a program is the
2387
+ /// same as the maximum concurrent number of wasm instances.
2388
+ ///
2389
+ /// If this setting is set to infinity, however, then cold slots are
2390
+ /// prioritized to be allocated from. This means that the set of slots used
2391
+ /// over the lifetime of a program will approach
2392
+ /// [`PoolingAllocationConfig::total_memories`], or the maximum number of
2393
+ /// slots in the pooling allocator.
2394
+ ///
2395
+ /// Wasmtime does not aggressively decommit all resources associated with a
2396
+ /// slot when the slot is not in use. For example the
2397
+ /// [`PoolingAllocationConfig::linear_memory_keep_resident`] option can be
2398
+ /// used to keep memory associated with a slot, even when it's not in use.
2399
+ /// This means that the total set of used slots in the pooling instance
2400
+ /// allocator can impact the overall RSS usage of a program.
2401
+ ///
2402
+ /// The default value for this option is `100`.
2403
+ pub fn max_unused_warm_slots(&mut self, max: u32) -> &mut Self {
2404
+ self.config.max_unused_warm_slots = max;
2405
+ self
2406
+ }
2407
+
2408
+ /// Configures whether or not stacks used for async futures are reset to
2409
+ /// zero after usage.
2410
+ ///
2411
+ /// When the [`async_support`](Config::async_support) method is enabled for
2412
+ /// Wasmtime and the [`call_async`] variant
2413
+ /// of calling WebAssembly is used then Wasmtime will create a separate
2414
+ /// runtime execution stack for each future produced by [`call_async`].
2415
+ /// During the deallocation process Wasmtime won't by default reset the
2416
+ /// contents of the stack back to zero.
2417
+ ///
2418
+ /// When this option is enabled it can be seen as a defense-in-depth
2419
+ /// mechanism to reset a stack back to zero. This is not required for
2420
+ /// correctness and can be a costly operation in highly concurrent
2421
+ /// environments due to modifications of the virtual address space requiring
2422
+ /// process-wide synchronization.
2423
+ ///
2424
+ /// This option defaults to `false`.
2425
+ ///
2426
+ /// [`call_async`]: crate::TypedFunc::call_async
2427
+ #[cfg(feature = "async")]
2428
+ pub fn async_stack_zeroing(&mut self, enable: bool) -> &mut Self {
2429
+ self.config.async_stack_zeroing = enable;
2430
+ self
2431
+ }
2432
+
2433
+ /// How much memory, in bytes, to keep resident for async stacks allocated
2434
+ /// with the pooling allocator.
2435
+ ///
2436
+ /// When [`PoolingAllocationConfig::async_stack_zeroing`] is enabled then
2437
+ /// Wasmtime will reset the contents of async stacks back to zero upon
2438
+ /// deallocation. This option can be used to perform the zeroing operation
2439
+ /// with `memset` up to a certain threshold of bytes instead of using system
2440
+ /// calls to reset the stack to zero.
2441
+ ///
2442
+ /// Note that when using this option the memory with async stacks will
2443
+ /// never be decommitted.
2444
+ #[cfg(feature = "async")]
2445
+ pub fn async_stack_keep_resident(&mut self, size: usize) -> &mut Self {
2446
+ let size = round_up_to_pages(size as u64) as usize;
2447
+ self.config.async_stack_keep_resident = size;
2448
+ self
2449
+ }
2450
+
2451
+ /// How much memory, in bytes, to keep resident for each linear memory
2452
+ /// after deallocation.
2453
+ ///
2454
+ /// This option is only applicable on Linux and has no effect on other
2455
+ /// platforms.
2456
+ ///
2457
+ /// By default Wasmtime will use `madvise` to reset the entire contents of
2458
+ /// linear memory back to zero when a linear memory is deallocated. This
2459
+ /// option can be used to use `memset` instead to set memory back to zero
2460
+ /// which can, in some configurations, reduce the number of page faults
2461
+ /// taken when a slot is reused.
2462
+ pub fn linear_memory_keep_resident(&mut self, size: usize) -> &mut Self {
2463
+ let size = round_up_to_pages(size as u64) as usize;
2464
+ self.config.linear_memory_keep_resident = size;
2465
+ self
2466
+ }
2467
+
2468
+ /// How much memory, in bytes, to keep resident for each table after
2469
+ /// deallocation.
2470
+ ///
2471
+ /// This option is only applicable on Linux and has no effect on other
2472
+ /// platforms.
2473
+ ///
2474
+ /// This option is the same as
2475
+ /// [`PoolingAllocationConfig::linear_memory_keep_resident`] except that it
2476
+ /// is applicable to tables instead.
2477
+ pub fn table_keep_resident(&mut self, size: usize) -> &mut Self {
2478
+ let size = round_up_to_pages(size as u64) as usize;
2479
+ self.config.table_keep_resident = size;
2480
+ self
2481
+ }
2482
+
2483
+ /// The maximum number of concurrent component instances supported (default
2484
+ /// is `1000`).
2485
+ ///
2486
+ /// This provides an upper-bound on the total size of component
2487
+ /// metadata-related allocations, along with
2488
+ /// [`PoolingAllocationConfig::max_component_instance_size`]. The upper bound is
2489
+ ///
2490
+ /// ```text
2491
+ /// total_component_instances * max_component_instance_size
2492
+ /// ```
2493
+ ///
2494
+ /// where `max_component_instance_size` is rounded up to the size and alignment
2495
+ /// of the internal representation of the metadata.
2496
+ pub fn total_component_instances(&mut self, count: u32) -> &mut Self {
2497
+ self.config.limits.total_component_instances = count;
2498
+ self
2499
+ }
2500
+
2501
+ /// The maximum size, in bytes, allocated for a component instance's
2502
+ /// `VMComponentContext` metadata.
2503
+ ///
2504
+ /// The [`wasmtime::component::Instance`][crate::component::Instance] type
2505
+ /// has a static size but its internal `VMComponentContext` is dynamically
2506
+ /// sized depending on the component being instantiated. This size limit
2507
+ /// loosely correlates to the size of the component, taking into account
2508
+ /// factors such as:
2509
+ ///
2510
+ /// * number of lifted and lowered functions,
2511
+ /// * number of memories
2512
+ /// * number of inner instances
2513
+ /// * number of resources
2514
+ ///
2515
+ /// If the allocated size per instance is too small then instantiation of a
2516
+ /// module will fail at runtime with an error indicating how many bytes were
2517
+ /// needed.
2518
+ ///
2519
+ /// The default value for this is 1MiB.
2520
+ ///
2521
+ /// This provides an upper-bound on the total size of component
2522
+ /// metadata-related allocations, along with
2523
+ /// [`PoolingAllocationConfig::total_component_instances`]. The upper bound is
2524
+ ///
2525
+ /// ```text
2526
+ /// total_component_instances * max_component_instance_size
2527
+ /// ```
2528
+ ///
2529
+ /// where `max_component_instance_size` is rounded up to the size and alignment
2530
+ /// of the internal representation of the metadata.
2531
+ pub fn max_component_instance_size(&mut self, size: usize) -> &mut Self {
2532
+ self.config.limits.component_instance_size = size;
2533
+ self
2534
+ }
2535
+
2536
+ /// The maximum number of core instances a single component may contain
2537
+ /// (default is `20`).
2538
+ ///
2539
+ /// This method (along with
2540
+ /// [`PoolingAllocationConfig::max_memories_per_component`],
2541
+ /// [`PoolingAllocationConfig::max_tables_per_component`], and
2542
+ /// [`PoolingAllocationConfig::max_component_instance_size`]) allows you to cap
2543
+ /// the amount of resources a single component allocation consumes.
2544
+ ///
2545
+ /// If a component will instantiate more core instances than `count`, then
2546
+ /// the component will fail to instantiate.
2547
+ pub fn max_core_instances_per_component(&mut self, count: u32) -> &mut Self {
2548
+ self.config.limits.max_core_instances_per_component = count;
2549
+ self
2550
+ }
2551
+
2552
+ /// The maximum number of Wasm linear memories that a single component may
2553
+ /// transitively contain (default is `20`).
2554
+ ///
2555
+ /// This method (along with
2556
+ /// [`PoolingAllocationConfig::max_core_instances_per_component`],
2557
+ /// [`PoolingAllocationConfig::max_tables_per_component`], and
2558
+ /// [`PoolingAllocationConfig::max_component_instance_size`]) allows you to cap
2559
+ /// the amount of resources a single component allocation consumes.
2560
+ ///
2561
+ /// If a component transitively contains more linear memories than `count`,
2562
+ /// then the component will fail to instantiate.
2563
+ pub fn max_memories_per_component(&mut self, count: u32) -> &mut Self {
2564
+ self.config.limits.max_memories_per_component = count;
2565
+ self
2566
+ }
2567
+
2568
+ /// The maximum number of tables that a single component may transitively
2569
+ /// contain (default is `20`).
2570
+ ///
2571
+ /// This method (along with
2572
+ /// [`PoolingAllocationConfig::max_core_instances_per_component`],
2573
+ /// [`PoolingAllocationConfig::max_memories_per_component`],
2574
+ /// [`PoolingAllocationConfig::max_component_instance_size`]) allows you to cap
2575
+ /// the amount of resources a single component allocation consumes.
2576
+ ///
2577
+ /// If a component will transitively contains more tables than `count`, then
2578
+ /// the component will fail to instantiate.
2579
+ pub fn max_tables_per_component(&mut self, count: u32) -> &mut Self {
2580
+ self.config.limits.max_tables_per_component = count;
2581
+ self
2582
+ }
2583
+
2584
+ /// The maximum number of concurrent Wasm linear memories supported (default
2585
+ /// is `1000`).
2586
+ ///
2587
+ /// This value has a direct impact on the amount of memory allocated by the pooling
2588
+ /// instance allocator.
2589
+ ///
2590
+ /// The pooling instance allocator allocates a memory pool, where each entry
2591
+ /// in the pool contains the reserved address space for each linear memory
2592
+ /// supported by an instance.
2593
+ ///
2594
+ /// The memory pool will reserve a large quantity of host process address
2595
+ /// space to elide the bounds checks required for correct WebAssembly memory
2596
+ /// semantics. Even with 64-bit address spaces, the address space is limited
2597
+ /// when dealing with a large number of linear memories.
2598
+ ///
2599
+ /// For example, on Linux x86_64, the userland address space limit is 128
2600
+ /// TiB. That might seem like a lot, but each linear memory will *reserve* 6
2601
+ /// GiB of space by default.
2602
+ pub fn total_memories(&mut self, count: u32) -> &mut Self {
2603
+ self.config.limits.total_memories = count;
2604
+ self
2605
+ }
2606
+
2607
+ /// The maximum number of concurrent tables supported (default is `1000`).
2608
+ ///
2609
+ /// This value has a direct impact on the amount of memory allocated by the
2610
+ /// pooling instance allocator.
2611
+ ///
2612
+ /// The pooling instance allocator allocates a table pool, where each entry
2613
+ /// in the pool contains the space needed for each WebAssembly table
2614
+ /// supported by an instance (see `table_elements` to control the size of
2615
+ /// each table).
2616
+ pub fn total_tables(&mut self, count: u32) -> &mut Self {
2617
+ self.config.limits.total_tables = count;
2618
+ self
2619
+ }
2620
+
2621
+ /// The maximum number of execution stacks allowed for asynchronous
2622
+ /// execution, when enabled (default is `1000`).
2623
+ ///
2624
+ /// This value has a direct impact on the amount of memory allocated by the
2625
+ /// pooling instance allocator.
2626
+ #[cfg(feature = "async")]
2627
+ pub fn total_stacks(&mut self, count: u32) -> &mut Self {
2628
+ self.config.limits.total_stacks = count;
2629
+ self
2630
+ }
2631
+
2632
+ /// The maximum number of concurrent core instances supported (default is
2633
+ /// `1000`).
2634
+ ///
2635
+ /// This provides an upper-bound on the total size of core instance
2636
+ /// metadata-related allocations, along with
2637
+ /// [`PoolingAllocationConfig::max_core_instance_size`]. The upper bound is
2638
+ ///
2639
+ /// ```text
2640
+ /// total_core_instances * max_core_instance_size
2641
+ /// ```
2642
+ ///
2643
+ /// where `max_core_instance_size` is rounded up to the size and alignment of
2644
+ /// the internal representation of the metadata.
2645
+ pub fn total_core_instances(&mut self, count: u32) -> &mut Self {
2646
+ self.config.limits.total_core_instances = count;
2647
+ self
2648
+ }
2649
+
2650
+ /// The maximum size, in bytes, allocated for a core instance's `VMContext`
2651
+ /// metadata.
2652
+ ///
2653
+ /// The [`Instance`][crate::Instance] type has a static size but its
2654
+ /// `VMContext` metadata is dynamically sized depending on the module being
2655
+ /// instantiated. This size limit loosely correlates to the size of the Wasm
2656
+ /// module, taking into account factors such as:
2657
+ ///
2658
+ /// * number of functions
2659
+ /// * number of globals
2660
+ /// * number of memories
2661
+ /// * number of tables
2662
+ /// * number of function types
2663
+ ///
2664
+ /// If the allocated size per instance is too small then instantiation of a
2665
+ /// module will fail at runtime with an error indicating how many bytes were
2666
+ /// needed.
2667
+ ///
2668
+ /// The default value for this is 1MiB.
2669
+ ///
2670
+ /// This provides an upper-bound on the total size of core instance
2671
+ /// metadata-related allocations, along with
2672
+ /// [`PoolingAllocationConfig::total_core_instances`]. The upper bound is
2673
+ ///
2674
+ /// ```text
2675
+ /// total_core_instances * max_core_instance_size
2676
+ /// ```
2677
+ ///
2678
+ /// where `max_core_instance_size` is rounded up to the size and alignment of
2679
+ /// the internal representation of the metadata.
2680
+ pub fn max_core_instance_size(&mut self, size: usize) -> &mut Self {
2681
+ self.config.limits.core_instance_size = size;
2682
+ self
2683
+ }
2684
+
2685
+ /// The maximum number of defined tables for a core module (default is `1`).
2686
+ ///
2687
+ /// This value controls the capacity of the `VMTableDefinition` table in
2688
+ /// each instance's `VMContext` structure.
2689
+ ///
2690
+ /// The allocated size of the table will be `tables *
2691
+ /// sizeof(VMTableDefinition)` for each instance regardless of how many
2692
+ /// tables are defined by an instance's module.
2693
+ pub fn max_tables_per_module(&mut self, tables: u32) -> &mut Self {
2694
+ self.config.limits.max_tables_per_module = tables;
2695
+ self
2696
+ }
2697
+
2698
+ /// The maximum table elements for any table defined in a module (default is
2699
+ /// `20000`).
2700
+ ///
2701
+ /// If a table's minimum element limit is greater than this value, the
2702
+ /// module will fail to instantiate.
2703
+ ///
2704
+ /// If a table's maximum element limit is unbounded or greater than this
2705
+ /// value, the maximum will be `table_elements` for the purpose of any
2706
+ /// `table.grow` instruction.
2707
+ ///
2708
+ /// This value is used to reserve the maximum space for each supported
2709
+ /// table; table elements are pointer-sized in the Wasmtime runtime.
2710
+ /// Therefore, the space reserved for each instance is `tables *
2711
+ /// table_elements * sizeof::<*const ()>`.
2712
+ pub fn table_elements(&mut self, elements: u32) -> &mut Self {
2713
+ self.config.limits.table_elements = elements;
2714
+ self
2715
+ }
2716
+
2717
+ /// The maximum number of defined linear memories for a module (default is
2718
+ /// `1`).
2719
+ ///
2720
+ /// This value controls the capacity of the `VMMemoryDefinition` table in
2721
+ /// each core instance's `VMContext` structure.
2722
+ ///
2723
+ /// The allocated size of the table will be `memories *
2724
+ /// sizeof(VMMemoryDefinition)` for each core instance regardless of how
2725
+ /// many memories are defined by the core instance's module.
2726
+ pub fn max_memories_per_module(&mut self, memories: u32) -> &mut Self {
2727
+ self.config.limits.max_memories_per_module = memories;
2728
+ self
2729
+ }
2730
+
2731
+ /// The maximum number of Wasm pages for any linear memory defined in a
2732
+ /// module (default is `160`).
2733
+ ///
2734
+ /// The default of `160` means at most 10 MiB of host memory may be
2735
+ /// committed for each instance.
2736
+ ///
2737
+ /// If a memory's minimum page limit is greater than this value, the module
2738
+ /// will fail to instantiate.
2739
+ ///
2740
+ /// If a memory's maximum page limit is unbounded or greater than this
2741
+ /// value, the maximum will be `memory_pages` for the purpose of any
2742
+ /// `memory.grow` instruction.
2743
+ ///
2744
+ /// This value is used to control the maximum accessible space for each
2745
+ /// linear memory of a core instance.
2746
+ ///
2747
+ /// The reservation size of each linear memory is controlled by the
2748
+ /// `static_memory_maximum_size` setting and this value cannot exceed the
2749
+ /// configured static memory maximum size.
2750
+ pub fn memory_pages(&mut self, pages: u64) -> &mut Self {
2751
+ self.config.limits.memory_pages = pages;
2752
+ self
2753
+ }
2754
+
2755
+ /// Configures whether memory protection keys (MPK) should be used for more
2756
+ /// efficient layout of pool-allocated memories.
2757
+ ///
2758
+ /// When using the pooling allocator (see [`Config::allocation_strategy`],
2759
+ /// [`InstanceAllocationStrategy::Pooling`]), memory protection keys can
2760
+ /// reduce the total amount of allocated virtual memory by eliminating guard
2761
+ /// regions between WebAssembly memories in the pool. It does so by
2762
+ /// "coloring" memory regions with different memory keys and setting which
2763
+ /// regions are accessible each time executions switches from host to guest
2764
+ /// (or vice versa).
2765
+ ///
2766
+ /// MPK is only available on Linux (called `pku` there) and recent x86
2767
+ /// systems; we check for MPK support at runtime by examining the `CPUID`
2768
+ /// register. This configuration setting can be in three states:
2769
+ ///
2770
+ /// - `auto`: if MPK support is available the guard regions are removed; if
2771
+ /// not, the guard regions remain
2772
+ /// - `enable`: use MPK to eliminate guard regions; fail if MPK is not
2773
+ /// supported
2774
+ /// - `disable`: never use MPK
2775
+ ///
2776
+ /// By default this value is `disabled`, but may become `auto` in future
2777
+ /// releases.
2778
+ ///
2779
+ /// __WARNING__: this configuration options is still experimental--use at
2780
+ /// your own risk! MPK uses kernel and CPU features to protect memory
2781
+ /// regions; you may observe segmentation faults if anything is
2782
+ /// misconfigured.
2783
+ pub fn memory_protection_keys(&mut self, enable: MpkEnabled) -> &mut Self {
2784
+ self.config.memory_protection_keys = enable;
2785
+ self
2786
+ }
2787
+
2788
+ /// Sets an upper limit on how many memory protection keys (MPK) Wasmtime
2789
+ /// will use.
2790
+ ///
2791
+ /// This setting is only applicable when
2792
+ /// [`PoolingAllocationConfig::memory_protection_keys`] is set to `enable`
2793
+ /// or `auto`. Configuring this above the HW and OS limits (typically 15)
2794
+ /// has no effect.
2795
+ ///
2796
+ /// If multiple Wasmtime engines are used in the same process, note that all
2797
+ /// engines will share the same set of allocated keys; this setting will
2798
+ /// limit how many keys are allocated initially and thus available to all
2799
+ /// other engines.
2800
+ pub fn max_memory_protection_keys(&mut self, max: usize) -> &mut Self {
2801
+ self.config.max_memory_protection_keys = max;
2802
+ self
2803
+ }
2804
+
2805
+ /// Check if memory protection keys (MPK) are available on the current host.
2806
+ ///
2807
+ /// This is a convenience method for determining MPK availability using the
2808
+ /// same method that [`MpkEnabled::Auto`] does. See
2809
+ /// [`PoolingAllocationConfig::memory_protection_keys`] for more
2810
+ /// information.
2811
+ pub fn are_memory_protection_keys_available() -> bool {
2812
+ mpk::is_supported()
2813
+ }
2814
+
2815
+ /// The maximum number of concurrent GC heaps supported (default is `1000`).
2816
+ ///
2817
+ /// This value has a direct impact on the amount of memory allocated by the
2818
+ /// pooling instance allocator.
2819
+ ///
2820
+ /// The pooling instance allocator allocates a GC heap pool, where each
2821
+ /// entry in the pool contains the space needed for each GC heap used by a
2822
+ /// store.
2823
+ #[cfg(feature = "gc")]
2824
+ pub fn total_gc_heaps(&mut self, count: u32) -> &mut Self {
2825
+ self.config.limits.total_gc_heaps = count;
2826
+ self
2827
+ }
2828
+ }
2829
+
2830
+ pub(crate) fn probestack_supported(arch: Architecture) -> bool {
2831
+ matches!(
2832
+ arch,
2833
+ Architecture::X86_64 | Architecture::Aarch64(_) | Architecture::Riscv64(_)
2834
+ )
2835
+ }
2836
+
2837
+ #[cfg(feature = "std")]
2838
+ fn detect_host_feature(feature: &str) -> Option<bool> {
2839
+ #[cfg(target_arch = "aarch64")]
2840
+ {
2841
+ return match feature {
2842
+ "lse" => Some(std::arch::is_aarch64_feature_detected!("lse")),
2843
+ "paca" => Some(std::arch::is_aarch64_feature_detected!("paca")),
2844
+
2845
+ _ => None,
2846
+ };
2847
+ }
2848
+
2849
+ // There is no is_s390x_feature_detected macro yet, so for now
2850
+ // we use getauxval from the libc crate directly.
2851
+ #[cfg(all(target_arch = "s390x", target_os = "linux"))]
2852
+ {
2853
+ let v = unsafe { libc::getauxval(libc::AT_HWCAP) };
2854
+ const HWCAP_S390X_VXRS_EXT2: libc::c_ulong = 32768;
2855
+
2856
+ return match feature {
2857
+ // There is no separate HWCAP bit for mie2, so assume
2858
+ // that any machine with vxrs_ext2 also has mie2.
2859
+ "vxrs_ext2" | "mie2" => Some((v & HWCAP_S390X_VXRS_EXT2) != 0),
2860
+
2861
+ _ => None,
2862
+ };
2863
+ }
2864
+
2865
+ #[cfg(target_arch = "riscv64")]
2866
+ {
2867
+ return match feature {
2868
+ // due to `is_riscv64_feature_detected` is not stable.
2869
+ // we cannot use it. For now lie and say all features are always
2870
+ // found to keep tests working.
2871
+ _ => Some(true),
2872
+ };
2873
+ }
2874
+
2875
+ #[cfg(target_arch = "x86_64")]
2876
+ {
2877
+ return match feature {
2878
+ "sse3" => Some(std::is_x86_feature_detected!("sse3")),
2879
+ "ssse3" => Some(std::is_x86_feature_detected!("ssse3")),
2880
+ "sse4.1" => Some(std::is_x86_feature_detected!("sse4.1")),
2881
+ "sse4.2" => Some(std::is_x86_feature_detected!("sse4.2")),
2882
+ "popcnt" => Some(std::is_x86_feature_detected!("popcnt")),
2883
+ "avx" => Some(std::is_x86_feature_detected!("avx")),
2884
+ "avx2" => Some(std::is_x86_feature_detected!("avx2")),
2885
+ "fma" => Some(std::is_x86_feature_detected!("fma")),
2886
+ "bmi1" => Some(std::is_x86_feature_detected!("bmi1")),
2887
+ "bmi2" => Some(std::is_x86_feature_detected!("bmi2")),
2888
+ "avx512bitalg" => Some(std::is_x86_feature_detected!("avx512bitalg")),
2889
+ "avx512dq" => Some(std::is_x86_feature_detected!("avx512dq")),
2890
+ "avx512f" => Some(std::is_x86_feature_detected!("avx512f")),
2891
+ "avx512vl" => Some(std::is_x86_feature_detected!("avx512vl")),
2892
+ "avx512vbmi" => Some(std::is_x86_feature_detected!("avx512vbmi")),
2893
+ "lzcnt" => Some(std::is_x86_feature_detected!("lzcnt")),
2894
+
2895
+ _ => None,
2896
+ };
2897
+ }
2898
+
2899
+ #[allow(unreachable_code)]
2900
+ {
2901
+ let _ = feature;
2902
+ return None;
2903
+ }
2904
+ }