wasmtime 9.0.4 → 10.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1933) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +184 -101
  3. data/ext/Cargo.toml +6 -6
  4. data/ext/build.rs +2 -2
  5. data/ext/cargo-vendor/cranelift-bforest-0.97.1/.cargo-checksum.json +1 -0
  6. data/ext/cargo-vendor/cranelift-bforest-0.97.1/Cargo.toml +31 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.97.1/.cargo-checksum.json +1 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.97.1/Cargo.toml +158 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.97.1/benches/x64-evex-encoding.rs +52 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/ir/trapcode.rs +144 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/abi.rs +1294 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst/emit.rs +3684 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst/emit_tests.rs +7895 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst/imms.rs +1210 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst/mod.rs +2966 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/inst.isle +4037 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/lower/isle.rs +816 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/lower.isle +2906 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/aarch64/mod.rs +238 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/mod.rs +424 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/abi.rs +825 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/args.rs +1812 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/emit.rs +3008 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/emit_tests.rs +2338 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/encode.rs +262 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/imms.rs +250 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/mod.rs +1963 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/regs.rs +223 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/unwind/systemv.rs +174 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst/vector.rs +669 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst.isle +2915 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/inst_vector.isle +760 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/lower/isle.rs +553 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/lower.isle +1409 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/riscv64/mod.rs +216 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/abi.rs +957 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/inst/emit.rs +3707 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/inst/emit_tests.rs +13409 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/inst/mod.rs +3426 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/inst.isle +5046 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/lower.isle +3991 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/s390x/mod.rs +213 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/abi.rs +985 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/encoding/evex.rs +749 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/encoding/rex.rs +588 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/encoding/vex.rs +492 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst/args.rs +2193 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst/emit.rs +4090 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst/emit_tests.rs +5674 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst/mod.rs +2667 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/inst.isle +5104 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/lower/isle.rs +1148 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/lower.isle +4481 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/lower.rs +328 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isa/x64/mod.rs +251 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/isle_prelude.rs +862 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/abi.rs +2455 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/buffer.rs +2277 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/compile.rs +92 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/isle.rs +827 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/lower.rs +1388 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/mod.rs +549 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/reg.rs +537 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/machinst/vcode.rs +1580 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/prelude.isle +578 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/prelude_lower.isle +1012 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/settings.rs +600 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.97.1/src/verifier/mod.rs +1884 -0
  69. data/ext/cargo-vendor/cranelift-codegen-meta-0.97.1/.cargo-checksum.json +1 -0
  70. data/ext/cargo-vendor/cranelift-codegen-meta-0.97.1/Cargo.toml +23 -0
  71. data/ext/cargo-vendor/cranelift-codegen-meta-0.97.1/src/isa/x86.rs +444 -0
  72. data/ext/cargo-vendor/cranelift-codegen-meta-0.97.1/src/shared/settings.rs +348 -0
  73. data/ext/cargo-vendor/cranelift-codegen-shared-0.97.1/.cargo-checksum.json +1 -0
  74. data/ext/cargo-vendor/cranelift-codegen-shared-0.97.1/Cargo.toml +22 -0
  75. data/ext/cargo-vendor/cranelift-control-0.97.1/.cargo-checksum.json +1 -0
  76. data/ext/cargo-vendor/cranelift-control-0.97.1/Cargo.toml +30 -0
  77. data/ext/cargo-vendor/cranelift-control-0.97.1/src/chaos.rs +125 -0
  78. data/ext/cargo-vendor/cranelift-control-0.97.1/src/lib.rs +45 -0
  79. data/ext/cargo-vendor/cranelift-control-0.97.1/src/zero_sized.rs +53 -0
  80. data/ext/cargo-vendor/cranelift-entity-0.97.1/.cargo-checksum.json +1 -0
  81. data/ext/cargo-vendor/cranelift-entity-0.97.1/Cargo.toml +35 -0
  82. data/ext/cargo-vendor/cranelift-entity-0.97.1/src/list.rs +955 -0
  83. data/ext/cargo-vendor/cranelift-frontend-0.97.1/.cargo-checksum.json +1 -0
  84. data/ext/cargo-vendor/cranelift-frontend-0.97.1/Cargo.toml +53 -0
  85. data/ext/cargo-vendor/cranelift-isle-0.97.1/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/cranelift-isle-0.97.1/Cargo.toml +37 -0
  87. data/ext/cargo-vendor/cranelift-native-0.97.1/.cargo-checksum.json +1 -0
  88. data/ext/cargo-vendor/cranelift-native-0.97.1/Cargo.toml +38 -0
  89. data/ext/cargo-vendor/cranelift-native-0.97.1/src/lib.rs +215 -0
  90. data/ext/cargo-vendor/cranelift-wasm-0.97.1/.cargo-checksum.json +1 -0
  91. data/ext/cargo-vendor/cranelift-wasm-0.97.1/Cargo.toml +85 -0
  92. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/code_translator.rs +3538 -0
  93. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/environ/dummy.rs +924 -0
  94. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/environ/spec.rs +834 -0
  95. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/func_translator.rs +440 -0
  96. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/sections_translator.rs +417 -0
  97. data/ext/cargo-vendor/cranelift-wasm-0.97.1/src/translation_utils.rs +99 -0
  98. data/ext/cargo-vendor/encoding_rs-0.8.32/.cargo-checksum.json +1 -0
  99. data/ext/cargo-vendor/encoding_rs-0.8.32/CONTRIBUTING.md +48 -0
  100. data/ext/cargo-vendor/encoding_rs-0.8.32/COPYRIGHT +17 -0
  101. data/ext/cargo-vendor/encoding_rs-0.8.32/Cargo.toml +84 -0
  102. data/ext/cargo-vendor/encoding_rs-0.8.32/Ideas.md +106 -0
  103. data/ext/cargo-vendor/encoding_rs-0.8.32/LICENSE-APACHE +202 -0
  104. data/ext/cargo-vendor/encoding_rs-0.8.32/LICENSE-MIT +25 -0
  105. data/ext/cargo-vendor/encoding_rs-0.8.32/LICENSE-WHATWG +26 -0
  106. data/ext/cargo-vendor/encoding_rs-0.8.32/README.md +827 -0
  107. data/ext/cargo-vendor/encoding_rs-0.8.32/ci/miri.sh +14 -0
  108. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/Big5.txt +16 -0
  109. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/EUC-JP.txt +12 -0
  110. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/EUC-KR.txt +10 -0
  111. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/GBK.txt +16 -0
  112. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/IBM866.txt +8 -0
  113. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-2022-JP.txt +10 -0
  114. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-10.txt +8 -0
  115. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-13.txt +8 -0
  116. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-14.txt +8 -0
  117. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-15.txt +7 -0
  118. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-16.txt +8 -0
  119. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-2.txt +6 -0
  120. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-3.txt +6 -0
  121. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-4.txt +6 -0
  122. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-5.txt +6 -0
  123. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-6.txt +7 -0
  124. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-7.txt +11 -0
  125. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-8-I.txt +9 -0
  126. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/ISO-8859-8.txt +9 -0
  127. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/KOI8-R.txt +6 -0
  128. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/KOI8-U.txt +6 -0
  129. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/Shift_JIS.txt +8 -0
  130. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/UTF-16BE.txt +8 -0
  131. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/UTF-16LE.txt +8 -0
  132. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/UTF-8.txt +5 -0
  133. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/gb18030.txt +9 -0
  134. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/macintosh.txt +7 -0
  135. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/replacement.txt +10 -0
  136. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1250.txt +6 -0
  137. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1251.txt +6 -0
  138. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1252.txt +7 -0
  139. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1253.txt +8 -0
  140. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1254.txt +7 -0
  141. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1255.txt +8 -0
  142. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1256.txt +6 -0
  143. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1257.txt +7 -0
  144. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-1258.txt +11 -0
  145. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/windows-874.txt +7 -0
  146. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/x-mac-cyrillic.txt +6 -0
  147. data/ext/cargo-vendor/encoding_rs-0.8.32/doc/x-user-defined.txt +6 -0
  148. data/ext/cargo-vendor/encoding_rs-0.8.32/generate-encoding-data.py +2008 -0
  149. data/ext/cargo-vendor/encoding_rs-0.8.32/rustfmt.toml +1 -0
  150. data/ext/cargo-vendor/encoding_rs-0.8.32/src/ascii.rs +1546 -0
  151. data/ext/cargo-vendor/encoding_rs-0.8.32/src/big5.rs +427 -0
  152. data/ext/cargo-vendor/encoding_rs-0.8.32/src/data.rs +114378 -0
  153. data/ext/cargo-vendor/encoding_rs-0.8.32/src/euc_jp.rs +469 -0
  154. data/ext/cargo-vendor/encoding_rs-0.8.32/src/euc_kr.rs +442 -0
  155. data/ext/cargo-vendor/encoding_rs-0.8.32/src/gb18030.rs +767 -0
  156. data/ext/cargo-vendor/encoding_rs-0.8.32/src/handles.rs +1969 -0
  157. data/ext/cargo-vendor/encoding_rs-0.8.32/src/iso_2022_jp.rs +1068 -0
  158. data/ext/cargo-vendor/encoding_rs-0.8.32/src/lib.rs +6133 -0
  159. data/ext/cargo-vendor/encoding_rs-0.8.32/src/macros.rs +1622 -0
  160. data/ext/cargo-vendor/encoding_rs-0.8.32/src/mem.rs +3354 -0
  161. data/ext/cargo-vendor/encoding_rs-0.8.32/src/replacement.rs +104 -0
  162. data/ext/cargo-vendor/encoding_rs-0.8.32/src/shift_jis.rs +426 -0
  163. data/ext/cargo-vendor/encoding_rs-0.8.32/src/simd_funcs.rs +453 -0
  164. data/ext/cargo-vendor/encoding_rs-0.8.32/src/single_byte.rs +714 -0
  165. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/big5_in.txt +19787 -0
  166. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/big5_in_ref.txt +19787 -0
  167. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/big5_out.txt +14601 -0
  168. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/big5_out_ref.txt +14601 -0
  169. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/euc_kr_in.txt +23945 -0
  170. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/euc_kr_in_ref.txt +23945 -0
  171. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/euc_kr_out.txt +17053 -0
  172. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/euc_kr_out_ref.txt +17053 -0
  173. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/gb18030_in.txt +23945 -0
  174. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/gb18030_in_ref.txt +23945 -0
  175. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/gb18030_out.txt +23944 -0
  176. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/gb18030_out_ref.txt +23944 -0
  177. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/iso_2022_jp_in.txt +8841 -0
  178. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/iso_2022_jp_in_ref.txt +8841 -0
  179. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/iso_2022_jp_out.txt +7404 -0
  180. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/iso_2022_jp_out_ref.txt +7404 -0
  181. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0208_in.txt +8841 -0
  182. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0208_in_ref.txt +8841 -0
  183. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0208_out.txt +7341 -0
  184. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0208_out_ref.txt +7341 -0
  185. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0212_in.txt +8841 -0
  186. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/jis0212_in_ref.txt +8841 -0
  187. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/shift_jis_in.txt +11285 -0
  188. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/shift_jis_in_ref.txt +11285 -0
  189. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/shift_jis_out.txt +7355 -0
  190. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_data/shift_jis_out_ref.txt +7355 -0
  191. data/ext/cargo-vendor/encoding_rs-0.8.32/src/test_labels_names.rs +242 -0
  192. data/ext/cargo-vendor/encoding_rs-0.8.32/src/testing.rs +262 -0
  193. data/ext/cargo-vendor/encoding_rs-0.8.32/src/utf_16.rs +472 -0
  194. data/ext/cargo-vendor/encoding_rs-0.8.32/src/utf_8.rs +1629 -0
  195. data/ext/cargo-vendor/encoding_rs-0.8.32/src/variant.rs +400 -0
  196. data/ext/cargo-vendor/encoding_rs-0.8.32/src/x_user_defined.rs +249 -0
  197. data/ext/cargo-vendor/equivalent-1.0.1/.cargo-checksum.json +1 -0
  198. data/ext/cargo-vendor/equivalent-1.0.1/Cargo.toml +27 -0
  199. data/ext/cargo-vendor/equivalent-1.0.1/LICENSE-APACHE +201 -0
  200. data/ext/cargo-vendor/equivalent-1.0.1/LICENSE-MIT +25 -0
  201. data/ext/cargo-vendor/equivalent-1.0.1/README.md +25 -0
  202. data/ext/cargo-vendor/equivalent-1.0.1/src/lib.rs +113 -0
  203. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/.cargo-checksum.json +1 -0
  204. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/Cargo.toml +36 -0
  205. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/run-tests.sh +12 -0
  206. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/src/lib.rs +200 -0
  207. data/ext/cargo-vendor/file-per-thread-logger-0.2.0/tests/test.rs +323 -0
  208. data/ext/cargo-vendor/hashbrown-0.14.0/.cargo-checksum.json +1 -0
  209. data/ext/cargo-vendor/hashbrown-0.14.0/CHANGELOG.md +475 -0
  210. data/ext/cargo-vendor/hashbrown-0.14.0/Cargo.toml +131 -0
  211. data/ext/cargo-vendor/hashbrown-0.14.0/LICENSE-APACHE +201 -0
  212. data/ext/cargo-vendor/hashbrown-0.14.0/LICENSE-MIT +25 -0
  213. data/ext/cargo-vendor/hashbrown-0.14.0/README.md +125 -0
  214. data/ext/cargo-vendor/hashbrown-0.14.0/benches/bench.rs +331 -0
  215. data/ext/cargo-vendor/hashbrown-0.14.0/benches/insert_unique_unchecked.rs +32 -0
  216. data/ext/cargo-vendor/hashbrown-0.14.0/clippy.toml +1 -0
  217. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/mod.rs +6 -0
  218. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/helpers.rs +27 -0
  219. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/map.rs +731 -0
  220. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/mod.rs +4 -0
  221. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/raw.rs +231 -0
  222. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rayon/set.rs +659 -0
  223. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rkyv/hash_map.rs +125 -0
  224. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rkyv/hash_set.rs +123 -0
  225. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/rkyv/mod.rs +2 -0
  226. data/ext/cargo-vendor/hashbrown-0.14.0/src/external_trait_impls/serde.rs +201 -0
  227. data/ext/cargo-vendor/hashbrown-0.14.0/src/lib.rs +165 -0
  228. data/ext/cargo-vendor/hashbrown-0.14.0/src/macros.rs +70 -0
  229. data/ext/cargo-vendor/hashbrown-0.14.0/src/map.rs +8506 -0
  230. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/alloc.rs +86 -0
  231. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/bitmask.rs +133 -0
  232. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/generic.rs +157 -0
  233. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/mod.rs +3378 -0
  234. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/neon.rs +124 -0
  235. data/ext/cargo-vendor/hashbrown-0.14.0/src/raw/sse2.rs +149 -0
  236. data/ext/cargo-vendor/hashbrown-0.14.0/src/rustc_entry.rs +630 -0
  237. data/ext/cargo-vendor/hashbrown-0.14.0/src/scopeguard.rs +72 -0
  238. data/ext/cargo-vendor/hashbrown-0.14.0/src/set.rs +2903 -0
  239. data/ext/cargo-vendor/hashbrown-0.14.0/tests/equivalent_trait.rs +53 -0
  240. data/ext/cargo-vendor/hashbrown-0.14.0/tests/hasher.rs +65 -0
  241. data/ext/cargo-vendor/hashbrown-0.14.0/tests/raw.rs +11 -0
  242. data/ext/cargo-vendor/hashbrown-0.14.0/tests/rayon.rs +535 -0
  243. data/ext/cargo-vendor/hashbrown-0.14.0/tests/serde.rs +65 -0
  244. data/ext/cargo-vendor/hashbrown-0.14.0/tests/set.rs +34 -0
  245. data/ext/cargo-vendor/indexmap-2.0.0/.cargo-checksum.json +1 -0
  246. data/ext/cargo-vendor/indexmap-2.0.0/Cargo.toml +112 -0
  247. data/ext/cargo-vendor/indexmap-2.0.0/LICENSE-APACHE +201 -0
  248. data/ext/cargo-vendor/indexmap-2.0.0/LICENSE-MIT +25 -0
  249. data/ext/cargo-vendor/indexmap-2.0.0/README.md +55 -0
  250. data/ext/cargo-vendor/indexmap-2.0.0/RELEASES.md +424 -0
  251. data/ext/cargo-vendor/indexmap-2.0.0/benches/bench.rs +763 -0
  252. data/ext/cargo-vendor/indexmap-2.0.0/benches/faststring.rs +185 -0
  253. data/ext/cargo-vendor/indexmap-2.0.0/src/arbitrary.rs +77 -0
  254. data/ext/cargo-vendor/indexmap-2.0.0/src/lib.rs +278 -0
  255. data/ext/cargo-vendor/indexmap-2.0.0/src/macros.rs +178 -0
  256. data/ext/cargo-vendor/indexmap-2.0.0/src/map/core/raw.rs +217 -0
  257. data/ext/cargo-vendor/indexmap-2.0.0/src/map/core.rs +742 -0
  258. data/ext/cargo-vendor/indexmap-2.0.0/src/map/iter.rs +541 -0
  259. data/ext/cargo-vendor/indexmap-2.0.0/src/map/serde_seq.rs +138 -0
  260. data/ext/cargo-vendor/indexmap-2.0.0/src/map/slice.rs +471 -0
  261. data/ext/cargo-vendor/indexmap-2.0.0/src/map/tests.rs +449 -0
  262. data/ext/cargo-vendor/indexmap-2.0.0/src/map.rs +1223 -0
  263. data/ext/cargo-vendor/indexmap-2.0.0/src/mutable_keys.rs +91 -0
  264. data/ext/cargo-vendor/indexmap-2.0.0/src/rayon/map.rs +679 -0
  265. data/ext/cargo-vendor/indexmap-2.0.0/src/rayon/mod.rs +27 -0
  266. data/ext/cargo-vendor/indexmap-2.0.0/src/rayon/set.rs +774 -0
  267. data/ext/cargo-vendor/indexmap-2.0.0/src/rustc.rs +158 -0
  268. data/ext/cargo-vendor/indexmap-2.0.0/src/serde.rs +151 -0
  269. data/ext/cargo-vendor/indexmap-2.0.0/src/set/iter.rs +543 -0
  270. data/ext/cargo-vendor/indexmap-2.0.0/src/set/slice.rs +278 -0
  271. data/ext/cargo-vendor/indexmap-2.0.0/src/set/tests.rs +545 -0
  272. data/ext/cargo-vendor/indexmap-2.0.0/src/set.rs +1011 -0
  273. data/ext/cargo-vendor/indexmap-2.0.0/src/util.rs +53 -0
  274. data/ext/cargo-vendor/indexmap-2.0.0/tests/equivalent_trait.rs +53 -0
  275. data/ext/cargo-vendor/indexmap-2.0.0/tests/macros_full_path.rs +19 -0
  276. data/ext/cargo-vendor/indexmap-2.0.0/tests/quick.rs +579 -0
  277. data/ext/cargo-vendor/indexmap-2.0.0/tests/tests.rs +28 -0
  278. data/ext/cargo-vendor/regalloc2-0.9.2/.cargo-checksum.json +1 -0
  279. data/ext/cargo-vendor/regalloc2-0.9.2/Cargo.toml +72 -0
  280. data/ext/cargo-vendor/regalloc2-0.9.2/deny.toml +28 -0
  281. data/ext/cargo-vendor/regalloc2-0.9.2/src/checker.rs +1089 -0
  282. data/ext/cargo-vendor/regalloc2-0.9.2/src/fuzzing/func.rs +702 -0
  283. data/ext/cargo-vendor/regalloc2-0.9.2/src/index.rs +268 -0
  284. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/data_structures.rs +857 -0
  285. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/liveranges.rs +961 -0
  286. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/merge.rs +368 -0
  287. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/mod.rs +150 -0
  288. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/moves.rs +1017 -0
  289. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/process.rs +1307 -0
  290. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/requirement.rs +174 -0
  291. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/spill.rs +165 -0
  292. data/ext/cargo-vendor/regalloc2-0.9.2/src/ion/stackmap.rs +79 -0
  293. data/ext/cargo-vendor/regalloc2-0.9.2/src/lib.rs +1526 -0
  294. data/ext/cargo-vendor/regalloc2-0.9.2/src/moves.rs +439 -0
  295. data/ext/cargo-vendor/regalloc2-0.9.2/src/serialize.rs +311 -0
  296. data/ext/cargo-vendor/semver-1.0.18/.cargo-checksum.json +1 -0
  297. data/ext/cargo-vendor/semver-1.0.18/Cargo.toml +47 -0
  298. data/ext/cargo-vendor/semver-1.0.18/LICENSE-APACHE +176 -0
  299. data/ext/cargo-vendor/semver-1.0.18/LICENSE-MIT +23 -0
  300. data/ext/cargo-vendor/semver-1.0.18/README.md +84 -0
  301. data/ext/cargo-vendor/semver-1.0.18/benches/parse.rs +24 -0
  302. data/ext/cargo-vendor/semver-1.0.18/build.rs +75 -0
  303. data/ext/cargo-vendor/semver-1.0.18/src/backport.rs +23 -0
  304. data/ext/cargo-vendor/semver-1.0.18/src/display.rs +165 -0
  305. data/ext/cargo-vendor/semver-1.0.18/src/error.rs +126 -0
  306. data/ext/cargo-vendor/semver-1.0.18/src/eval.rs +181 -0
  307. data/ext/cargo-vendor/semver-1.0.18/src/identifier.rs +422 -0
  308. data/ext/cargo-vendor/semver-1.0.18/src/impls.rs +156 -0
  309. data/ext/cargo-vendor/semver-1.0.18/src/lib.rs +533 -0
  310. data/ext/cargo-vendor/semver-1.0.18/src/parse.rs +409 -0
  311. data/ext/cargo-vendor/semver-1.0.18/src/serde.rs +109 -0
  312. data/ext/cargo-vendor/semver-1.0.18/tests/node/mod.rs +43 -0
  313. data/ext/cargo-vendor/semver-1.0.18/tests/test_autotrait.rs +14 -0
  314. data/ext/cargo-vendor/semver-1.0.18/tests/test_identifier.rs +45 -0
  315. data/ext/cargo-vendor/semver-1.0.18/tests/test_version.rs +238 -0
  316. data/ext/cargo-vendor/semver-1.0.18/tests/test_version_req.rs +443 -0
  317. data/ext/cargo-vendor/semver-1.0.18/tests/util/mod.rs +39 -0
  318. data/ext/cargo-vendor/sptr-0.3.2/.cargo-checksum.json +1 -0
  319. data/ext/cargo-vendor/sptr-0.3.2/Cargo.toml +28 -0
  320. data/ext/cargo-vendor/sptr-0.3.2/README.md +73 -0
  321. data/ext/cargo-vendor/sptr-0.3.2/src/func.rs +83 -0
  322. data/ext/cargo-vendor/sptr-0.3.2/src/int.rs +364 -0
  323. data/ext/cargo-vendor/sptr-0.3.2/src/lib.rs +756 -0
  324. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.0/.cargo-checksum.json +1 -0
  325. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.0/Cargo.toml +90 -0
  326. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.0/src/dir.rs +464 -0
  327. data/ext/cargo-vendor/wasi-cap-std-sync-10.0.0/src/lib.rs +141 -0
  328. data/ext/cargo-vendor/wasi-common-10.0.0/.cargo-checksum.json +1 -0
  329. data/ext/cargo-vendor/wasi-common-10.0.0/Cargo.toml +87 -0
  330. data/ext/cargo-vendor/wasi-common-10.0.0/src/ctx.rs +128 -0
  331. data/ext/cargo-vendor/wasi-common-10.0.0/src/file.rs +262 -0
  332. data/ext/cargo-vendor/wasi-common-10.0.0/src/snapshots/preview_1.rs +1490 -0
  333. data/ext/cargo-vendor/wasm-encoder-0.29.0/.cargo-checksum.json +1 -0
  334. data/ext/cargo-vendor/wasm-encoder-0.29.0/Cargo.toml +33 -0
  335. data/ext/cargo-vendor/wasm-encoder-0.29.0/README.md +80 -0
  336. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/aliases.rs +160 -0
  337. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/canonicals.rs +159 -0
  338. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/components.rs +29 -0
  339. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/exports.rs +127 -0
  340. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/imports.rs +200 -0
  341. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/instances.rs +200 -0
  342. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/modules.rs +29 -0
  343. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/names.rs +149 -0
  344. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/start.rs +52 -0
  345. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component/types.rs +759 -0
  346. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/component.rs +160 -0
  347. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/code.rs +2913 -0
  348. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/custom.rs +55 -0
  349. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/data.rs +185 -0
  350. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/dump.rs +627 -0
  351. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/elements.rs +224 -0
  352. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/exports.rs +85 -0
  353. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/functions.rs +63 -0
  354. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/globals.rs +90 -0
  355. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/imports.rs +142 -0
  356. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/linking.rs +263 -0
  357. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/memories.rs +99 -0
  358. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/names.rs +265 -0
  359. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/producers.rs +180 -0
  360. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/start.rs +39 -0
  361. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/tables.rs +104 -0
  362. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/tags.rs +85 -0
  363. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core/types.rs +246 -0
  364. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/core.rs +168 -0
  365. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/lib.rs +215 -0
  366. data/ext/cargo-vendor/wasm-encoder-0.29.0/src/raw.rs +30 -0
  367. data/ext/cargo-vendor/wasmparser-0.107.0/.cargo-checksum.json +1 -0
  368. data/ext/cargo-vendor/wasmparser-0.107.0/Cargo.lock +621 -0
  369. data/ext/cargo-vendor/wasmparser-0.107.0/Cargo.toml +54 -0
  370. data/ext/cargo-vendor/wasmparser-0.107.0/benches/benchmark.rs +351 -0
  371. data/ext/cargo-vendor/wasmparser-0.107.0/src/binary_reader.rs +1706 -0
  372. data/ext/cargo-vendor/wasmparser-0.107.0/src/lib.rs +723 -0
  373. data/ext/cargo-vendor/wasmparser-0.107.0/src/parser.rs +1535 -0
  374. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/canonicals.rs +119 -0
  375. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/exports.rs +117 -0
  376. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/imports.rs +137 -0
  377. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/instances.rs +163 -0
  378. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/component/types.rs +548 -0
  379. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/core/coredumps.rs +243 -0
  380. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/core/producers.rs +83 -0
  381. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/core/types.rs +874 -0
  382. data/ext/cargo-vendor/wasmparser-0.107.0/src/readers/core.rs +35 -0
  383. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/component.rs +3082 -0
  384. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/core.rs +1334 -0
  385. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/names.rs +606 -0
  386. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/operators.rs +3463 -0
  387. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator/types.rs +3070 -0
  388. data/ext/cargo-vendor/wasmparser-0.107.0/src/validator.rs +1589 -0
  389. data/ext/cargo-vendor/wasmparser-0.111.0/.cargo-checksum.json +1 -0
  390. data/ext/cargo-vendor/wasmparser-0.111.0/Cargo.lock +644 -0
  391. data/ext/cargo-vendor/wasmparser-0.111.0/Cargo.toml +54 -0
  392. data/ext/cargo-vendor/wasmparser-0.111.0/README.md +36 -0
  393. data/ext/cargo-vendor/wasmparser-0.111.0/benches/benchmark.rs +349 -0
  394. data/ext/cargo-vendor/wasmparser-0.111.0/examples/simple.rs +37 -0
  395. data/ext/cargo-vendor/wasmparser-0.111.0/src/binary_reader.rs +1706 -0
  396. data/ext/cargo-vendor/wasmparser-0.111.0/src/lib.rs +726 -0
  397. data/ext/cargo-vendor/wasmparser-0.111.0/src/limits.rs +59 -0
  398. data/ext/cargo-vendor/wasmparser-0.111.0/src/parser.rs +1612 -0
  399. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/aliases.rs +119 -0
  400. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/canonicals.rs +120 -0
  401. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/exports.rs +117 -0
  402. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/imports.rs +137 -0
  403. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/instances.rs +163 -0
  404. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/names.rs +102 -0
  405. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/start.rs +30 -0
  406. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component/types.rs +548 -0
  407. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/component.rs +17 -0
  408. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/code.rs +146 -0
  409. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/coredumps.rs +243 -0
  410. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/custom.rs +63 -0
  411. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/data.rs +96 -0
  412. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/dylink0.rs +132 -0
  413. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/elements.rs +152 -0
  414. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/exports.rs +65 -0
  415. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/functions.rs +17 -0
  416. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/globals.rs +49 -0
  417. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/imports.rs +76 -0
  418. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/init.rs +51 -0
  419. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/memories.rs +56 -0
  420. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/names.rs +153 -0
  421. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/operators.rs +354 -0
  422. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/producers.rs +83 -0
  423. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/tables.rs +87 -0
  424. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/tags.rs +32 -0
  425. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core/types.rs +1141 -0
  426. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers/core.rs +37 -0
  427. data/ext/cargo-vendor/wasmparser-0.111.0/src/readers.rs +316 -0
  428. data/ext/cargo-vendor/wasmparser-0.111.0/src/resources.rs +398 -0
  429. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/component.rs +3148 -0
  430. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/core.rs +1314 -0
  431. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/func.rs +348 -0
  432. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/names.rs +606 -0
  433. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/operators.rs +3466 -0
  434. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator/types.rs +3283 -0
  435. data/ext/cargo-vendor/wasmparser-0.111.0/src/validator.rs +1568 -0
  436. data/ext/cargo-vendor/wasmparser-0.111.0/tests/big-module.rs +33 -0
  437. data/ext/cargo-vendor/wasmprinter-0.2.63/.cargo-checksum.json +1 -0
  438. data/ext/cargo-vendor/wasmprinter-0.2.63/Cargo.toml +39 -0
  439. data/ext/cargo-vendor/wasmprinter-0.2.63/README.md +47 -0
  440. data/ext/cargo-vendor/wasmprinter-0.2.63/src/lib.rs +2962 -0
  441. data/ext/cargo-vendor/wasmprinter-0.2.63/src/operator.rs +873 -0
  442. data/ext/cargo-vendor/wasmprinter-0.2.63/tests/all.rs +278 -0
  443. data/ext/cargo-vendor/wasmtime-10.0.0/.cargo-checksum.json +1 -0
  444. data/ext/cargo-vendor/wasmtime-10.0.0/Cargo.toml +183 -0
  445. data/ext/cargo-vendor/wasmtime-10.0.0/src/compiler.rs +710 -0
  446. data/ext/cargo-vendor/wasmtime-10.0.0/src/component/component.rs +382 -0
  447. data/ext/cargo-vendor/wasmtime-10.0.0/src/component/instance.rs +727 -0
  448. data/ext/cargo-vendor/wasmtime-10.0.0/src/component/matching.rs +112 -0
  449. data/ext/cargo-vendor/wasmtime-10.0.0/src/component/mod.rs +313 -0
  450. data/ext/cargo-vendor/wasmtime-10.0.0/src/config.rs +2066 -0
  451. data/ext/cargo-vendor/wasmtime-10.0.0/src/engine/serialization.rs +622 -0
  452. data/ext/cargo-vendor/wasmtime-10.0.0/src/engine.rs +757 -0
  453. data/ext/cargo-vendor/wasmtime-10.0.0/src/externals.rs +763 -0
  454. data/ext/cargo-vendor/wasmtime-10.0.0/src/func/typed.rs +638 -0
  455. data/ext/cargo-vendor/wasmtime-10.0.0/src/func.rs +2355 -0
  456. data/ext/cargo-vendor/wasmtime-10.0.0/src/instance.rs +905 -0
  457. data/ext/cargo-vendor/wasmtime-10.0.0/src/lib.rs +486 -0
  458. data/ext/cargo-vendor/wasmtime-10.0.0/src/linker.rs +1479 -0
  459. data/ext/cargo-vendor/wasmtime-10.0.0/src/memory.rs +950 -0
  460. data/ext/cargo-vendor/wasmtime-10.0.0/src/module.rs +1274 -0
  461. data/ext/cargo-vendor/wasmtime-10.0.0/src/ref.rs +109 -0
  462. data/ext/cargo-vendor/wasmtime-10.0.0/src/store/context.rs +243 -0
  463. data/ext/cargo-vendor/wasmtime-10.0.0/src/store/func_refs.rs +85 -0
  464. data/ext/cargo-vendor/wasmtime-10.0.0/src/store.rs +2166 -0
  465. data/ext/cargo-vendor/wasmtime-10.0.0/src/trampoline/func.rs +133 -0
  466. data/ext/cargo-vendor/wasmtime-10.0.0/src/trampoline/global.rs +67 -0
  467. data/ext/cargo-vendor/wasmtime-10.0.0/src/types/matching.rs +312 -0
  468. data/ext/cargo-vendor/wasmtime-10.0.0/src/types.rs +572 -0
  469. data/ext/cargo-vendor/wasmtime-10.0.0/src/values.rs +290 -0
  470. data/ext/cargo-vendor/wasmtime-asm-macros-10.0.0/.cargo-checksum.json +1 -0
  471. data/ext/cargo-vendor/wasmtime-asm-macros-10.0.0/Cargo.toml +22 -0
  472. data/ext/cargo-vendor/wasmtime-cache-10.0.0/.cargo-checksum.json +1 -0
  473. data/ext/cargo-vendor/wasmtime-cache-10.0.0/Cargo.toml +73 -0
  474. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/.cargo-checksum.json +1 -0
  475. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/Cargo.toml +58 -0
  476. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/src/bindgen.rs +316 -0
  477. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/char.wit +13 -0
  478. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/conventions.wit +39 -0
  479. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/direct-import.wit +5 -0
  480. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/empty.wit +2 -0
  481. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/flags.wit +55 -0
  482. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/floats.wit +13 -0
  483. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/function-new.wit +4 -0
  484. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/integers.wit +40 -0
  485. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/lists.wit +85 -0
  486. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/many-arguments.wit +52 -0
  487. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/multi-return.wit +14 -0
  488. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/records.wit +61 -0
  489. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/rename.wit +16 -0
  490. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/share-types.wit +21 -0
  491. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/simple-functions.wit +17 -0
  492. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/simple-lists.wit +13 -0
  493. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/simple-wasi.wit +23 -0
  494. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/small-anonymous.wit +15 -0
  495. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/smoke-default.wit +5 -0
  496. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/smoke-export.wit +7 -0
  497. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/smoke.wit +7 -0
  498. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/strings.wit +12 -0
  499. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/unions.wit +66 -0
  500. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/use-paths.wit +29 -0
  501. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/variants.wit +147 -0
  502. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen/worlds-with-types.wit +16 -0
  503. data/ext/cargo-vendor/wasmtime-component-macro-10.0.0/tests/codegen.rs +24 -0
  504. data/ext/cargo-vendor/wasmtime-component-util-10.0.0/.cargo-checksum.json +1 -0
  505. data/ext/cargo-vendor/wasmtime-component-util-10.0.0/Cargo.toml +25 -0
  506. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/.cargo-checksum.json +1 -0
  507. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/Cargo.toml +90 -0
  508. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/src/compiler.rs +1200 -0
  509. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/src/debug/transform/simulate.rs +410 -0
  510. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/src/func_environ.rs +2206 -0
  511. data/ext/cargo-vendor/wasmtime-cranelift-10.0.0/src/lib.rs +178 -0
  512. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.0/.cargo-checksum.json +1 -0
  513. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.0/Cargo.toml +57 -0
  514. data/ext/cargo-vendor/wasmtime-cranelift-shared-10.0.0/src/lib.rs +120 -0
  515. data/ext/cargo-vendor/wasmtime-environ-10.0.0/.cargo-checksum.json +1 -0
  516. data/ext/cargo-vendor/wasmtime-environ-10.0.0/Cargo.lock +681 -0
  517. data/ext/cargo-vendor/wasmtime-environ-10.0.0/Cargo.toml +116 -0
  518. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/component/compiler.rs +84 -0
  519. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/component/translate/inline.rs +1067 -0
  520. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/component/translate.rs +1070 -0
  521. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/component/types.rs +1916 -0
  522. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/fact.rs +623 -0
  523. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/module.rs +1083 -0
  524. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/module_environ.rs +884 -0
  525. data/ext/cargo-vendor/wasmtime-environ-10.0.0/src/trap_encoding.rs +238 -0
  526. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/.cargo-checksum.json +1 -0
  527. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/Cargo.toml +46 -0
  528. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/src/lib.rs +305 -0
  529. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/src/unix.rs +212 -0
  530. data/ext/cargo-vendor/wasmtime-fiber-10.0.0/src/windows.rs +161 -0
  531. data/ext/cargo-vendor/wasmtime-jit-10.0.0/.cargo-checksum.json +1 -0
  532. data/ext/cargo-vendor/wasmtime-jit-10.0.0/Cargo.toml +104 -0
  533. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/instantiate.rs +760 -0
  534. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/lib.rs +38 -0
  535. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/profiling/jitdump.rs +66 -0
  536. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/profiling/perfmap.rs +47 -0
  537. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/profiling/vtune.rs +80 -0
  538. data/ext/cargo-vendor/wasmtime-jit-10.0.0/src/profiling.rs +108 -0
  539. data/ext/cargo-vendor/wasmtime-jit-debug-10.0.0/.cargo-checksum.json +1 -0
  540. data/ext/cargo-vendor/wasmtime-jit-debug-10.0.0/Cargo.toml +55 -0
  541. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-10.0.0/.cargo-checksum.json +1 -0
  542. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-10.0.0/Cargo.toml +37 -0
  543. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/.cargo-checksum.json +1 -0
  544. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/Cargo.toml +110 -0
  545. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/component.rs +701 -0
  546. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/cow.rs +1060 -0
  547. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/debug_builtins.rs +58 -0
  548. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/externref.rs +1073 -0
  549. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/instance/allocator/pooling.rs +1368 -0
  550. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/instance/allocator.rs +531 -0
  551. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/instance.rs +1345 -0
  552. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/lib.rs +285 -0
  553. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/libcalls.rs +578 -0
  554. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/memory.rs +958 -0
  555. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/mmap/miri.rs +94 -0
  556. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/mmap/unix.rs +148 -0
  557. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/mmap/windows.rs +208 -0
  558. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/send_sync_ptr.rs +69 -0
  559. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/table.rs +595 -0
  560. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/traphandlers/unix.rs +387 -0
  561. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/traphandlers.rs +749 -0
  562. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/vmcontext/vm_host_func_context.rs +137 -0
  563. data/ext/cargo-vendor/wasmtime-runtime-10.0.0/src/vmcontext.rs +1221 -0
  564. data/ext/cargo-vendor/wasmtime-types-10.0.1/.cargo-checksum.json +1 -0
  565. data/ext/cargo-vendor/wasmtime-types-10.0.1/Cargo.toml +34 -0
  566. data/ext/cargo-vendor/wasmtime-types-10.0.1/src/lib.rs +462 -0
  567. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/.cargo-checksum.json +1 -0
  568. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/Cargo.toml +153 -0
  569. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/lib.rs +130 -0
  570. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/clocks/host.rs +73 -0
  571. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/clocks.rs +17 -0
  572. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/ctx.rs +206 -0
  573. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/error.rs +16 -0
  574. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/filesystem.rs +269 -0
  575. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/mod.rs +44 -0
  576. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/pipe.rs +233 -0
  577. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview1/mod.rs +1860 -0
  578. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/clocks.rs +80 -0
  579. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/env.rs +48 -0
  580. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/exit.rs +12 -0
  581. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/filesystem.rs +1020 -0
  582. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/io.rs +215 -0
  583. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/mod.rs +7 -0
  584. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/poll.rs +84 -0
  585. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/preview2/random.rs +41 -0
  586. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/random.rs +58 -0
  587. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/sched/subscription.rs +104 -0
  588. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/sched/sync.rs +156 -0
  589. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/sched.rs +105 -0
  590. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/stdio.rs +176 -0
  591. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/stream.rs +210 -0
  592. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/table.rs +107 -0
  593. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/wasi/command.rs +43 -0
  594. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/src/preview2/wasi/mod.rs +30 -0
  595. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/clocks/monotonic-clock.wit +34 -0
  596. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/clocks/timezone.wit +63 -0
  597. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/clocks/wall-clock.wit +43 -0
  598. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/filesystem/filesystem.wit +782 -0
  599. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/http/incoming-handler.wit +24 -0
  600. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/http/outgoing-handler.wit +18 -0
  601. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/http/types.wit +159 -0
  602. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/io/streams.wit +215 -0
  603. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/logging/handler.wit +34 -0
  604. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/poll/poll.wit +41 -0
  605. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/preview/command-extended.wit +36 -0
  606. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/preview/command.wit +26 -0
  607. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/preview/proxy.wit +9 -0
  608. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/preview/reactor.wit +24 -0
  609. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/random/insecure-seed.wit +24 -0
  610. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/random/insecure.wit +21 -0
  611. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/random/random.wit +25 -0
  612. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/instance-network.wit +9 -0
  613. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/ip-name-lookup.wit +69 -0
  614. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/network.wit +187 -0
  615. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/tcp-create-socket.wit +27 -0
  616. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/tcp.wit +255 -0
  617. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/udp-create-socket.wit +27 -0
  618. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/sockets/udp.wit +211 -0
  619. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/wasi-cli-base/environment.wit +16 -0
  620. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/wasi-cli-base/exit.wit +4 -0
  621. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/wasi-cli-base/preopens.wit +7 -0
  622. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/deps/wasi-cli-base/stdio.wit +17 -0
  623. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/main.wit +1 -0
  624. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/wit/test.wit +19 -0
  625. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/witx/typenames.witx +750 -0
  626. data/ext/cargo-vendor/wasmtime-wasi-10.0.0/witx/wasi_snapshot_preview1.witx +521 -0
  627. data/ext/cargo-vendor/wasmtime-winch-10.0.0/.cargo-checksum.json +1 -0
  628. data/ext/cargo-vendor/wasmtime-winch-10.0.0/Cargo.toml +63 -0
  629. data/ext/cargo-vendor/wasmtime-winch-10.0.0/src/compiler.rs +220 -0
  630. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.0/.cargo-checksum.json +1 -0
  631. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.0/Cargo.toml +29 -0
  632. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.0/src/lib.rs +1631 -0
  633. data/ext/cargo-vendor/wasmtime-wit-bindgen-10.0.0/src/types.rs +179 -0
  634. data/ext/cargo-vendor/wiggle-10.0.0/.cargo-checksum.json +1 -0
  635. data/ext/cargo-vendor/wiggle-10.0.0/Cargo.toml +106 -0
  636. data/ext/cargo-vendor/wiggle-10.0.0/LICENSE +220 -0
  637. data/ext/cargo-vendor/wiggle-10.0.0/README.md +18 -0
  638. data/ext/cargo-vendor/wiggle-generate-10.0.0/.cargo-checksum.json +1 -0
  639. data/ext/cargo-vendor/wiggle-generate-10.0.0/Cargo.toml +58 -0
  640. data/ext/cargo-vendor/wiggle-generate-10.0.0/LICENSE +220 -0
  641. data/ext/cargo-vendor/wiggle-macro-10.0.0/.cargo-checksum.json +1 -0
  642. data/ext/cargo-vendor/wiggle-macro-10.0.0/Cargo.toml +55 -0
  643. data/ext/cargo-vendor/wiggle-macro-10.0.0/LICENSE +220 -0
  644. data/ext/cargo-vendor/wiggle-macro-10.0.0/src/lib.rs +210 -0
  645. data/ext/cargo-vendor/winch-codegen-0.8.0/.cargo-checksum.json +1 -0
  646. data/ext/cargo-vendor/winch-codegen-0.8.0/Cargo.toml +62 -0
  647. data/ext/cargo-vendor/winch-codegen-0.8.0/src/abi/local.rs +70 -0
  648. data/ext/cargo-vendor/winch-codegen-0.8.0/src/abi/mod.rs +237 -0
  649. data/ext/cargo-vendor/winch-codegen-0.8.0/src/codegen/call.rs +225 -0
  650. data/ext/cargo-vendor/winch-codegen-0.8.0/src/codegen/context.rs +270 -0
  651. data/ext/cargo-vendor/winch-codegen-0.8.0/src/codegen/env.rs +52 -0
  652. data/ext/cargo-vendor/winch-codegen-0.8.0/src/codegen/mod.rs +214 -0
  653. data/ext/cargo-vendor/winch-codegen-0.8.0/src/frame/mod.rs +172 -0
  654. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/abi.rs +243 -0
  655. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/asm.rs +300 -0
  656. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/masm.rs +230 -0
  657. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/mod.rs +127 -0
  658. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/aarch64/regs.rs +166 -0
  659. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/mod.rs +215 -0
  660. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/abi.rs +369 -0
  661. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/address.rs +17 -0
  662. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/asm.rs +576 -0
  663. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/masm.rs +288 -0
  664. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/mod.rs +149 -0
  665. data/ext/cargo-vendor/winch-codegen-0.8.0/src/isa/x64/regs.rs +192 -0
  666. data/ext/cargo-vendor/winch-codegen-0.8.0/src/lib.rs +21 -0
  667. data/ext/cargo-vendor/winch-codegen-0.8.0/src/masm.rs +255 -0
  668. data/ext/cargo-vendor/winch-codegen-0.8.0/src/regalloc.rs +70 -0
  669. data/ext/cargo-vendor/winch-codegen-0.8.0/src/stack.rs +235 -0
  670. data/ext/cargo-vendor/winch-codegen-0.8.0/src/trampoline.rs +494 -0
  671. data/ext/cargo-vendor/winch-codegen-0.8.0/src/visitor.rs +353 -0
  672. data/ext/cargo-vendor/wit-parser-0.8.0/.cargo-checksum.json +1 -0
  673. data/ext/cargo-vendor/wit-parser-0.8.0/Cargo.toml +62 -0
  674. data/ext/cargo-vendor/wit-parser-0.8.0/src/ast/lex.rs +679 -0
  675. data/ext/cargo-vendor/wit-parser-0.8.0/src/ast/resolve.rs +1122 -0
  676. data/ext/cargo-vendor/wit-parser-0.8.0/src/ast.rs +1207 -0
  677. data/ext/cargo-vendor/wit-parser-0.8.0/src/lib.rs +622 -0
  678. data/ext/cargo-vendor/wit-parser-0.8.0/src/live.rs +111 -0
  679. data/ext/cargo-vendor/wit-parser-0.8.0/src/resolve.rs +1307 -0
  680. data/ext/cargo-vendor/wit-parser-0.8.0/tests/all.rs +168 -0
  681. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/comments.wit +25 -0
  682. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/diamond1/deps/dep1/types.wit +2 -0
  683. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/diamond1/deps/dep2/types.wit +2 -0
  684. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/diamond1/join.wit +6 -0
  685. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/disambiguate-diamond/shared1.wit +3 -0
  686. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/disambiguate-diamond/shared2.wit +3 -0
  687. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/disambiguate-diamond/world.wit +13 -0
  688. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/embedded.wit.md +34 -0
  689. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/empty.wit +1 -0
  690. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +3 -0
  691. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/corp/saas.wit +4 -0
  692. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +2 -0
  693. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +5 -0
  694. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +13 -0
  695. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/wasi/clocks.wit +5 -0
  696. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/deps/wasi/filesystem.wit +7 -0
  697. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/foreign-deps/root.wit +44 -0
  698. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/functions.wit +14 -0
  699. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/many-names/a.wit +2 -0
  700. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/many-names/b.wit +5 -0
  701. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/multi-file/bar.wit +21 -0
  702. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/multi-file/cycle-a.wit +7 -0
  703. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/multi-file/cycle-b.wit +3 -0
  704. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/multi-file/foo.wit +31 -0
  705. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/package-syntax1.wit +1 -0
  706. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/package-syntax3.wit +1 -0
  707. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/package-syntax4.wit +1 -0
  708. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/alias-no-type.wit.result +1 -0
  709. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-function.wit +7 -0
  710. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-function.wit.result +5 -0
  711. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-function2.wit +7 -0
  712. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-function2.wit.result +5 -0
  713. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg1/root.wit +5 -0
  714. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg1.wit.result +8 -0
  715. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +1 -0
  716. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg2/root.wit +5 -0
  717. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg2.wit.result +5 -0
  718. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +2 -0
  719. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg3/root.wit +5 -0
  720. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg3.wit.result +5 -0
  721. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +4 -0
  722. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg4/root.wit +4 -0
  723. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg4.wit.result +5 -0
  724. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +3 -0
  725. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg5/root.wit +4 -0
  726. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg5.wit.result +5 -0
  727. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +4 -0
  728. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg6/root.wit +4 -0
  729. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-pkg6.wit.result +5 -0
  730. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-world-type1.wit +5 -0
  731. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/bad-world-type1.wit.result +5 -0
  732. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/conflicting-package/a.wit +1 -0
  733. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/conflicting-package/b.wit +1 -0
  734. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/conflicting-package.wit.result +8 -0
  735. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle.wit +6 -0
  736. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle.wit.result +5 -0
  737. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle2.wit +7 -0
  738. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle2.wit.result +5 -0
  739. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle3.wit +7 -0
  740. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle3.wit.result +5 -0
  741. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle4.wit +7 -0
  742. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle4.wit.result +5 -0
  743. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle5.wit +7 -0
  744. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/cycle5.wit.result +5 -0
  745. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-functions.wit +8 -0
  746. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-functions.wit.result +5 -0
  747. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface.wit +6 -0
  748. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface.wit.result +5 -0
  749. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface2/foo.wit +3 -0
  750. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface2/foo2.wit +3 -0
  751. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-interface2.wit.result +8 -0
  752. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-type.wit +7 -0
  753. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/duplicate-type.wit.result +5 -0
  754. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-enum.wit +6 -0
  755. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-enum.wit.result +5 -0
  756. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-union.wit +6 -0
  757. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-union.wit.result +5 -0
  758. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-variant1.wit +6 -0
  759. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/empty-variant1.wit.result +5 -0
  760. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/export-twice.wit +8 -0
  761. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/export-twice.wit.result +5 -0
  762. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-export-overlap1.wit +5 -0
  763. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-export-overlap1.wit.result +5 -0
  764. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-export-overlap2.wit +5 -0
  765. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-export-overlap2.wit.result +5 -0
  766. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-twice.wit +8 -0
  767. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/import-twice.wit.result +5 -0
  768. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-md.wit.result +5 -0
  769. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-type-reference.wit +10 -0
  770. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-type-reference.wit.result +5 -0
  771. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-type-reference2.wit +6 -0
  772. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/invalid-type-reference2.wit.result +5 -0
  773. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/missing-package.wit.result +1 -0
  774. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +1 -0
  775. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +5 -0
  776. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +8 -0
  777. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +4 -0
  778. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle/root.wit +4 -0
  779. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle.wit.result +5 -0
  780. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +4 -0
  781. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +4 -0
  782. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle2/root.wit +4 -0
  783. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/pkg-cycle2.wit.result +5 -0
  784. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/undefined-typed.wit +6 -0
  785. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/undefined-typed.wit.result +5 -0
  786. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unknown-interface.wit +7 -0
  787. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unknown-interface.wit.result +5 -0
  788. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface1.wit +7 -0
  789. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface1.wit.result +5 -0
  790. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface2.wit +8 -0
  791. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface2.wit.result +5 -0
  792. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface3.wit +5 -0
  793. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface3.wit.result +5 -0
  794. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface4.wit +7 -0
  795. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-interface4.wit.result +5 -0
  796. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use1.wit +7 -0
  797. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use1.wit.result +5 -0
  798. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use10/bar.wit +5 -0
  799. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use10.wit.result +8 -0
  800. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use2.wit +10 -0
  801. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use2.wit.result +5 -0
  802. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use3.wit +11 -0
  803. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use3.wit.result +5 -0
  804. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use7.wit +10 -0
  805. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use7.wit.result +5 -0
  806. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use8.wit +9 -0
  807. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use8.wit.result +5 -0
  808. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use9.wit +9 -0
  809. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/unresolved-use9.wit.result +5 -0
  810. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict.wit +11 -0
  811. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict.wit.result +5 -0
  812. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict2.wit +13 -0
  813. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict2.wit.result +5 -0
  814. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict3.wit +13 -0
  815. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-conflict3.wit.result +5 -0
  816. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-cycle1.wit +7 -0
  817. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-cycle1.wit.result +5 -0
  818. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-cycle4.wit +14 -0
  819. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-cycle4.wit.result +5 -0
  820. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-shadow1.wit +7 -0
  821. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/use-shadow1.wit.result +5 -0
  822. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-interface-clash.wit +3 -0
  823. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-interface-clash.wit.result +5 -0
  824. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-same-fields2.wit +8 -0
  825. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-same-fields2.wit.result +5 -0
  826. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-same-fields3.wit +8 -0
  827. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-same-fields3.wit.result +5 -0
  828. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-top-level-func.wit +5 -0
  829. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-top-level-func.wit.result +5 -0
  830. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-top-level-func2.wit +4 -0
  831. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/parse-fail/world-top-level-func2.wit.result +5 -0
  832. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/shared-types.wit +10 -0
  833. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/type-then-eof.wit +5 -0
  834. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/types.wit +61 -0
  835. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/use-chain.wit +11 -0
  836. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/use.wit +34 -0
  837. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/versions/deps/a1/foo.wit +5 -0
  838. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/versions/deps/a2/foo.wit +5 -0
  839. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/versions/foo.wit +7 -0
  840. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/wasi.wit +178 -0
  841. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-diamond.wit +22 -0
  842. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-iface-no-collide.wit +11 -0
  843. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-implicit-import1.wit +12 -0
  844. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-implicit-import2.wit +11 -0
  845. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-implicit-import3.wit +11 -0
  846. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-same-fields4.wit +13 -0
  847. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/world-top-level-funcs.wit +9 -0
  848. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/worlds-same-fields5.wit +17 -0
  849. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/worlds-with-types.wit +34 -0
  850. data/ext/cargo-vendor/wit-parser-0.8.0/tests/ui/worlds.wit +37 -0
  851. data/ext/src/ruby_api/global.rs +3 -3
  852. data/ext/src/ruby_api/memory/unsafe_slice.rs +9 -3
  853. data/ext/src/ruby_api/params.rs +14 -12
  854. data/ext/src/ruby_api/table.rs +1 -1
  855. data/lib/wasmtime/version.rb +1 -1
  856. metadata +1418 -1079
  857. data/ext/cargo-vendor/cranelift-bforest-0.96.4/.cargo-checksum.json +0 -1
  858. data/ext/cargo-vendor/cranelift-bforest-0.96.4/Cargo.toml +0 -31
  859. data/ext/cargo-vendor/cranelift-codegen-0.96.4/.cargo-checksum.json +0 -1
  860. data/ext/cargo-vendor/cranelift-codegen-0.96.4/Cargo.toml +0 -159
  861. data/ext/cargo-vendor/cranelift-codegen-0.96.4/benches/x64-evex-encoding.rs +0 -53
  862. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/ir/trapcode.rs +0 -138
  863. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/abi.rs +0 -1281
  864. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst/emit.rs +0 -3658
  865. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst/emit_tests.rs +0 -7868
  866. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst/imms.rs +0 -1215
  867. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst/mod.rs +0 -2945
  868. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/inst.isle +0 -4035
  869. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/lower/isle.rs +0 -813
  870. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/lower.isle +0 -2906
  871. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/aarch64/mod.rs +0 -240
  872. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/mod.rs +0 -420
  873. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/abi.rs +0 -726
  874. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/args.rs +0 -1822
  875. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/emit.rs +0 -2914
  876. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/emit_tests.rs +0 -2317
  877. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/encode.rs +0 -188
  878. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/imms.rs +0 -244
  879. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/mod.rs +0 -1823
  880. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/regs.rs +0 -231
  881. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/unwind/systemv.rs +0 -177
  882. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst/vector.rs +0 -354
  883. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst.isle +0 -2746
  884. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/inst_vector.isle +0 -224
  885. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/lower/isle.rs +0 -544
  886. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/lower.isle +0 -1012
  887. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/riscv64/mod.rs +0 -219
  888. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/abi.rs +0 -947
  889. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/inst/emit.rs +0 -3697
  890. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/inst/emit_tests.rs +0 -13397
  891. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/inst/mod.rs +0 -3409
  892. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/inst.isle +0 -5045
  893. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/lower.isle +0 -3991
  894. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/s390x/mod.rs +0 -215
  895. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/abi.rs +0 -978
  896. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/encoding/evex.rs +0 -403
  897. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/encoding/rex.rs +0 -565
  898. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/encoding/vex.rs +0 -498
  899. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst/args.rs +0 -2168
  900. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst/emit.rs +0 -3938
  901. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst/emit_tests.rs +0 -5669
  902. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst/mod.rs +0 -2763
  903. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/inst.isle +0 -5186
  904. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/lower/isle.rs +0 -1158
  905. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/lower.isle +0 -4262
  906. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/lower.rs +0 -328
  907. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isa/x64/mod.rs +0 -250
  908. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/isle_prelude.rs +0 -818
  909. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/abi.rs +0 -2410
  910. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/buffer.rs +0 -2219
  911. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/compile.rs +0 -92
  912. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/isle.rs +0 -827
  913. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/lower.rs +0 -1366
  914. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/mod.rs +0 -538
  915. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/reg.rs +0 -532
  916. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/machinst/vcode.rs +0 -1571
  917. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/prelude.isle +0 -552
  918. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/prelude_lower.isle +0 -1012
  919. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/settings.rs +0 -599
  920. data/ext/cargo-vendor/cranelift-codegen-0.96.4/src/verifier/mod.rs +0 -1881
  921. data/ext/cargo-vendor/cranelift-codegen-meta-0.96.4/.cargo-checksum.json +0 -1
  922. data/ext/cargo-vendor/cranelift-codegen-meta-0.96.4/Cargo.toml +0 -23
  923. data/ext/cargo-vendor/cranelift-codegen-meta-0.96.4/src/isa/x86.rs +0 -445
  924. data/ext/cargo-vendor/cranelift-codegen-meta-0.96.4/src/shared/settings.rs +0 -331
  925. data/ext/cargo-vendor/cranelift-codegen-shared-0.96.4/.cargo-checksum.json +0 -1
  926. data/ext/cargo-vendor/cranelift-codegen-shared-0.96.4/Cargo.toml +0 -22
  927. data/ext/cargo-vendor/cranelift-control-0.96.4/.cargo-checksum.json +0 -1
  928. data/ext/cargo-vendor/cranelift-control-0.96.4/Cargo.toml +0 -30
  929. data/ext/cargo-vendor/cranelift-control-0.96.4/src/chaos.rs +0 -78
  930. data/ext/cargo-vendor/cranelift-control-0.96.4/src/lib.rs +0 -30
  931. data/ext/cargo-vendor/cranelift-control-0.96.4/src/zero_sized.rs +0 -42
  932. data/ext/cargo-vendor/cranelift-entity-0.96.4/.cargo-checksum.json +0 -1
  933. data/ext/cargo-vendor/cranelift-entity-0.96.4/Cargo.toml +0 -35
  934. data/ext/cargo-vendor/cranelift-entity-0.96.4/src/list.rs +0 -868
  935. data/ext/cargo-vendor/cranelift-frontend-0.96.4/.cargo-checksum.json +0 -1
  936. data/ext/cargo-vendor/cranelift-frontend-0.96.4/Cargo.toml +0 -53
  937. data/ext/cargo-vendor/cranelift-isle-0.96.4/.cargo-checksum.json +0 -1
  938. data/ext/cargo-vendor/cranelift-isle-0.96.4/Cargo.toml +0 -37
  939. data/ext/cargo-vendor/cranelift-native-0.96.4/.cargo-checksum.json +0 -1
  940. data/ext/cargo-vendor/cranelift-native-0.96.4/Cargo.toml +0 -38
  941. data/ext/cargo-vendor/cranelift-native-0.96.4/src/lib.rs +0 -216
  942. data/ext/cargo-vendor/cranelift-wasm-0.96.4/.cargo-checksum.json +0 -1
  943. data/ext/cargo-vendor/cranelift-wasm-0.96.4/Cargo.toml +0 -85
  944. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/code_translator.rs +0 -3479
  945. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/environ/dummy.rs +0 -901
  946. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/environ/spec.rs +0 -807
  947. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/func_translator.rs +0 -419
  948. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/sections_translator.rs +0 -429
  949. data/ext/cargo-vendor/cranelift-wasm-0.96.4/src/translation_utils.rs +0 -108
  950. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/.cargo-checksum.json +0 -1
  951. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/Cargo.toml +0 -36
  952. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/run-tests.sh +0 -11
  953. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/src/lib.rs +0 -162
  954. data/ext/cargo-vendor/file-per-thread-logger-0.1.6/tests/test.rs +0 -267
  955. data/ext/cargo-vendor/regalloc2-0.8.1/.cargo-checksum.json +0 -1
  956. data/ext/cargo-vendor/regalloc2-0.8.1/Cargo.toml +0 -72
  957. data/ext/cargo-vendor/regalloc2-0.8.1/deny.toml +0 -28
  958. data/ext/cargo-vendor/regalloc2-0.8.1/src/checker.rs +0 -1089
  959. data/ext/cargo-vendor/regalloc2-0.8.1/src/fuzzing/func.rs +0 -673
  960. data/ext/cargo-vendor/regalloc2-0.8.1/src/index.rs +0 -188
  961. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/data_structures.rs +0 -688
  962. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/liveranges.rs +0 -1012
  963. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/merge.rs +0 -394
  964. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/mod.rs +0 -152
  965. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/moves.rs +0 -985
  966. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/process.rs +0 -1322
  967. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/requirement.rs +0 -174
  968. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/spill.rs +0 -198
  969. data/ext/cargo-vendor/regalloc2-0.8.1/src/ion/stackmap.rs +0 -74
  970. data/ext/cargo-vendor/regalloc2-0.8.1/src/lib.rs +0 -1523
  971. data/ext/cargo-vendor/regalloc2-0.8.1/src/moves.rs +0 -438
  972. data/ext/cargo-vendor/wasi-cap-std-sync-9.0.4/.cargo-checksum.json +0 -1
  973. data/ext/cargo-vendor/wasi-cap-std-sync-9.0.4/Cargo.toml +0 -89
  974. data/ext/cargo-vendor/wasi-cap-std-sync-9.0.4/src/dir.rs +0 -465
  975. data/ext/cargo-vendor/wasi-cap-std-sync-9.0.4/src/lib.rs +0 -140
  976. data/ext/cargo-vendor/wasi-common-9.0.4/.cargo-checksum.json +0 -1
  977. data/ext/cargo-vendor/wasi-common-9.0.4/Cargo.toml +0 -86
  978. data/ext/cargo-vendor/wasi-common-9.0.4/src/ctx.rs +0 -127
  979. data/ext/cargo-vendor/wasi-common-9.0.4/src/file.rs +0 -260
  980. data/ext/cargo-vendor/wasi-common-9.0.4/src/snapshots/preview_1.rs +0 -1490
  981. data/ext/cargo-vendor/wasmparser-0.103.0/.cargo-checksum.json +0 -1
  982. data/ext/cargo-vendor/wasmparser-0.103.0/Cargo.lock +0 -692
  983. data/ext/cargo-vendor/wasmparser-0.103.0/Cargo.toml +0 -54
  984. data/ext/cargo-vendor/wasmparser-0.103.0/benches/benchmark.rs +0 -350
  985. data/ext/cargo-vendor/wasmparser-0.103.0/src/binary_reader.rs +0 -1682
  986. data/ext/cargo-vendor/wasmparser-0.103.0/src/lib.rs +0 -712
  987. data/ext/cargo-vendor/wasmparser-0.103.0/src/parser.rs +0 -1496
  988. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/canonicals.rs +0 -95
  989. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/exports.rs +0 -105
  990. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/imports.rs +0 -109
  991. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/instances.rs +0 -164
  992. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/component/types.rs +0 -508
  993. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/core/producers.rs +0 -78
  994. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/core/types.rs +0 -511
  995. data/ext/cargo-vendor/wasmparser-0.103.0/src/readers/core.rs +0 -33
  996. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator/component.rs +0 -2097
  997. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator/core.rs +0 -1278
  998. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator/operators.rs +0 -3456
  999. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator/types.rs +0 -2159
  1000. data/ext/cargo-vendor/wasmparser-0.103.0/src/validator.rs +0 -1514
  1001. data/ext/cargo-vendor/wasmtime-9.0.4/.cargo-checksum.json +0 -1
  1002. data/ext/cargo-vendor/wasmtime-9.0.4/Cargo.toml +0 -183
  1003. data/ext/cargo-vendor/wasmtime-9.0.4/build.rs +0 -20
  1004. data/ext/cargo-vendor/wasmtime-9.0.4/src/component/component.rs +0 -519
  1005. data/ext/cargo-vendor/wasmtime-9.0.4/src/component/instance.rs +0 -728
  1006. data/ext/cargo-vendor/wasmtime-9.0.4/src/component/matching.rs +0 -112
  1007. data/ext/cargo-vendor/wasmtime-9.0.4/src/component/mod.rs +0 -313
  1008. data/ext/cargo-vendor/wasmtime-9.0.4/src/config.rs +0 -2036
  1009. data/ext/cargo-vendor/wasmtime-9.0.4/src/engine/serialization.rs +0 -613
  1010. data/ext/cargo-vendor/wasmtime-9.0.4/src/engine.rs +0 -729
  1011. data/ext/cargo-vendor/wasmtime-9.0.4/src/externals.rs +0 -762
  1012. data/ext/cargo-vendor/wasmtime-9.0.4/src/func/typed.rs +0 -638
  1013. data/ext/cargo-vendor/wasmtime-9.0.4/src/func.rs +0 -2385
  1014. data/ext/cargo-vendor/wasmtime-9.0.4/src/instance.rs +0 -905
  1015. data/ext/cargo-vendor/wasmtime-9.0.4/src/lib.rs +0 -481
  1016. data/ext/cargo-vendor/wasmtime-9.0.4/src/linker.rs +0 -1479
  1017. data/ext/cargo-vendor/wasmtime-9.0.4/src/memory.rs +0 -948
  1018. data/ext/cargo-vendor/wasmtime-9.0.4/src/module.rs +0 -1542
  1019. data/ext/cargo-vendor/wasmtime-9.0.4/src/ref.rs +0 -108
  1020. data/ext/cargo-vendor/wasmtime-9.0.4/src/store/context.rs +0 -243
  1021. data/ext/cargo-vendor/wasmtime-9.0.4/src/store/func_refs.rs +0 -110
  1022. data/ext/cargo-vendor/wasmtime-9.0.4/src/store.rs +0 -2059
  1023. data/ext/cargo-vendor/wasmtime-9.0.4/src/trampoline/func.rs +0 -171
  1024. data/ext/cargo-vendor/wasmtime-9.0.4/src/trampoline/global.rs +0 -71
  1025. data/ext/cargo-vendor/wasmtime-9.0.4/src/types/matching.rs +0 -254
  1026. data/ext/cargo-vendor/wasmtime-9.0.4/src/types.rs +0 -551
  1027. data/ext/cargo-vendor/wasmtime-9.0.4/src/values.rs +0 -290
  1028. data/ext/cargo-vendor/wasmtime-asm-macros-9.0.4/.cargo-checksum.json +0 -1
  1029. data/ext/cargo-vendor/wasmtime-asm-macros-9.0.4/Cargo.toml +0 -22
  1030. data/ext/cargo-vendor/wasmtime-cache-9.0.4/.cargo-checksum.json +0 -1
  1031. data/ext/cargo-vendor/wasmtime-cache-9.0.4/Cargo.toml +0 -73
  1032. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/.cargo-checksum.json +0 -1
  1033. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/Cargo.toml +0 -58
  1034. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/src/bindgen.rs +0 -316
  1035. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/char.wit +0 -11
  1036. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/conventions.wit +0 -38
  1037. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/direct-import.wit +0 -3
  1038. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/empty.wit +0 -1
  1039. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/flags.wit +0 -53
  1040. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/floats.wit +0 -11
  1041. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/function-new.wit +0 -3
  1042. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/integers.wit +0 -38
  1043. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/lists.wit +0 -83
  1044. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/many-arguments.wit +0 -50
  1045. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/multi-return.wit +0 -12
  1046. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/records.wit +0 -59
  1047. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/rename.wit +0 -14
  1048. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/share-types.wit +0 -19
  1049. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/simple-functions.wit +0 -15
  1050. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/simple-lists.wit +0 -11
  1051. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/simple-wasi.wit +0 -21
  1052. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/small-anonymous.wit +0 -13
  1053. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/smoke-default.wit +0 -3
  1054. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/smoke-export.wit +0 -5
  1055. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/smoke.wit +0 -5
  1056. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/strings.wit +0 -10
  1057. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/unions.wit +0 -64
  1058. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/use-paths.wit +0 -27
  1059. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/variants.wit +0 -145
  1060. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen/worlds-with-types.wit +0 -14
  1061. data/ext/cargo-vendor/wasmtime-component-macro-9.0.4/tests/codegen.rs +0 -30
  1062. data/ext/cargo-vendor/wasmtime-component-util-9.0.4/.cargo-checksum.json +0 -1
  1063. data/ext/cargo-vendor/wasmtime-component-util-9.0.4/Cargo.toml +0 -25
  1064. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/.cargo-checksum.json +0 -1
  1065. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/Cargo.toml +0 -90
  1066. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/src/compiler.rs +0 -1200
  1067. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/src/debug/transform/simulate.rs +0 -411
  1068. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/src/func_environ.rs +0 -2162
  1069. data/ext/cargo-vendor/wasmtime-cranelift-9.0.4/src/lib.rs +0 -177
  1070. data/ext/cargo-vendor/wasmtime-cranelift-shared-9.0.4/.cargo-checksum.json +0 -1
  1071. data/ext/cargo-vendor/wasmtime-cranelift-shared-9.0.4/Cargo.toml +0 -57
  1072. data/ext/cargo-vendor/wasmtime-cranelift-shared-9.0.4/src/lib.rs +0 -119
  1073. data/ext/cargo-vendor/wasmtime-environ-9.0.4/.cargo-checksum.json +0 -1
  1074. data/ext/cargo-vendor/wasmtime-environ-9.0.4/Cargo.lock +0 -735
  1075. data/ext/cargo-vendor/wasmtime-environ-9.0.4/Cargo.toml +0 -116
  1076. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/component/compiler.rs +0 -84
  1077. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/component/translate/inline.rs +0 -1064
  1078. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/component/translate.rs +0 -1066
  1079. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/component/types.rs +0 -1903
  1080. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/fact.rs +0 -622
  1081. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/module.rs +0 -1043
  1082. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/module_environ.rs +0 -841
  1083. data/ext/cargo-vendor/wasmtime-environ-9.0.4/src/trap_encoding.rs +0 -234
  1084. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/.cargo-checksum.json +0 -1
  1085. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/Cargo.toml +0 -46
  1086. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/src/lib.rs +0 -293
  1087. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/src/unix.rs +0 -199
  1088. data/ext/cargo-vendor/wasmtime-fiber-9.0.4/src/windows.rs +0 -156
  1089. data/ext/cargo-vendor/wasmtime-jit-9.0.4/.cargo-checksum.json +0 -1
  1090. data/ext/cargo-vendor/wasmtime-jit-9.0.4/Cargo.toml +0 -100
  1091. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/instantiate.rs +0 -786
  1092. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/lib.rs +0 -39
  1093. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/jitdump_disabled.rs +0 -32
  1094. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/jitdump_linux.rs +0 -444
  1095. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/perfmap_disabled.rs +0 -28
  1096. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/perfmap_linux.rs +0 -104
  1097. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/vtune.rs +0 -147
  1098. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling/vtune_disabled.rs +0 -32
  1099. data/ext/cargo-vendor/wasmtime-jit-9.0.4/src/profiling.rs +0 -74
  1100. data/ext/cargo-vendor/wasmtime-jit-debug-9.0.4/.cargo-checksum.json +0 -1
  1101. data/ext/cargo-vendor/wasmtime-jit-debug-9.0.4/Cargo.toml +0 -55
  1102. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-9.0.4/.cargo-checksum.json +0 -1
  1103. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-9.0.4/Cargo.toml +0 -37
  1104. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/.cargo-checksum.json +0 -1
  1105. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/Cargo.toml +0 -107
  1106. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/component.rs +0 -724
  1107. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/cow.rs +0 -1063
  1108. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/debug_builtins.rs +0 -56
  1109. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/externref.rs +0 -1078
  1110. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/instance/allocator/pooling.rs +0 -1371
  1111. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/instance/allocator.rs +0 -528
  1112. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/instance.rs +0 -1267
  1113. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/lib.rs +0 -286
  1114. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/libcalls.rs +0 -597
  1115. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/memory.rs +0 -945
  1116. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/mmap/miri.rs +0 -93
  1117. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/mmap/unix.rs +0 -147
  1118. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/mmap/windows.rs +0 -207
  1119. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/table.rs +0 -573
  1120. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/traphandlers/unix.rs +0 -387
  1121. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/traphandlers.rs +0 -664
  1122. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/vmcontext/vm_host_func_context.rs +0 -147
  1123. data/ext/cargo-vendor/wasmtime-runtime-9.0.4/src/vmcontext.rs +0 -1244
  1124. data/ext/cargo-vendor/wasmtime-types-9.0.4/.cargo-checksum.json +0 -1
  1125. data/ext/cargo-vendor/wasmtime-types-9.0.4/Cargo.toml +0 -34
  1126. data/ext/cargo-vendor/wasmtime-types-9.0.4/src/lib.rs +0 -413
  1127. data/ext/cargo-vendor/wasmtime-wasi-9.0.4/.cargo-checksum.json +0 -1
  1128. data/ext/cargo-vendor/wasmtime-wasi-9.0.4/Cargo.toml +0 -67
  1129. data/ext/cargo-vendor/wasmtime-wasi-9.0.4/src/lib.rs +0 -128
  1130. data/ext/cargo-vendor/wasmtime-winch-9.0.4/.cargo-checksum.json +0 -1
  1131. data/ext/cargo-vendor/wasmtime-winch-9.0.4/Cargo.toml +0 -66
  1132. data/ext/cargo-vendor/wasmtime-winch-9.0.4/src/compiler.rs +0 -191
  1133. data/ext/cargo-vendor/wasmtime-wit-bindgen-9.0.4/.cargo-checksum.json +0 -1
  1134. data/ext/cargo-vendor/wasmtime-wit-bindgen-9.0.4/Cargo.toml +0 -29
  1135. data/ext/cargo-vendor/wasmtime-wit-bindgen-9.0.4/src/lib.rs +0 -1488
  1136. data/ext/cargo-vendor/wasmtime-wit-bindgen-9.0.4/src/types.rs +0 -178
  1137. data/ext/cargo-vendor/wiggle-9.0.4/.cargo-checksum.json +0 -1
  1138. data/ext/cargo-vendor/wiggle-9.0.4/Cargo.toml +0 -106
  1139. data/ext/cargo-vendor/wiggle-9.0.4/README.md +0 -18
  1140. data/ext/cargo-vendor/wiggle-generate-9.0.4/.cargo-checksum.json +0 -1
  1141. data/ext/cargo-vendor/wiggle-generate-9.0.4/Cargo.toml +0 -58
  1142. data/ext/cargo-vendor/wiggle-macro-9.0.4/.cargo-checksum.json +0 -1
  1143. data/ext/cargo-vendor/wiggle-macro-9.0.4/Cargo.toml +0 -55
  1144. data/ext/cargo-vendor/wiggle-macro-9.0.4/src/lib.rs +0 -210
  1145. data/ext/cargo-vendor/winch-codegen-0.7.4/.cargo-checksum.json +0 -1
  1146. data/ext/cargo-vendor/winch-codegen-0.7.4/Cargo.toml +0 -59
  1147. data/ext/cargo-vendor/winch-codegen-0.7.4/src/abi/local.rs +0 -69
  1148. data/ext/cargo-vendor/winch-codegen-0.7.4/src/abi/mod.rs +0 -223
  1149. data/ext/cargo-vendor/winch-codegen-0.7.4/src/codegen/call.rs +0 -215
  1150. data/ext/cargo-vendor/winch-codegen-0.7.4/src/codegen/context.rs +0 -259
  1151. data/ext/cargo-vendor/winch-codegen-0.7.4/src/codegen/env.rs +0 -19
  1152. data/ext/cargo-vendor/winch-codegen-0.7.4/src/codegen/mod.rs +0 -183
  1153. data/ext/cargo-vendor/winch-codegen-0.7.4/src/frame/mod.rs +0 -166
  1154. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/abi.rs +0 -221
  1155. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/asm.rs +0 -244
  1156. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/masm.rs +0 -221
  1157. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/mod.rs +0 -122
  1158. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/aarch64/regs.rs +0 -160
  1159. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/mod.rs +0 -202
  1160. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/abi.rs +0 -337
  1161. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/address.rs +0 -17
  1162. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/asm.rs +0 -499
  1163. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/masm.rs +0 -267
  1164. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/mod.rs +0 -135
  1165. data/ext/cargo-vendor/winch-codegen-0.7.4/src/isa/x64/regs.rs +0 -178
  1166. data/ext/cargo-vendor/winch-codegen-0.7.4/src/lib.rs +0 -20
  1167. data/ext/cargo-vendor/winch-codegen-0.7.4/src/masm.rs +0 -213
  1168. data/ext/cargo-vendor/winch-codegen-0.7.4/src/regalloc.rs +0 -61
  1169. data/ext/cargo-vendor/winch-codegen-0.7.4/src/stack.rs +0 -230
  1170. data/ext/cargo-vendor/winch-codegen-0.7.4/src/trampoline.rs +0 -206
  1171. data/ext/cargo-vendor/winch-codegen-0.7.4/src/visitor.rs +0 -215
  1172. data/ext/cargo-vendor/winch-environ-0.7.4/.cargo-checksum.json +0 -1
  1173. data/ext/cargo-vendor/winch-environ-0.7.4/Cargo.toml +0 -28
  1174. data/ext/cargo-vendor/winch-environ-0.7.4/src/lib.rs +0 -41
  1175. data/ext/cargo-vendor/wit-parser-0.7.1/.cargo-checksum.json +0 -1
  1176. data/ext/cargo-vendor/wit-parser-0.7.1/Cargo.toml +0 -59
  1177. data/ext/cargo-vendor/wit-parser-0.7.1/src/ast/lex.rs +0 -662
  1178. data/ext/cargo-vendor/wit-parser-0.7.1/src/ast/resolve.rs +0 -1072
  1179. data/ext/cargo-vendor/wit-parser-0.7.1/src/ast.rs +0 -1099
  1180. data/ext/cargo-vendor/wit-parser-0.7.1/src/lib.rs +0 -617
  1181. data/ext/cargo-vendor/wit-parser-0.7.1/src/live.rs +0 -123
  1182. data/ext/cargo-vendor/wit-parser-0.7.1/src/resolve.rs +0 -1478
  1183. data/ext/cargo-vendor/wit-parser-0.7.1/tests/all.rs +0 -168
  1184. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/comments.wit +0 -23
  1185. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/disambiguate-diamond/shared1.wit +0 -3
  1186. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/disambiguate-diamond/shared2.wit +0 -3
  1187. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/disambiguate-diamond/world.wit +0 -11
  1188. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/embedded.wit.md +0 -32
  1189. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -1
  1190. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/corp/saas.wit +0 -2
  1191. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -1
  1192. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -3
  1193. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -11
  1194. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -3
  1195. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -5
  1196. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/foreign-deps/root.wit +0 -31
  1197. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/functions.wit +0 -12
  1198. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/multi-file/bar.wit +0 -19
  1199. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/multi-file/foo.wit +0 -15
  1200. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/alias-no-type.wit.result +0 -5
  1201. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-diamond/a.wit +0 -9
  1202. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-diamond/b.wit +0 -9
  1203. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-diamond/join.wit +0 -4
  1204. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-diamond.wit.result +0 -8
  1205. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-function.wit +0 -5
  1206. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-function.wit.result +0 -5
  1207. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-function2.wit +0 -5
  1208. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-function2.wit.result +0 -5
  1209. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg1/root.wit +0 -3
  1210. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg1.wit.result +0 -5
  1211. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg2/root.wit +0 -3
  1212. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg2.wit.result +0 -5
  1213. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  1214. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg3/root.wit +0 -3
  1215. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg3.wit.result +0 -5
  1216. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -3
  1217. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg4/root.wit +0 -3
  1218. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg4.wit.result +0 -5
  1219. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -2
  1220. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg5/root.wit +0 -3
  1221. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg5.wit.result +0 -5
  1222. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  1223. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg6/root.wit +0 -3
  1224. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-pkg6.wit.result +0 -5
  1225. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-world-type1.wit +0 -4
  1226. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-world-type1.wit.result +0 -5
  1227. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-world-type2.wit +0 -9
  1228. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/bad-world-type2.wit.result +0 -5
  1229. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle.wit +0 -5
  1230. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle.wit.result +0 -5
  1231. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle2.wit +0 -6
  1232. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle2.wit.result +0 -5
  1233. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle3.wit +0 -6
  1234. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle3.wit.result +0 -5
  1235. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle4.wit +0 -6
  1236. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle4.wit.result +0 -5
  1237. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle5.wit +0 -6
  1238. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/cycle5.wit.result +0 -5
  1239. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/default-interface1.wit +0 -3
  1240. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/default-interface1.wit.result +0 -5
  1241. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/default-world1.wit +0 -3
  1242. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/default-world1.wit.result +0 -5
  1243. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-functions.wit +0 -6
  1244. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-functions.wit.result +0 -5
  1245. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-interface.wit +0 -4
  1246. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-interface.wit.result +0 -5
  1247. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-type.wit +0 -6
  1248. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/duplicate-type.wit.result +0 -5
  1249. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-enum.wit +0 -5
  1250. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-enum.wit.result +0 -5
  1251. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-union.wit +0 -5
  1252. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-union.wit.result +0 -5
  1253. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-variant1.wit +0 -5
  1254. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/empty-variant1.wit.result +0 -5
  1255. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap1.wit +0 -4
  1256. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap1.wit.result +0 -5
  1257. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap2.wit +0 -4
  1258. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap2.wit.result +0 -5
  1259. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap3.wit +0 -11
  1260. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/import-export-overlap3.wit.result +0 -6
  1261. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-md.wit.result +0 -5
  1262. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-type-reference.wit +0 -8
  1263. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -5
  1264. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-type-reference2.wit +0 -4
  1265. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -5
  1266. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid@filename.wit +0 -0
  1267. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/invalid@filename.wit.result +0 -4
  1268. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -3
  1269. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle/root.wit +0 -3
  1270. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle.wit.result +0 -5
  1271. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -3
  1272. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -3
  1273. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -3
  1274. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -5
  1275. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/undefined-typed.wit +0 -5
  1276. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/undefined-typed.wit.result +0 -5
  1277. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unknown-interface.wit +0 -5
  1278. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unknown-interface.wit.result +0 -5
  1279. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface1.wit +0 -5
  1280. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -5
  1281. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface2.wit +0 -6
  1282. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -5
  1283. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface3.wit +0 -5
  1284. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -5
  1285. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface4.wit +0 -5
  1286. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -5
  1287. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface5.wit +0 -5
  1288. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-interface5.wit.result +0 -5
  1289. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use1.wit +0 -5
  1290. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use1.wit.result +0 -5
  1291. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -3
  1292. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use10.wit.result +0 -8
  1293. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use11/bar.wit +0 -3
  1294. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use11/foo.wit +0 -2
  1295. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use11.wit.result +0 -8
  1296. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use2.wit +0 -8
  1297. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use2.wit.result +0 -5
  1298. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use3.wit +0 -9
  1299. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use3.wit.result +0 -5
  1300. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use4.wit +0 -5
  1301. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use4.wit.result +0 -5
  1302. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use5.wit +0 -6
  1303. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use5.wit.result +0 -5
  1304. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use6.wit +0 -5
  1305. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use6.wit.result +0 -5
  1306. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use7.wit +0 -8
  1307. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use7.wit.result +0 -5
  1308. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use8.wit +0 -7
  1309. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use8.wit.result +0 -5
  1310. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use9.wit +0 -7
  1311. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/unresolved-use9.wit.result +0 -5
  1312. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict.wit +0 -9
  1313. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict.wit.result +0 -5
  1314. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict2.wit +0 -11
  1315. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict2.wit.result +0 -5
  1316. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict3.wit +0 -11
  1317. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-conflict3.wit.result +0 -5
  1318. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle1.wit +0 -5
  1319. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle1.wit.result +0 -5
  1320. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle2.wit +0 -5
  1321. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle2.wit.result +0 -5
  1322. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle3.wit +0 -6
  1323. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle3.wit.result +0 -5
  1324. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle4.wit +0 -13
  1325. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-cycle4.wit.result +0 -5
  1326. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world.wit +0 -8
  1327. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world.wit.result +0 -5
  1328. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world2/bar.wit +0 -3
  1329. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world2/foo.wit +0 -2
  1330. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/use-from-package-world2.wit.result +0 -8
  1331. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import1.wit +0 -10
  1332. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import1.wit.result +0 -6
  1333. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import2.wit +0 -9
  1334. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import2.wit.result +0 -5
  1335. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import3.wit +0 -9
  1336. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-implicit-import3.wit.result +0 -5
  1337. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-interface-clash.wit +0 -2
  1338. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-interface-clash.wit.result +0 -5
  1339. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields.wit +0 -9
  1340. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields.wit.result +0 -5
  1341. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields2.wit +0 -6
  1342. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields2.wit.result +0 -5
  1343. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields3.wit +0 -6
  1344. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields3.wit.result +0 -5
  1345. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields4.wit +0 -11
  1346. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-fields4.wit.result +0 -8
  1347. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-import.wit +0 -6
  1348. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-same-import.wit.result +0 -5
  1349. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-top-level-func.wit +0 -4
  1350. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-top-level-func.wit.result +0 -5
  1351. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-top-level-func2.wit +0 -3
  1352. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -5
  1353. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/worlds-same-fields5.wit +0 -16
  1354. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/parse-fail/worlds-same-fields5.wit.result +0 -9
  1355. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/shared-types.wit +0 -8
  1356. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/type-then-eof.wit +0 -3
  1357. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/types.wit +0 -59
  1358. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/use.wit +0 -33
  1359. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/wasi.wit +0 -176
  1360. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/world-diamond.wit +0 -20
  1361. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/world-top-level-funcs.wit +0 -7
  1362. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/worlds-with-types.wit +0 -32
  1363. data/ext/cargo-vendor/wit-parser-0.7.1/tests/ui/worlds.wit +0 -40
  1364. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/LICENSE +0 -0
  1365. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/README.md +0 -0
  1366. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/lib.rs +0 -0
  1367. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/map.rs +0 -0
  1368. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/node.rs +0 -0
  1369. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/path.rs +0 -0
  1370. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/pool.rs +0 -0
  1371. /data/ext/cargo-vendor/{cranelift-bforest-0.96.4 → cranelift-bforest-0.97.1}/src/set.rs +0 -0
  1372. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/LICENSE +0 -0
  1373. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/README.md +0 -0
  1374. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/build.rs +0 -0
  1375. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/alias_analysis.rs +0 -0
  1376. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/binemit/mod.rs +0 -0
  1377. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/binemit/stack_map.rs +0 -0
  1378. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/bitset.rs +0 -0
  1379. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/cfg_printer.rs +0 -0
  1380. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/constant_hash.rs +0 -0
  1381. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/context.rs +0 -0
  1382. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ctxhash.rs +0 -0
  1383. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/cursor.rs +0 -0
  1384. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/data_value.rs +0 -0
  1385. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/dbg.rs +0 -0
  1386. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/dce.rs +0 -0
  1387. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/dominator_tree.rs +0 -0
  1388. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/egraph/cost.rs +0 -0
  1389. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/egraph/domtree.rs +0 -0
  1390. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/egraph/elaborate.rs +0 -0
  1391. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/egraph.rs +0 -0
  1392. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/flowgraph.rs +0 -0
  1393. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/fx.rs +0 -0
  1394. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/incremental_cache.rs +0 -0
  1395. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/inst_predicates.rs +0 -0
  1396. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/atomic_rmw_op.rs +0 -0
  1397. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/builder.rs +0 -0
  1398. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/condcodes.rs +0 -0
  1399. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/constant.rs +0 -0
  1400. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/dfg.rs +0 -0
  1401. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/dynamic_type.rs +0 -0
  1402. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/entities.rs +0 -0
  1403. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/extfunc.rs +0 -0
  1404. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/extname.rs +0 -0
  1405. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/function.rs +0 -0
  1406. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/globalvalue.rs +0 -0
  1407. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/immediates.rs +0 -0
  1408. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/instructions.rs +0 -0
  1409. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/jumptable.rs +0 -0
  1410. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/known_symbol.rs +0 -0
  1411. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/layout.rs +0 -0
  1412. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/libcall.rs +0 -0
  1413. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/memflags.rs +0 -0
  1414. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/mod.rs +0 -0
  1415. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/progpoint.rs +0 -0
  1416. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/sourceloc.rs +0 -0
  1417. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/stackslot.rs +0 -0
  1418. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/table.rs +0 -0
  1419. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/ir/types.rs +0 -0
  1420. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst/args.rs +0 -0
  1421. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst/regs.rs +0 -0
  1422. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  1423. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst/unwind.rs +0 -0
  1424. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/inst_neon.isle +0 -0
  1425. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1426. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/lower.rs +0 -0
  1427. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1428. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/aarch64/settings.rs +0 -0
  1429. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/call_conv.rs +0 -0
  1430. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/riscv64/inst/unwind.rs +0 -0
  1431. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1432. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/riscv64/lower.rs +0 -0
  1433. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/riscv64/settings.rs +0 -0
  1434. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/args.rs +0 -0
  1435. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/imms.rs +0 -0
  1436. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/regs.rs +0 -0
  1437. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1438. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/inst/unwind.rs +0 -0
  1439. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1440. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/lower/isle.rs +0 -0
  1441. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/lower.rs +0 -0
  1442. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/s390x/settings.rs +0 -0
  1443. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/unwind/systemv.rs +0 -0
  1444. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/unwind/winx64.rs +0 -0
  1445. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/unwind.rs +0 -0
  1446. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/encoding/mod.rs +0 -0
  1447. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/inst/regs.rs +0 -0
  1448. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1449. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1450. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/inst/unwind.rs +0 -0
  1451. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1452. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/isa/x64/settings.rs +0 -0
  1453. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/iterators.rs +0 -0
  1454. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/legalizer/globalvalue.rs +0 -0
  1455. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/legalizer/mod.rs +0 -0
  1456. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/legalizer/table.rs +0 -0
  1457. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/lib.rs +0 -0
  1458. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/loop_analysis.rs +0 -0
  1459. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/machinst/blockorder.rs +0 -0
  1460. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/machinst/helpers.rs +0 -0
  1461. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/machinst/inst_common.rs +0 -0
  1462. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/machinst/valueregs.rs +0 -0
  1463. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/nan_canonicalization.rs +0 -0
  1464. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/README.md +0 -0
  1465. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/arithmetic.isle +0 -0
  1466. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/bitops.isle +0 -0
  1467. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/cprop.isle +0 -0
  1468. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/extends.isle +0 -0
  1469. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/generated_code.rs +0 -0
  1470. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/icmp.isle +0 -0
  1471. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/remat.isle +0 -0
  1472. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/selects.isle +0 -0
  1473. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts/shifts.isle +0 -0
  1474. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/opts.rs +0 -0
  1475. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/prelude_opt.isle +0 -0
  1476. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/print_errors.rs +0 -0
  1477. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/remove_constant_phis.rs +0 -0
  1478. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/result.rs +0 -0
  1479. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/scoped_hash_map.rs +0 -0
  1480. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/souper_harvest.rs +0 -0
  1481. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/timing.rs +0 -0
  1482. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/unionfind.rs +0 -0
  1483. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/unreachable_code.rs +0 -0
  1484. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/value_label.rs +0 -0
  1485. /data/ext/cargo-vendor/{cranelift-codegen-0.96.4 → cranelift-codegen-0.97.1}/src/write.rs +0 -0
  1486. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/LICENSE +0 -0
  1487. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/README.md +0 -0
  1488. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/formats.rs +0 -0
  1489. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/instructions.rs +0 -0
  1490. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/isa.rs +0 -0
  1491. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/mod.rs +0 -0
  1492. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/operands.rs +0 -0
  1493. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/settings.rs +0 -0
  1494. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/types.rs +0 -0
  1495. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/cdsl/typevar.rs +0 -0
  1496. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/constant_hash.rs +0 -0
  1497. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/error.rs +0 -0
  1498. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/gen_inst.rs +0 -0
  1499. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/gen_settings.rs +0 -0
  1500. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/gen_types.rs +0 -0
  1501. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/isa/arm64.rs +0 -0
  1502. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/isa/mod.rs +0 -0
  1503. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/isa/riscv64.rs +0 -0
  1504. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/isa/s390x.rs +0 -0
  1505. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/lib.rs +0 -0
  1506. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/entities.rs +0 -0
  1507. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/formats.rs +0 -0
  1508. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/immediates.rs +0 -0
  1509. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/instructions.rs +0 -0
  1510. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/mod.rs +0 -0
  1511. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/shared/types.rs +0 -0
  1512. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/srcgen.rs +0 -0
  1513. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.96.4 → cranelift-codegen-meta-0.97.1}/src/unique_table.rs +0 -0
  1514. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/LICENSE +0 -0
  1515. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/README.md +0 -0
  1516. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/src/constant_hash.rs +0 -0
  1517. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/src/constants.rs +0 -0
  1518. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.96.4 → cranelift-codegen-shared-0.97.1}/src/lib.rs +0 -0
  1519. /data/ext/cargo-vendor/{cranelift-control-0.96.4 → cranelift-control-0.97.1}/LICENSE +0 -0
  1520. /data/ext/cargo-vendor/{cranelift-control-0.96.4 → cranelift-control-0.97.1}/README.md +0 -0
  1521. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/LICENSE +0 -0
  1522. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/README.md +0 -0
  1523. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/boxed_slice.rs +0 -0
  1524. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/iter.rs +0 -0
  1525. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/keys.rs +0 -0
  1526. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/lib.rs +0 -0
  1527. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/map.rs +0 -0
  1528. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/packed_option.rs +0 -0
  1529. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/primary.rs +0 -0
  1530. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/set.rs +0 -0
  1531. /data/ext/cargo-vendor/{cranelift-entity-0.96.4 → cranelift-entity-0.97.1}/src/sparse.rs +0 -0
  1532. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/LICENSE +0 -0
  1533. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/README.md +0 -0
  1534. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/frontend.rs +0 -0
  1535. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/lib.rs +0 -0
  1536. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/ssa.rs +0 -0
  1537. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/switch.rs +0 -0
  1538. /data/ext/cargo-vendor/{cranelift-frontend-0.96.4 → cranelift-frontend-0.97.1}/src/variable.rs +0 -0
  1539. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/README.md +0 -0
  1540. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/build.rs +0 -0
  1541. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/bad_converters.isle +0 -0
  1542. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1543. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1544. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/error1.isle +0 -0
  1545. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/extra_parens.isle +0 -0
  1546. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/impure_expression.isle +0 -0
  1547. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/impure_rhs.isle +0 -0
  1548. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1549. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/fail/multi_prio.isle +0 -0
  1550. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/borrows.isle +0 -0
  1551. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/borrows_main.rs +0 -0
  1552. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/iflets.isle +0 -0
  1553. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/iflets_main.rs +0 -0
  1554. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/multi_constructor.isle +0 -0
  1555. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/multi_constructor_main.rs +0 -0
  1556. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/multi_extractor.isle +0 -0
  1557. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/multi_extractor_main.rs +0 -0
  1558. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/test.isle +0 -0
  1559. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/link/test_main.rs +0 -0
  1560. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/bound_var.isle +0 -0
  1561. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/construct_and_extract.isle +0 -0
  1562. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/conversions.isle +0 -0
  1563. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/conversions_extern.isle +0 -0
  1564. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/let.isle +0 -0
  1565. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/nodebug.isle +0 -0
  1566. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1567. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/test2.isle +0 -0
  1568. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/test3.isle +0 -0
  1569. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/test4.isle +0 -0
  1570. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/pass/tutorial.isle +0 -0
  1571. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/run/iconst.isle +0 -0
  1572. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/run/iconst_main.rs +0 -0
  1573. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/run/let_shadowing.isle +0 -0
  1574. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/isle_examples/run/let_shadowing_main.rs +0 -0
  1575. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/ast.rs +0 -0
  1576. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/codegen.rs +0 -0
  1577. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/compile.rs +0 -0
  1578. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/error.rs +0 -0
  1579. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/lexer.rs +0 -0
  1580. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/lib.rs +0 -0
  1581. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/log.rs +0 -0
  1582. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/overlap.rs +0 -0
  1583. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/parser.rs +0 -0
  1584. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/sema.rs +0 -0
  1585. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/serialize.rs +0 -0
  1586. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/src/trie_again.rs +0 -0
  1587. /data/ext/cargo-vendor/{cranelift-isle-0.96.4 → cranelift-isle-0.97.1}/tests/run_tests.rs +0 -0
  1588. /data/ext/cargo-vendor/{cranelift-native-0.96.4 → cranelift-native-0.97.1}/LICENSE +0 -0
  1589. /data/ext/cargo-vendor/{cranelift-native-0.96.4 → cranelift-native-0.97.1}/README.md +0 -0
  1590. /data/ext/cargo-vendor/{cranelift-native-0.96.4 → cranelift-native-0.97.1}/src/riscv.rs +0 -0
  1591. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/LICENSE +0 -0
  1592. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/README.md +0 -0
  1593. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/code_translator/bounds_checks.rs +0 -0
  1594. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/environ/mod.rs +0 -0
  1595. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/heap.rs +0 -0
  1596. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/lib.rs +0 -0
  1597. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/module_translator.rs +0 -0
  1598. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/src/state.rs +0 -0
  1599. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/tests/wasm_testsuite.rs +0 -0
  1600. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/arith.wat +0 -0
  1601. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/br_table.wat +0 -0
  1602. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/call-simd.wat +0 -0
  1603. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/call.wat +0 -0
  1604. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/embenchen_fannkuch.wat +0 -0
  1605. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/embenchen_fasta.wat +0 -0
  1606. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/embenchen_ifs.wat +0 -0
  1607. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/embenchen_primes.wat +0 -0
  1608. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/fac-multi-value.wat +0 -0
  1609. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/fibonacci.wat +0 -0
  1610. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/globals.wat +0 -0
  1611. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/icall-simd.wat +0 -0
  1612. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/icall.wat +0 -0
  1613. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-0.wat +0 -0
  1614. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-1.wat +0 -0
  1615. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-2.wat +0 -0
  1616. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-3.wat +0 -0
  1617. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-4.wat +0 -0
  1618. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-5.wat +0 -0
  1619. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-reachability-translation-6.wat +0 -0
  1620. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-unreachable-else-params-2.wat +0 -0
  1621. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/if-unreachable-else-params.wat +0 -0
  1622. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  1623. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/memory.wat +0 -0
  1624. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-0.wat +0 -0
  1625. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-1.wat +0 -0
  1626. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-10.wat +0 -0
  1627. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-11.wat +0 -0
  1628. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-12.wat +0 -0
  1629. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-13.wat +0 -0
  1630. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-14.wat +0 -0
  1631. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-15.wat +0 -0
  1632. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-16.wat +0 -0
  1633. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-17.wat +0 -0
  1634. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-2.wat +0 -0
  1635. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-3.wat +0 -0
  1636. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-4.wat +0 -0
  1637. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-5.wat +0 -0
  1638. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-6.wat +0 -0
  1639. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-7.wat +0 -0
  1640. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-8.wat +0 -0
  1641. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/multi-9.wat +0 -0
  1642. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/nullref.wat +0 -0
  1643. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/passive-data.wat +0 -0
  1644. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/pr2303.wat +0 -0
  1645. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/pr2559.wat +0 -0
  1646. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/ref-func-0.wat +0 -0
  1647. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/rust_fannkuch.wat +0 -0
  1648. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/select.wat +0 -0
  1649. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/simd-store.wat +0 -0
  1650. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/simd.wat +0 -0
  1651. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/table-copy.wat +0 -0
  1652. /data/ext/cargo-vendor/{cranelift-wasm-0.96.4 → cranelift-wasm-0.97.1}/wasmtests/unreachable_code.wat +0 -0
  1653. /data/ext/cargo-vendor/{file-per-thread-logger-0.1.6 → file-per-thread-logger-0.2.0}/LICENSE +0 -0
  1654. /data/ext/cargo-vendor/{file-per-thread-logger-0.1.6 → file-per-thread-logger-0.2.0}/README.md +0 -0
  1655. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/LICENSE +0 -0
  1656. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/README.md +0 -0
  1657. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/doc/DESIGN.md +0 -0
  1658. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/doc/TODO +0 -0
  1659. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/cfg.rs +0 -0
  1660. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/domtree.rs +0 -0
  1661. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/fuzzing/mod.rs +0 -0
  1662. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/indexset.rs +0 -0
  1663. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/ion/dump.rs +0 -0
  1664. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/ion/redundant_moves.rs +0 -0
  1665. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/ion/reg_traversal.rs +0 -0
  1666. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/postorder.rs +0 -0
  1667. /data/ext/cargo-vendor/{regalloc2-0.8.1 → regalloc2-0.9.2}/src/ssa.rs +0 -0
  1668. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/LICENSE +0 -0
  1669. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/README.md +0 -0
  1670. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/clocks.rs +0 -0
  1671. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/file.rs +0 -0
  1672. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/net.rs +0 -0
  1673. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/sched/unix.rs +0 -0
  1674. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/sched/windows.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/sched.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasi-cap-std-sync-9.0.4 → wasi-cap-std-sync-10.0.0}/src/stdio.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/LICENSE +0 -0
  1678. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/README.md +0 -0
  1679. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/README.md +0 -0
  1680. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/docs/README.md +0 -0
  1681. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/README.md +0 -0
  1682. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/docs.md +0 -0
  1683. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  1684. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  1685. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  1686. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  1687. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  1688. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  1689. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  1690. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  1691. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  1692. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  1693. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  1694. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/old/snapshot_0/docs.md +0 -0
  1695. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  1696. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  1697. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/snapshot/docs.html +0 -0
  1698. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/snapshot/docs.md +0 -0
  1699. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  1700. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  1701. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/proposal-template/README.md +0 -0
  1702. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/proposals/README.md +0 -0
  1703. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/snapshots/README.md +0 -0
  1704. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/WASI/standard/README.md +0 -0
  1705. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/build.rs +0 -0
  1706. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/clocks.rs +0 -0
  1707. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/dir.rs +0 -0
  1708. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/error.rs +0 -0
  1709. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/lib.rs +0 -0
  1710. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/pipe.rs +0 -0
  1711. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/random.rs +0 -0
  1712. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/sched/subscription.rs +0 -0
  1713. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/sched.rs +0 -0
  1714. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/snapshots/mod.rs +0 -0
  1715. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/snapshots/preview_0.rs +0 -0
  1716. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/snapshots/preview_1/error.rs +0 -0
  1717. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/string_array.rs +0 -0
  1718. /data/ext/cargo-vendor/{wasi-common-9.0.4 → wasi-common-10.0.0}/src/table.rs +0 -0
  1719. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasm-encoder-0.29.0}/LICENSE +0 -0
  1720. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmparser-0.107.0}/LICENSE +0 -0
  1721. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/README.md +0 -0
  1722. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/examples/simple.rs +0 -0
  1723. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/limits.rs +0 -0
  1724. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/component/aliases.rs +0 -0
  1725. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/component/names.rs +0 -0
  1726. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/component/start.rs +0 -0
  1727. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/component.rs +0 -0
  1728. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/code.rs +0 -0
  1729. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/custom.rs +0 -0
  1730. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/data.rs +0 -0
  1731. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/elements.rs +0 -0
  1732. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/exports.rs +0 -0
  1733. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/functions.rs +0 -0
  1734. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/globals.rs +0 -0
  1735. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/imports.rs +0 -0
  1736. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/init.rs +0 -0
  1737. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/memories.rs +0 -0
  1738. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/names.rs +0 -0
  1739. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/operators.rs +0 -0
  1740. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/tables.rs +0 -0
  1741. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers/core/tags.rs +0 -0
  1742. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/readers.rs +0 -0
  1743. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/resources.rs +0 -0
  1744. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/src/validator/func.rs +0 -0
  1745. /data/ext/cargo-vendor/{wasmparser-0.103.0 → wasmparser-0.107.0}/tests/big-module.rs +0 -0
  1746. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmparser-0.111.0}/LICENSE +0 -0
  1747. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmprinter-0.2.63}/LICENSE +0 -0
  1748. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-10.0.0}/LICENSE +0 -0
  1749. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/README.md +0 -0
  1750. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/code.rs +0 -0
  1751. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/func/host.rs +0 -0
  1752. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/func/options.rs +0 -0
  1753. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/func/typed.rs +0 -0
  1754. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/func.rs +0 -0
  1755. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/linker.rs +0 -0
  1756. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/storage.rs +0 -0
  1757. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/store.rs +0 -0
  1758. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/types.rs +0 -0
  1759. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/component/values.rs +0 -0
  1760. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/limits.rs +0 -0
  1761. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/module/registry.rs +0 -0
  1762. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/profiling.rs +0 -0
  1763. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/signatures.rs +0 -0
  1764. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/store/data.rs +0 -0
  1765. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/trampoline/memory.rs +0 -0
  1766. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/trampoline/table.rs +0 -0
  1767. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/trampoline.rs +0 -0
  1768. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/trap.rs +0 -0
  1769. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/unix.rs +0 -0
  1770. /data/ext/cargo-vendor/{wasmtime-9.0.4 → wasmtime-10.0.0}/src/windows.rs +0 -0
  1771. /data/ext/cargo-vendor/{wasmtime-asm-macros-9.0.4 → wasmtime-asm-macros-10.0.0}/src/lib.rs +0 -0
  1772. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-cache-10.0.0}/LICENSE +0 -0
  1773. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/build.rs +0 -0
  1774. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/config/tests.rs +0 -0
  1775. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/config.rs +0 -0
  1776. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/lib.rs +0 -0
  1777. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/tests.rs +0 -0
  1778. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  1779. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/worker/tests.rs +0 -0
  1780. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/src/worker.rs +0 -0
  1781. /data/ext/cargo-vendor/{wasmtime-cache-9.0.4 → wasmtime-cache-10.0.0}/tests/cache_write_default_config.rs +0 -0
  1782. /data/ext/cargo-vendor/{wasmtime-component-macro-9.0.4 → wasmtime-component-macro-10.0.0}/src/component.rs +0 -0
  1783. /data/ext/cargo-vendor/{wasmtime-component-macro-9.0.4 → wasmtime-component-macro-10.0.0}/src/lib.rs +0 -0
  1784. /data/ext/cargo-vendor/{wasmtime-component-util-9.0.4 → wasmtime-component-util-10.0.0}/src/lib.rs +0 -0
  1785. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-cranelift-10.0.0}/LICENSE +0 -0
  1786. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/SECURITY.md +0 -0
  1787. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/builder.rs +0 -0
  1788. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/compiler/component.rs +0 -0
  1789. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/gc.rs +0 -0
  1790. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/address_transform.rs +0 -0
  1791. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/attr.rs +0 -0
  1792. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/expression.rs +0 -0
  1793. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/line_program.rs +0 -0
  1794. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/mod.rs +0 -0
  1795. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1796. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/refs.rs +0 -0
  1797. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/unit.rs +0 -0
  1798. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/transform/utils.rs +0 -0
  1799. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug/write_debuginfo.rs +0 -0
  1800. /data/ext/cargo-vendor/{wasmtime-cranelift-9.0.4 → wasmtime-cranelift-10.0.0}/src/debug.rs +0 -0
  1801. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.0}/src/compiled_function.rs +0 -0
  1802. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.0}/src/isa_builder.rs +0 -0
  1803. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-9.0.4 → wasmtime-cranelift-shared-10.0.0}/src/obj.rs +0 -0
  1804. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-environ-10.0.0}/LICENSE +0 -0
  1805. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/examples/factc.rs +0 -0
  1806. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/address_map.rs +0 -0
  1807. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/builtin.rs +0 -0
  1808. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/compilation.rs +0 -0
  1809. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component/dfg.rs +0 -0
  1810. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component/info.rs +0 -0
  1811. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component/translate/adapt.rs +0 -0
  1812. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1813. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/component.rs +0 -0
  1814. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/core_types.rs +0 -0
  1815. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/signature.rs +0 -0
  1816. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/trampoline.rs +0 -0
  1817. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/transcode.rs +0 -0
  1818. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/fact/traps.rs +0 -0
  1819. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/lib.rs +0 -0
  1820. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/module_types.rs +0 -0
  1821. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/obj.rs +0 -0
  1822. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/ref_bits.rs +0 -0
  1823. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/scopevec.rs +0 -0
  1824. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/stack_map.rs +0 -0
  1825. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/tunables.rs +0 -0
  1826. /data/ext/cargo-vendor/{wasmtime-environ-9.0.4 → wasmtime-environ-10.0.0}/src/vmoffsets.rs +0 -0
  1827. /data/ext/cargo-vendor/{wasmtime-types-9.0.4 → wasmtime-fiber-10.0.0}/LICENSE +0 -0
  1828. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/build.rs +0 -0
  1829. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/aarch64.rs +0 -0
  1830. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/arm.rs +0 -0
  1831. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/riscv64.rs +0 -0
  1832. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/s390x.S +0 -0
  1833. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/x86.rs +0 -0
  1834. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/unix/x86_64.rs +0 -0
  1835. /data/ext/cargo-vendor/{wasmtime-fiber-9.0.4 → wasmtime-fiber-10.0.0}/src/windows.c +0 -0
  1836. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-jit-10.0.0}/LICENSE +0 -0
  1837. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/code_memory.rs +0 -0
  1838. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/debug.rs +0 -0
  1839. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/demangling.rs +0 -0
  1840. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/unwind/miri.rs +0 -0
  1841. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/unwind/systemv.rs +0 -0
  1842. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/unwind/winx64.rs +0 -0
  1843. /data/ext/cargo-vendor/{wasmtime-jit-9.0.4 → wasmtime-jit-10.0.0}/src/unwind.rs +0 -0
  1844. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.0}/README.md +0 -0
  1845. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.0}/src/gdb_jit_int.rs +0 -0
  1846. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.0}/src/lib.rs +0 -0
  1847. /data/ext/cargo-vendor/{wasmtime-jit-debug-9.0.4 → wasmtime-jit-debug-10.0.0}/src/perf_jitdump.rs +0 -0
  1848. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.0}/src/lib.rs +0 -0
  1849. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.0}/src/libc.rs +0 -0
  1850. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.0}/src/miri.rs +0 -0
  1851. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-9.0.4 → wasmtime-jit-icache-coherence-10.0.0}/src/win.rs +0 -0
  1852. /data/ext/cargo-vendor/{wiggle-9.0.4 → wasmtime-runtime-10.0.0}/LICENSE +0 -0
  1853. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/build.rs +0 -0
  1854. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/component/transcode.rs +0 -0
  1855. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/export.rs +0 -0
  1856. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/helpers.c +0 -0
  1857. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/imports.rs +0 -0
  1858. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1859. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/instance/allocator/pooling/unix.rs +0 -0
  1860. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/instance/allocator/pooling/windows.rs +0 -0
  1861. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/mmap.rs +0 -0
  1862. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/mmap_vec.rs +0 -0
  1863. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/module_id.rs +0 -0
  1864. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/parking_spot.rs +0 -0
  1865. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/store_box.rs +0 -0
  1866. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/aarch64.rs +0 -0
  1867. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/riscv64.rs +0 -0
  1868. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/s390x.S +0 -0
  1869. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/s390x.rs +0 -0
  1870. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines/x86_64.rs +0 -0
  1871. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/trampolines.rs +0 -0
  1872. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace/aarch64.rs +0 -0
  1873. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace/riscv64.rs +0 -0
  1874. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace/s390x.rs +0 -0
  1875. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace/x86_64.rs +0 -0
  1876. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/backtrace.rs +0 -0
  1877. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/macos.rs +0 -0
  1878. /data/ext/cargo-vendor/{wasmtime-runtime-9.0.4 → wasmtime-runtime-10.0.0}/src/traphandlers/windows.rs +0 -0
  1879. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wasmtime-types-10.0.1}/LICENSE +0 -0
  1880. /data/ext/cargo-vendor/{wasmtime-types-9.0.4 → wasmtime-types-10.0.1}/src/error.rs +0 -0
  1881. /data/ext/cargo-vendor/{wiggle-macro-9.0.4 → wasmtime-wasi-10.0.0}/LICENSE +0 -0
  1882. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-wasi-10.0.0}/README.md +0 -0
  1883. /data/ext/cargo-vendor/{wasmtime-wasi-9.0.4 → wasmtime-wasi-10.0.0}/build.rs +0 -0
  1884. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.0}/LICENSE +0 -0
  1885. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.0}/src/builder.rs +0 -0
  1886. /data/ext/cargo-vendor/{wasmtime-winch-9.0.4 → wasmtime-winch-10.0.0}/src/lib.rs +0 -0
  1887. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-9.0.4 → wasmtime-wit-bindgen-10.0.0}/src/rust.rs +0 -0
  1888. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-9.0.4 → wasmtime-wit-bindgen-10.0.0}/src/source.rs +0 -0
  1889. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/borrow.rs +0 -0
  1890. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/error.rs +0 -0
  1891. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/guest_type.rs +0 -0
  1892. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/lib.rs +0 -0
  1893. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/region.rs +0 -0
  1894. /data/ext/cargo-vendor/{wiggle-9.0.4 → wiggle-10.0.0}/src/wasmtime.rs +0 -0
  1895. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/README.md +0 -0
  1896. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/codegen_settings.rs +0 -0
  1897. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/config.rs +0 -0
  1898. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/funcs.rs +0 -0
  1899. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/lib.rs +0 -0
  1900. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/lifetimes.rs +0 -0
  1901. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/module_trait.rs +0 -0
  1902. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/names.rs +0 -0
  1903. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/error.rs +0 -0
  1904. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/flags.rs +0 -0
  1905. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/handle.rs +0 -0
  1906. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/mod.rs +0 -0
  1907. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/record.rs +0 -0
  1908. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/types/variant.rs +0 -0
  1909. /data/ext/cargo-vendor/{wiggle-generate-9.0.4 → wiggle-generate-10.0.0}/src/wasmtime.rs +0 -0
  1910. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/LICENSE +0 -0
  1911. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/build.rs +0 -0
  1912. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/src/isa/aarch64/address.rs +0 -0
  1913. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/src/isa/reg.rs +0 -0
  1914. /data/ext/cargo-vendor/{winch-codegen-0.7.4 → winch-codegen-0.8.0}/src/regset.rs +0 -0
  1915. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/README.md +0 -0
  1916. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/src/abi.rs +0 -0
  1917. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/src/ast/toposort.rs +0 -0
  1918. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/src/sizealign.rs +0 -0
  1919. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  1920. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/async.wit.result +0 -0
  1921. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/async1.wit.result +0 -0
  1922. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/bad-list.wit +0 -0
  1923. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  1924. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/dangling-type.wit +0 -0
  1925. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  1926. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/invalid-md.md +0 -0
  1927. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  1928. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  1929. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/keyword.wit +0 -0
  1930. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/keyword.wit.result +0 -0
  1931. /data/ext/cargo-vendor/{wit-parser-0.7.1/tests/ui/empty.wit → wit-parser-0.8.0/tests/ui/parse-fail/missing-package.wit} +0 -0
  1932. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  1933. /data/ext/cargo-vendor/{wit-parser-0.7.1 → wit-parser-0.8.0}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
@@ -0,0 +1,3283 @@
1
+ //! Types relating to type information provided by validation.
2
+
3
+ use super::{
4
+ component::{ComponentState, ExternKind},
5
+ core::Module,
6
+ };
7
+ use crate::validator::names::KebabString;
8
+ use crate::{
9
+ ArrayType, BinaryReaderError, Export, ExternalKind, FuncType, GlobalType, Import, MemoryType,
10
+ PrimitiveValType, RefType, Result, StructType, StructuralType, SubType, TableType, TypeRef,
11
+ ValType,
12
+ };
13
+ use indexmap::{IndexMap, IndexSet};
14
+ use std::collections::HashMap;
15
+ use std::collections::HashSet;
16
+ use std::ops::Index;
17
+ use std::sync::atomic::{AtomicU64, Ordering};
18
+ use std::{
19
+ borrow::Borrow,
20
+ hash::{Hash, Hasher},
21
+ mem,
22
+ ops::{Deref, DerefMut},
23
+ sync::Arc,
24
+ };
25
+
26
+ /// The maximum number of parameters in the canonical ABI that can be passed by value.
27
+ ///
28
+ /// Functions that exceed this limit will instead pass parameters indirectly from
29
+ /// linear memory via a single pointer parameter.
30
+ const MAX_FLAT_FUNC_PARAMS: usize = 16;
31
+ /// The maximum number of results in the canonical ABI that can be returned by a function.
32
+ ///
33
+ /// Functions that exceed this limit have their results written to linear memory via an
34
+ /// additional pointer parameter (imports) or return a single pointer value (exports).
35
+ const MAX_FLAT_FUNC_RESULTS: usize = 1;
36
+
37
+ /// The maximum lowered types, including a possible type for a return pointer parameter.
38
+ const MAX_LOWERED_TYPES: usize = MAX_FLAT_FUNC_PARAMS + 1;
39
+
40
+ /// A simple alloc-free list of types used for calculating lowered function signatures.
41
+ pub(crate) struct LoweredTypes {
42
+ types: [ValType; MAX_LOWERED_TYPES],
43
+ len: usize,
44
+ max: usize,
45
+ }
46
+
47
+ impl LoweredTypes {
48
+ fn new(max: usize) -> Self {
49
+ assert!(max <= MAX_LOWERED_TYPES);
50
+ Self {
51
+ types: [ValType::I32; MAX_LOWERED_TYPES],
52
+ len: 0,
53
+ max,
54
+ }
55
+ }
56
+
57
+ fn len(&self) -> usize {
58
+ self.len
59
+ }
60
+
61
+ fn maxed(&self) -> bool {
62
+ self.len == self.max
63
+ }
64
+
65
+ fn get_mut(&mut self, index: usize) -> Option<&mut ValType> {
66
+ if index < self.len {
67
+ Some(&mut self.types[index])
68
+ } else {
69
+ None
70
+ }
71
+ }
72
+
73
+ fn push(&mut self, ty: ValType) -> bool {
74
+ if self.maxed() {
75
+ return false;
76
+ }
77
+
78
+ self.types[self.len] = ty;
79
+ self.len += 1;
80
+ true
81
+ }
82
+
83
+ fn clear(&mut self) {
84
+ self.len = 0;
85
+ }
86
+
87
+ pub fn as_slice(&self) -> &[ValType] {
88
+ &self.types[..self.len]
89
+ }
90
+
91
+ pub fn iter(&self) -> impl Iterator<Item = ValType> + '_ {
92
+ self.as_slice().iter().copied()
93
+ }
94
+ }
95
+
96
+ /// Represents information about a component function type lowering.
97
+ pub(crate) struct LoweringInfo {
98
+ pub(crate) params: LoweredTypes,
99
+ pub(crate) results: LoweredTypes,
100
+ pub(crate) requires_memory: bool,
101
+ pub(crate) requires_realloc: bool,
102
+ }
103
+
104
+ impl LoweringInfo {
105
+ pub(crate) fn into_func_type(self) -> FuncType {
106
+ FuncType::new(
107
+ self.params.as_slice().iter().copied(),
108
+ self.results.as_slice().iter().copied(),
109
+ )
110
+ }
111
+ }
112
+
113
+ impl Default for LoweringInfo {
114
+ fn default() -> Self {
115
+ Self {
116
+ params: LoweredTypes::new(MAX_FLAT_FUNC_PARAMS),
117
+ results: LoweredTypes::new(MAX_FLAT_FUNC_RESULTS),
118
+ requires_memory: false,
119
+ requires_realloc: false,
120
+ }
121
+ }
122
+ }
123
+
124
+ fn push_primitive_wasm_types(ty: &PrimitiveValType, lowered_types: &mut LoweredTypes) -> bool {
125
+ match ty {
126
+ PrimitiveValType::Bool
127
+ | PrimitiveValType::S8
128
+ | PrimitiveValType::U8
129
+ | PrimitiveValType::S16
130
+ | PrimitiveValType::U16
131
+ | PrimitiveValType::S32
132
+ | PrimitiveValType::U32
133
+ | PrimitiveValType::Char => lowered_types.push(ValType::I32),
134
+ PrimitiveValType::S64 | PrimitiveValType::U64 => lowered_types.push(ValType::I64),
135
+ PrimitiveValType::Float32 => lowered_types.push(ValType::F32),
136
+ PrimitiveValType::Float64 => lowered_types.push(ValType::F64),
137
+ PrimitiveValType::String => {
138
+ lowered_types.push(ValType::I32) && lowered_types.push(ValType::I32)
139
+ }
140
+ }
141
+ }
142
+
143
+ /// Represents a unique identifier for a type known to a [`crate::Validator`].
144
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
145
+ #[repr(C)] // use fixed field layout to ensure minimal size
146
+ pub struct TypeId {
147
+ /// The index into the global list of types.
148
+ pub(crate) index: usize,
149
+ /// Metadata about this type and its recursive structure.
150
+ pub(crate) info: TypeInfo,
151
+ /// A unique integer assigned to this type.
152
+ ///
153
+ /// The purpose of this field is to ensure that two different `TypeId`
154
+ /// representations can be handed out for two different aliased types within
155
+ /// a component that actually point to the same underlying type (as pointed
156
+ /// to by the `index` field).
157
+ unique_id: u32,
158
+ }
159
+
160
+ // The size of `TypeId` was seen to have a large-ish impact in #844, so this
161
+ // assert ensures that it stays relatively small.
162
+ const _: () = {
163
+ assert!(std::mem::size_of::<TypeId>() <= 16);
164
+ };
165
+
166
+ /// Metadata about a type and its transitive structure.
167
+ ///
168
+ /// Currently contains two properties:
169
+ ///
170
+ /// * The "size" of a type - a proxy to the recursive size of a type if
171
+ /// everything in the type were unique (e.g. no shared references). Not an
172
+ /// approximation of runtime size, but instead of type-complexity size if
173
+ /// someone were to visit each element of the type individually. For example
174
+ /// `u32` has size 1 and `(list u32)` has size 2 (roughly). Used to prevent
175
+ /// massive trees of types.
176
+ ///
177
+ /// * Whether or not a type contains a "borrow" transitively inside of it. For
178
+ /// example `(borrow $t)` and `(list (borrow $t))` both contain borrows, but
179
+ /// `(list u32)` does not. Used to validate that component function results do
180
+ /// not contain borrows.
181
+ ///
182
+ /// Currently this is represented as a compact 32-bit integer to ensure that
183
+ /// `TypeId`, which this is stored in, remains relatively small. The maximum
184
+ /// type size allowed in wasmparser is 1M at this time which is 20 bits of
185
+ /// information, and then one more bit is used for whether or not a borrow is
186
+ /// used. Currently this uses the low 24 bits for the type size and the MSB for
187
+ /// the borrow bit.
188
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
189
+ pub(crate) struct TypeInfo(u32);
190
+
191
+ impl TypeInfo {
192
+ /// Creates a new blank set of type information.
193
+ ///
194
+ /// Defaults to size 1 to ensure that this consumes space in the final type
195
+ /// structure.
196
+ pub(crate) fn new() -> TypeInfo {
197
+ TypeInfo::_new(1, false)
198
+ }
199
+
200
+ /// Creates a new blank set of information about a leaf "borrow" type which
201
+ /// has size 1.
202
+ pub(crate) fn borrow() -> TypeInfo {
203
+ TypeInfo::_new(1, true)
204
+ }
205
+
206
+ /// Creates type information corresponding to a core type of the `size`
207
+ /// specified, meaning no borrows are contained within.
208
+ pub(crate) fn core(size: u32) -> TypeInfo {
209
+ TypeInfo::_new(size, false)
210
+ }
211
+
212
+ fn _new(size: u32, contains_borrow: bool) -> TypeInfo {
213
+ assert!(size < (1 << 24));
214
+ TypeInfo(size | ((contains_borrow as u32) << 31))
215
+ }
216
+
217
+ /// Combines another set of type information into this one, for example if
218
+ /// this is a record which has `other` as a field.
219
+ ///
220
+ /// Updates the size of `self` and whether or not this type contains a
221
+ /// borrow based on whether `other` contains a borrow.
222
+ ///
223
+ /// Returns an error if the type size would exceed this crate's static limit
224
+ /// of a type size.
225
+ pub(crate) fn combine(&mut self, other: TypeInfo, offset: usize) -> Result<()> {
226
+ *self = TypeInfo::_new(
227
+ super::combine_type_sizes(self.size(), other.size(), offset)?,
228
+ self.contains_borrow() || other.contains_borrow(),
229
+ );
230
+ Ok(())
231
+ }
232
+
233
+ pub(crate) fn size(&self) -> u32 {
234
+ self.0 & 0xffffff
235
+ }
236
+
237
+ pub(crate) fn contains_borrow(&self) -> bool {
238
+ (self.0 >> 31) != 0
239
+ }
240
+ }
241
+
242
+ /// A unified type definition for validating WebAssembly modules and components.
243
+ #[derive(Debug)]
244
+ pub enum Type {
245
+ /// The definition is for a sub type.
246
+ Sub(SubType),
247
+ /// The definition is for a core module type.
248
+ ///
249
+ /// This variant is only supported when parsing a component.
250
+ Module(Box<ModuleType>),
251
+ /// The definition is for a core module instance type.
252
+ ///
253
+ /// This variant is only supported when parsing a component.
254
+ Instance(Box<InstanceType>),
255
+ /// The definition is for a component type.
256
+ ///
257
+ /// This variant is only supported when parsing a component.
258
+ Component(Box<ComponentType>),
259
+ /// The definition is for a component instance type.
260
+ ///
261
+ /// This variant is only supported when parsing a component.
262
+ ComponentInstance(Box<ComponentInstanceType>),
263
+ /// The definition is for a component function type.
264
+ ///
265
+ /// This variant is only supported when parsing a component.
266
+ ComponentFunc(ComponentFuncType),
267
+ /// The definition is for a component defined type.
268
+ ///
269
+ /// This variant is only supported when parsing a component.
270
+ Defined(ComponentDefinedType),
271
+ /// This definition is for a resource type in the component model.
272
+ ///
273
+ /// Each resource is identified by a unique identifier specified here.
274
+ Resource(ResourceId),
275
+ }
276
+
277
+ impl Type {
278
+ /// Converts the type to a core function type.
279
+ pub fn unwrap_func(&self) -> &FuncType {
280
+ match self {
281
+ Type::Sub(SubType {
282
+ structural_type: StructuralType::Func(ft),
283
+ ..
284
+ }) => ft,
285
+ _ => panic!("not a function type"),
286
+ }
287
+ }
288
+
289
+ /// Converts the type to an array type.
290
+ pub fn unwrap_array(&self) -> &ArrayType {
291
+ match self {
292
+ Self::Sub(SubType {
293
+ structural_type: StructuralType::Array(ty),
294
+ ..
295
+ }) => ty,
296
+ _ => panic!("not an array type"),
297
+ }
298
+ }
299
+
300
+ /// Converts the type to a struct type.
301
+ pub fn unwrap_struct(&self) -> &StructType {
302
+ match self {
303
+ Self::Sub(SubType {
304
+ structural_type: StructuralType::Struct(ty),
305
+ ..
306
+ }) => ty,
307
+ _ => panic!("not a struct type"),
308
+ }
309
+ }
310
+
311
+ /// Converts the type to a core module type.
312
+ pub fn unwrap_module(&self) -> &ModuleType {
313
+ match self {
314
+ Self::Module(ty) => ty,
315
+ _ => panic!("not a module type"),
316
+ }
317
+ }
318
+
319
+ /// Converts the type to a core module instance type.
320
+ pub fn unwrap_instance(&self) -> &InstanceType {
321
+ match self {
322
+ Self::Instance(ty) => ty,
323
+ _ => panic!("not an instance type"),
324
+ }
325
+ }
326
+
327
+ /// Converts the type to a component type.
328
+ pub fn unwrap_component(&self) -> &ComponentType {
329
+ match self {
330
+ Self::Component(ty) => ty,
331
+ _ => panic!("not a component type"),
332
+ }
333
+ }
334
+
335
+ /// Converts the type to a component instance type.
336
+ pub fn unwrap_component_instance(&self) -> &ComponentInstanceType {
337
+ match self {
338
+ Self::ComponentInstance(ty) => ty,
339
+ _ => panic!("not a component instance type"),
340
+ }
341
+ }
342
+
343
+ /// Converts the type to a component function type.
344
+ pub fn unwrap_component_func(&self) -> &ComponentFuncType {
345
+ match self {
346
+ Self::ComponentFunc(ty) => ty,
347
+ _ => panic!("not a component function type"),
348
+ }
349
+ }
350
+
351
+ /// Converts the type to a component defined type.
352
+ pub fn unwrap_defined(&self) -> &ComponentDefinedType {
353
+ match self {
354
+ Self::Defined(ty) => ty,
355
+ _ => panic!("not a defined type"),
356
+ }
357
+ }
358
+
359
+ /// Converts this type to a resource type, returning the corresponding id.
360
+ pub fn unwrap_resource(&self) -> ResourceId {
361
+ match self {
362
+ Self::Resource(id) => *id,
363
+ _ => panic!("not a resource type"),
364
+ }
365
+ }
366
+
367
+ pub(crate) fn info(&self) -> TypeInfo {
368
+ // TODO(#1036): calculate actual size for func, array, struct
369
+ match self {
370
+ Self::Sub(ty) => {
371
+ let size = 1 + match ty.clone().structural_type {
372
+ StructuralType::Func(ty) => 1 + (ty.params().len() + ty.results().len()) as u32,
373
+ StructuralType::Array(_) => 2,
374
+ StructuralType::Struct(ty) => 1 + 2 * ty.fields.len() as u32,
375
+ };
376
+ TypeInfo::core(size)
377
+ }
378
+ Self::Module(ty) => ty.info,
379
+ Self::Instance(ty) => ty.info,
380
+ Self::Component(ty) => ty.info,
381
+ Self::ComponentInstance(ty) => ty.info,
382
+ Self::ComponentFunc(ty) => ty.info,
383
+ Self::Defined(ty) => ty.info(),
384
+ Self::Resource(_) => TypeInfo::new(),
385
+ }
386
+ }
387
+ }
388
+
389
+ /// A component value type.
390
+ #[derive(Debug, Clone, Copy)]
391
+ pub enum ComponentValType {
392
+ /// The value type is one of the primitive types.
393
+ Primitive(PrimitiveValType),
394
+ /// The type is represented with the given type identifier.
395
+ Type(TypeId),
396
+ }
397
+
398
+ impl ComponentValType {
399
+ pub(crate) fn contains_ptr(&self, types: &TypeList) -> bool {
400
+ match self {
401
+ ComponentValType::Primitive(ty) => ty.contains_ptr(),
402
+ ComponentValType::Type(ty) => types[*ty].unwrap_defined().contains_ptr(types),
403
+ }
404
+ }
405
+
406
+ fn push_wasm_types(&self, types: &TypeList, lowered_types: &mut LoweredTypes) -> bool {
407
+ match self {
408
+ Self::Primitive(ty) => push_primitive_wasm_types(ty, lowered_types),
409
+ Self::Type(id) => types[*id]
410
+ .unwrap_defined()
411
+ .push_wasm_types(types, lowered_types),
412
+ }
413
+ }
414
+
415
+ pub(crate) fn info(&self) -> TypeInfo {
416
+ match self {
417
+ Self::Primitive(_) => TypeInfo::new(),
418
+ Self::Type(id) => id.info,
419
+ }
420
+ }
421
+ }
422
+
423
+ /// The entity type for imports and exports of a module.
424
+ #[derive(Debug, Clone, Copy)]
425
+ pub enum EntityType {
426
+ /// The entity is a function.
427
+ Func(TypeId),
428
+ /// The entity is a table.
429
+ Table(TableType),
430
+ /// The entity is a memory.
431
+ Memory(MemoryType),
432
+ /// The entity is a global.
433
+ Global(GlobalType),
434
+ /// The entity is a tag.
435
+ Tag(TypeId),
436
+ }
437
+
438
+ impl EntityType {
439
+ pub(crate) fn desc(&self) -> &'static str {
440
+ match self {
441
+ Self::Func(_) => "func",
442
+ Self::Table(_) => "table",
443
+ Self::Memory(_) => "memory",
444
+ Self::Global(_) => "global",
445
+ Self::Tag(_) => "tag",
446
+ }
447
+ }
448
+
449
+ pub(crate) fn info(&self) -> TypeInfo {
450
+ match self {
451
+ Self::Func(id) | Self::Tag(id) => id.info,
452
+ Self::Table(_) | Self::Memory(_) | Self::Global(_) => TypeInfo::new(),
453
+ }
454
+ }
455
+ }
456
+
457
+ trait ModuleImportKey {
458
+ fn module(&self) -> &str;
459
+ fn name(&self) -> &str;
460
+ }
461
+
462
+ impl<'a> Borrow<dyn ModuleImportKey + 'a> for (String, String) {
463
+ fn borrow(&self) -> &(dyn ModuleImportKey + 'a) {
464
+ self
465
+ }
466
+ }
467
+
468
+ impl Hash for (dyn ModuleImportKey + '_) {
469
+ fn hash<H: Hasher>(&self, state: &mut H) {
470
+ self.module().hash(state);
471
+ self.name().hash(state);
472
+ }
473
+ }
474
+
475
+ impl PartialEq for (dyn ModuleImportKey + '_) {
476
+ fn eq(&self, other: &Self) -> bool {
477
+ self.module() == other.module() && self.name() == other.name()
478
+ }
479
+ }
480
+
481
+ impl Eq for (dyn ModuleImportKey + '_) {}
482
+
483
+ impl ModuleImportKey for (String, String) {
484
+ fn module(&self) -> &str {
485
+ &self.0
486
+ }
487
+
488
+ fn name(&self) -> &str {
489
+ &self.1
490
+ }
491
+ }
492
+
493
+ impl ModuleImportKey for (&str, &str) {
494
+ fn module(&self) -> &str {
495
+ self.0
496
+ }
497
+
498
+ fn name(&self) -> &str {
499
+ self.1
500
+ }
501
+ }
502
+
503
+ /// Represents a core module type.
504
+ #[derive(Debug, Clone)]
505
+ pub struct ModuleType {
506
+ /// Metadata about this module type
507
+ pub(crate) info: TypeInfo,
508
+ /// The imports of the module type.
509
+ pub imports: IndexMap<(String, String), EntityType>,
510
+ /// The exports of the module type.
511
+ pub exports: IndexMap<String, EntityType>,
512
+ }
513
+
514
+ impl ModuleType {
515
+ /// Looks up an import by its module and name.
516
+ ///
517
+ /// Returns `None` if the import was not found.
518
+ pub fn lookup_import(&self, module: &str, name: &str) -> Option<&EntityType> {
519
+ self.imports.get(&(module, name) as &dyn ModuleImportKey)
520
+ }
521
+ }
522
+
523
+ /// Represents the kind of module instance type.
524
+ #[derive(Debug, Clone)]
525
+ pub enum InstanceTypeKind {
526
+ /// The instance type is the result of instantiating a module type.
527
+ Instantiated(TypeId),
528
+ /// The instance type is the result of instantiating from exported items.
529
+ Exports(IndexMap<String, EntityType>),
530
+ }
531
+
532
+ /// Represents a module instance type.
533
+ #[derive(Debug, Clone)]
534
+ pub struct InstanceType {
535
+ /// Metadata about this instance type
536
+ pub(crate) info: TypeInfo,
537
+ /// The kind of module instance type.
538
+ pub kind: InstanceTypeKind,
539
+ }
540
+
541
+ impl InstanceType {
542
+ /// Gets the exports of the instance type.
543
+ pub fn exports<'a>(&'a self, types: TypesRef<'a>) -> &'a IndexMap<String, EntityType> {
544
+ self.internal_exports(types.list)
545
+ }
546
+
547
+ pub(crate) fn internal_exports<'a>(
548
+ &'a self,
549
+ types: &'a TypeList,
550
+ ) -> &'a IndexMap<String, EntityType> {
551
+ match &self.kind {
552
+ InstanceTypeKind::Instantiated(id) => &types[*id].unwrap_module().exports,
553
+ InstanceTypeKind::Exports(exports) => exports,
554
+ }
555
+ }
556
+ }
557
+
558
+ /// The entity type for imports and exports of a component.
559
+ #[derive(Debug, Clone, Copy)]
560
+ pub enum ComponentEntityType {
561
+ /// The entity is a core module.
562
+ Module(TypeId),
563
+ /// The entity is a function.
564
+ Func(TypeId),
565
+ /// The entity is a value.
566
+ Value(ComponentValType),
567
+ /// The entity is a type.
568
+ Type {
569
+ /// This is the identifier of the type that was referenced when this
570
+ /// entity was created.
571
+ referenced: TypeId,
572
+ /// This is the identifier of the type that was created when this type
573
+ /// was imported or exported from the component.
574
+ ///
575
+ /// Note that the underlying type information for the `referenced`
576
+ /// field and for this `created` field is the same, but these two types
577
+ /// will hash to different values.
578
+ created: TypeId,
579
+ },
580
+ /// The entity is a component instance.
581
+ Instance(TypeId),
582
+ /// The entity is a component.
583
+ Component(TypeId),
584
+ }
585
+
586
+ impl ComponentEntityType {
587
+ /// Determines if component entity type `a` is a subtype of `b`.
588
+ pub fn is_subtype_of(a: &Self, at: TypesRef, b: &Self, bt: TypesRef) -> bool {
589
+ SubtypeCx::new(at.list, bt.list)
590
+ .component_entity_type(a, b, 0)
591
+ .is_ok()
592
+ }
593
+
594
+ pub(crate) fn desc(&self) -> &'static str {
595
+ match self {
596
+ Self::Module(_) => "module",
597
+ Self::Func(_) => "func",
598
+ Self::Value(_) => "value",
599
+ Self::Type { .. } => "type",
600
+ Self::Instance(_) => "instance",
601
+ Self::Component(_) => "component",
602
+ }
603
+ }
604
+
605
+ pub(crate) fn info(&self) -> TypeInfo {
606
+ match self {
607
+ Self::Module(ty)
608
+ | Self::Func(ty)
609
+ | Self::Type { referenced: ty, .. }
610
+ | Self::Instance(ty)
611
+ | Self::Component(ty) => ty.info,
612
+ Self::Value(ty) => ty.info(),
613
+ }
614
+ }
615
+ }
616
+
617
+ /// Represents a type of a component.
618
+ #[derive(Debug, Clone)]
619
+ pub struct ComponentType {
620
+ /// Metadata about this component type
621
+ pub(crate) info: TypeInfo,
622
+
623
+ /// The imports of the component type.
624
+ ///
625
+ /// Each import has its own kebab-name and an optional URL listed. Note that
626
+ /// the set of import names is disjoint with the set of export names.
627
+ pub imports: IndexMap<String, ComponentEntityType>,
628
+
629
+ /// The exports of the component type.
630
+ ///
631
+ /// Each export has its own kebab-name and an optional URL listed. Note that
632
+ /// the set of export names is disjoint with the set of import names.
633
+ pub exports: IndexMap<String, ComponentEntityType>,
634
+
635
+ /// Universally quantified resources required to be provided when
636
+ /// instantiating this component type.
637
+ ///
638
+ /// Each resource in this map is explicitly imported somewhere in the
639
+ /// `imports` map. The "path" to where it's imported is specified by the
640
+ /// `Vec<usize>` payload here. For more information about the indexes see
641
+ /// the documentation on `ComponentState::imported_resources`.
642
+ ///
643
+ /// This should technically be inferrable from the structure of `imports`,
644
+ /// but it's stored as an auxiliary set for subtype checking and
645
+ /// instantiation.
646
+ ///
647
+ /// Note that this is not a set of all resources referred to by the
648
+ /// `imports`. Instead it's only those created, relative to the internals of
649
+ /// this component, by the imports.
650
+ pub imported_resources: Vec<(ResourceId, Vec<usize>)>,
651
+
652
+ /// The dual of the `imported_resources`, or the set of defined
653
+ /// resources -- those created through the instantiation process which are
654
+ /// unique to this component.
655
+ ///
656
+ /// This set is similar to the `imported_resources` set but it's those
657
+ /// contained within the `exports`. Instantiating this component will
658
+ /// create fresh new versions of all of these resources. The path here is
659
+ /// within the `exports` array.
660
+ pub defined_resources: Vec<(ResourceId, Vec<usize>)>,
661
+
662
+ /// The set of all resources which are explicitly exported by this
663
+ /// component, and where they're exported.
664
+ ///
665
+ /// This mapping is stored separately from `defined_resources` to ensure
666
+ /// that it contains all exported resources, not just those which are
667
+ /// defined. That means that this can cover reexports of imported
668
+ /// resources, exports of local resources, or exports of closed-over
669
+ /// resources for example.
670
+ pub explicit_resources: IndexMap<ResourceId, Vec<usize>>,
671
+ }
672
+
673
+ /// Represents a type of a component instance.
674
+ #[derive(Debug, Clone)]
675
+ pub struct ComponentInstanceType {
676
+ /// Metadata about this instance type
677
+ pub(crate) info: TypeInfo,
678
+
679
+ /// The list of exports, keyed by name, that this instance has.
680
+ ///
681
+ /// An optional URL and type of each export is provided as well.
682
+ pub exports: IndexMap<String, ComponentEntityType>,
683
+
684
+ /// The list of "defined resources" or those which are closed over in
685
+ /// this instance type.
686
+ ///
687
+ /// This list is populated, for example, when the type of an instance is
688
+ /// declared and it contains its own resource type exports defined
689
+ /// internally. For example:
690
+ ///
691
+ /// ```wasm
692
+ /// (component
693
+ /// (type (instance
694
+ /// (export "x" (type sub resource)) ;; one `defined_resources` entry
695
+ /// ))
696
+ /// )
697
+ /// ```
698
+ ///
699
+ /// This list is also a bit of an oddity, however, because the type of a
700
+ /// concrete instance will always have this as empty. For example:
701
+ ///
702
+ /// ```wasm
703
+ /// (component
704
+ /// (type $t (instance (export "x" (type sub resource))))
705
+ ///
706
+ /// ;; the type of this instance has no defined resources
707
+ /// (import "i" (instance (type $t)))
708
+ /// )
709
+ /// ```
710
+ ///
711
+ /// This list ends up only being populated for instance types declared in a
712
+ /// module which aren't yet "attached" to anything. Once something is
713
+ /// instantiated, imported, exported, or otherwise refers to a concrete
714
+ /// instance then this list is always empty. For concrete instances
715
+ /// defined resources are tracked in the component state or component type.
716
+ pub defined_resources: Vec<ResourceId>,
717
+
718
+ /// The list of all resources that are explicitly exported from this
719
+ /// instance type along with the path they're exported at.
720
+ pub explicit_resources: IndexMap<ResourceId, Vec<usize>>,
721
+ }
722
+
723
+ /// Represents a type of a component function.
724
+ #[derive(Debug, Clone)]
725
+ pub struct ComponentFuncType {
726
+ /// Metadata about this function type.
727
+ pub(crate) info: TypeInfo,
728
+ /// The function parameters.
729
+ pub params: Box<[(KebabString, ComponentValType)]>,
730
+ /// The function's results.
731
+ pub results: Box<[(Option<KebabString>, ComponentValType)]>,
732
+ }
733
+
734
+ impl ComponentFuncType {
735
+ /// Lowers the component function type to core parameter and result types for the
736
+ /// canonical ABI.
737
+ pub(crate) fn lower(&self, types: &TypeList, is_lower: bool) -> LoweringInfo {
738
+ let mut info = LoweringInfo::default();
739
+
740
+ for (_, ty) in self.params.iter() {
741
+ // Check to see if `ty` has a pointer somewhere in it, needed for
742
+ // any type that transitively contains either a string or a list.
743
+ // In this situation lowered functions must specify `memory`, and
744
+ // lifted functions must specify `realloc` as well. Lifted functions
745
+ // gain their memory requirement through the final clause of this
746
+ // function.
747
+ if is_lower {
748
+ if !info.requires_memory {
749
+ info.requires_memory = ty.contains_ptr(types);
750
+ }
751
+ } else {
752
+ if !info.requires_realloc {
753
+ info.requires_realloc = ty.contains_ptr(types);
754
+ }
755
+ }
756
+
757
+ if !ty.push_wasm_types(types, &mut info.params) {
758
+ // Too many parameters to pass directly
759
+ // Function will have a single pointer parameter to pass the arguments
760
+ // via linear memory
761
+ info.params.clear();
762
+ assert!(info.params.push(ValType::I32));
763
+ info.requires_memory = true;
764
+
765
+ // We need realloc as well when lifting a function
766
+ if !is_lower {
767
+ info.requires_realloc = true;
768
+ }
769
+ break;
770
+ }
771
+ }
772
+
773
+ for (_, ty) in self.results.iter() {
774
+ // Results of lowered functions that contains pointers must be
775
+ // allocated by the callee meaning that realloc is required.
776
+ // Results of lifted function are allocated by the guest which
777
+ // means that no realloc option is necessary.
778
+ if is_lower && !info.requires_realloc {
779
+ info.requires_realloc = ty.contains_ptr(types);
780
+ }
781
+
782
+ if !ty.push_wasm_types(types, &mut info.results) {
783
+ // Too many results to return directly, either a retptr parameter will be used (import)
784
+ // or a single pointer will be returned (export)
785
+ info.results.clear();
786
+ if is_lower {
787
+ info.params.max = MAX_LOWERED_TYPES;
788
+ assert!(info.params.push(ValType::I32));
789
+ } else {
790
+ assert!(info.results.push(ValType::I32));
791
+ }
792
+ info.requires_memory = true;
793
+ break;
794
+ }
795
+ }
796
+
797
+ // Memory is always required when realloc is required
798
+ info.requires_memory |= info.requires_realloc;
799
+
800
+ info
801
+ }
802
+ }
803
+
804
+ /// Represents a variant case.
805
+ #[derive(Debug, Clone)]
806
+ pub struct VariantCase {
807
+ /// The variant case type.
808
+ pub ty: Option<ComponentValType>,
809
+ /// The name of the variant case refined by this one.
810
+ pub refines: Option<KebabString>,
811
+ }
812
+
813
+ /// Represents a record type.
814
+ #[derive(Debug, Clone)]
815
+ pub struct RecordType {
816
+ /// Metadata about this record type.
817
+ pub(crate) info: TypeInfo,
818
+ /// The map of record fields.
819
+ pub fields: IndexMap<KebabString, ComponentValType>,
820
+ }
821
+
822
+ /// Represents a variant type.
823
+ #[derive(Debug, Clone)]
824
+ pub struct VariantType {
825
+ /// Metadata about this variant type.
826
+ pub(crate) info: TypeInfo,
827
+ /// The map of variant cases.
828
+ pub cases: IndexMap<KebabString, VariantCase>,
829
+ }
830
+
831
+ /// Represents a tuple type.
832
+ #[derive(Debug, Clone)]
833
+ pub struct TupleType {
834
+ /// Metadata about this tuple type.
835
+ pub(crate) info: TypeInfo,
836
+ /// The types of the tuple.
837
+ pub types: Box<[ComponentValType]>,
838
+ }
839
+
840
+ /// Represents a union type.
841
+ #[derive(Debug, Clone)]
842
+ pub struct UnionType {
843
+ /// Metadata about this union type.
844
+ pub(crate) info: TypeInfo,
845
+ /// The types of the union.
846
+ pub types: Box<[ComponentValType]>,
847
+ }
848
+
849
+ /// Represents a component defined type.
850
+ #[derive(Debug, Clone)]
851
+ pub enum ComponentDefinedType {
852
+ /// The type is a primitive value type.
853
+ Primitive(PrimitiveValType),
854
+ /// The type is a record.
855
+ Record(RecordType),
856
+ /// The type is a variant.
857
+ Variant(VariantType),
858
+ /// The type is a list.
859
+ List(ComponentValType),
860
+ /// The type is a tuple.
861
+ Tuple(TupleType),
862
+ /// The type is a set of flags.
863
+ Flags(IndexSet<KebabString>),
864
+ /// The type is an enumeration.
865
+ Enum(IndexSet<KebabString>),
866
+ /// The type is a union.
867
+ Union(UnionType),
868
+ /// The type is an `option`.
869
+ Option(ComponentValType),
870
+ /// The type is a `result`.
871
+ Result {
872
+ /// The `ok` type.
873
+ ok: Option<ComponentValType>,
874
+ /// The `error` type.
875
+ err: Option<ComponentValType>,
876
+ },
877
+ /// The type is an owned handle to the specified resource.
878
+ Own(TypeId),
879
+ /// The type is a borrowed handle to the specified resource.
880
+ Borrow(TypeId),
881
+ }
882
+
883
+ impl ComponentDefinedType {
884
+ pub(crate) fn contains_ptr(&self, types: &TypeList) -> bool {
885
+ match self {
886
+ Self::Primitive(ty) => ty.contains_ptr(),
887
+ Self::Record(r) => r.fields.values().any(|ty| ty.contains_ptr(types)),
888
+ Self::Variant(v) => v
889
+ .cases
890
+ .values()
891
+ .any(|case| case.ty.map(|ty| ty.contains_ptr(types)).unwrap_or(false)),
892
+ Self::List(_) => true,
893
+ Self::Tuple(t) => t.types.iter().any(|ty| ty.contains_ptr(types)),
894
+ Self::Union(u) => u.types.iter().any(|ty| ty.contains_ptr(types)),
895
+ Self::Flags(_) | Self::Enum(_) | Self::Own(_) | Self::Borrow(_) => false,
896
+ Self::Option(ty) => ty.contains_ptr(types),
897
+ Self::Result { ok, err } => {
898
+ ok.map(|ty| ty.contains_ptr(types)).unwrap_or(false)
899
+ || err.map(|ty| ty.contains_ptr(types)).unwrap_or(false)
900
+ }
901
+ }
902
+ }
903
+
904
+ pub(crate) fn info(&self) -> TypeInfo {
905
+ match self {
906
+ Self::Primitive(_) | Self::Flags(_) | Self::Enum(_) | Self::Own(_) => TypeInfo::new(),
907
+ Self::Borrow(_) => TypeInfo::borrow(),
908
+ Self::Record(r) => r.info,
909
+ Self::Variant(v) => v.info,
910
+ Self::Tuple(t) => t.info,
911
+ Self::Union(u) => u.info,
912
+ Self::List(ty) | Self::Option(ty) => ty.info(),
913
+ Self::Result { ok, err } => {
914
+ let default = TypeInfo::new();
915
+ let mut info = ok.map(|ty| ty.info()).unwrap_or(default);
916
+ info.combine(err.map(|ty| ty.info()).unwrap_or(default), 0)
917
+ .unwrap();
918
+ info
919
+ }
920
+ }
921
+ }
922
+
923
+ fn push_wasm_types(&self, types: &TypeList, lowered_types: &mut LoweredTypes) -> bool {
924
+ match self {
925
+ Self::Primitive(ty) => push_primitive_wasm_types(ty, lowered_types),
926
+ Self::Record(r) => r
927
+ .fields
928
+ .iter()
929
+ .all(|(_, ty)| ty.push_wasm_types(types, lowered_types)),
930
+ Self::Variant(v) => Self::push_variant_wasm_types(
931
+ v.cases.iter().filter_map(|(_, case)| case.ty.as_ref()),
932
+ types,
933
+ lowered_types,
934
+ ),
935
+ Self::List(_) => lowered_types.push(ValType::I32) && lowered_types.push(ValType::I32),
936
+ Self::Tuple(t) => t
937
+ .types
938
+ .iter()
939
+ .all(|ty| ty.push_wasm_types(types, lowered_types)),
940
+ Self::Flags(names) => {
941
+ (0..(names.len() + 31) / 32).all(|_| lowered_types.push(ValType::I32))
942
+ }
943
+ Self::Enum(_) | Self::Own(_) | Self::Borrow(_) => lowered_types.push(ValType::I32),
944
+ Self::Union(u) => Self::push_variant_wasm_types(u.types.iter(), types, lowered_types),
945
+ Self::Option(ty) => {
946
+ Self::push_variant_wasm_types([ty].into_iter(), types, lowered_types)
947
+ }
948
+ Self::Result { ok, err } => {
949
+ Self::push_variant_wasm_types(ok.iter().chain(err.iter()), types, lowered_types)
950
+ }
951
+ }
952
+ }
953
+
954
+ fn push_variant_wasm_types<'a>(
955
+ cases: impl Iterator<Item = &'a ComponentValType>,
956
+ types: &TypeList,
957
+ lowered_types: &mut LoweredTypes,
958
+ ) -> bool {
959
+ // Push the discriminant
960
+ if !lowered_types.push(ValType::I32) {
961
+ return false;
962
+ }
963
+
964
+ let start = lowered_types.len();
965
+
966
+ for ty in cases {
967
+ let mut temp = LoweredTypes::new(lowered_types.max);
968
+
969
+ if !ty.push_wasm_types(types, &mut temp) {
970
+ return false;
971
+ }
972
+
973
+ for (i, ty) in temp.iter().enumerate() {
974
+ match lowered_types.get_mut(start + i) {
975
+ Some(prev) => *prev = Self::join_types(*prev, ty),
976
+ None => {
977
+ if !lowered_types.push(ty) {
978
+ return false;
979
+ }
980
+ }
981
+ }
982
+ }
983
+ }
984
+
985
+ true
986
+ }
987
+
988
+ fn join_types(a: ValType, b: ValType) -> ValType {
989
+ use ValType::*;
990
+
991
+ match (a, b) {
992
+ (I32, I32) | (I64, I64) | (F32, F32) | (F64, F64) => a,
993
+ (I32, F32) | (F32, I32) => I32,
994
+ (_, I64 | F64) | (I64 | F64, _) => I64,
995
+ _ => panic!("unexpected wasm type for canonical ABI"),
996
+ }
997
+ }
998
+
999
+ fn desc(&self) -> &'static str {
1000
+ match self {
1001
+ ComponentDefinedType::Record(_) => "record",
1002
+ ComponentDefinedType::Primitive(_) => "primitive",
1003
+ ComponentDefinedType::Variant(_) => "variant",
1004
+ ComponentDefinedType::Tuple(_) => "tuple",
1005
+ ComponentDefinedType::Enum(_) => "enum",
1006
+ ComponentDefinedType::Flags(_) => "flags",
1007
+ ComponentDefinedType::Option(_) => "option",
1008
+ ComponentDefinedType::List(_) => "list",
1009
+ ComponentDefinedType::Union(_) => "union",
1010
+ ComponentDefinedType::Result { .. } => "result",
1011
+ ComponentDefinedType::Own(_) => "own",
1012
+ ComponentDefinedType::Borrow(_) => "borrow",
1013
+ }
1014
+ }
1015
+ }
1016
+
1017
+ /// An opaque identifier intended to be used to distinguish whether two
1018
+ /// resource types are equivalent or not.
1019
+ #[derive(Debug, Clone, PartialEq, Eq, Hash, Ord, PartialOrd, Copy)]
1020
+ #[repr(packed(4))] // try to not waste 4 bytes in padding
1021
+ pub struct ResourceId {
1022
+ // This is a globally unique identifier which is assigned once per
1023
+ // `TypeAlloc`. This ensures that resource identifiers from different
1024
+ // instances of `Types`, for example, are considered unique.
1025
+ //
1026
+ // Technically 64-bits should be enough for all resource ids ever, but
1027
+ // they're allocated so often it's predicted that an atomic increment
1028
+ // per resource id is probably too expensive. To amortize that cost each
1029
+ // top-level wasm component gets a single globally unique identifier, and
1030
+ // then within a component contextually unique identifiers are handed out.
1031
+ globally_unique_id: u64,
1032
+
1033
+ // A contextually unique id within the globally unique id above. This is
1034
+ // allocated within a `TypeAlloc` with its own counter, and allocations of
1035
+ // this are cheap as nothing atomic is required.
1036
+ //
1037
+ // The 32-bit storage here should ideally be enough for any component
1038
+ // containing resources. If memory usage becomes an issue (this struct is
1039
+ // 12 bytes instead of 8 or 4) then this coudl get folded into the globally
1040
+ // unique id with everything using an atomic increment perhaps.
1041
+ contextually_unique_id: u32,
1042
+ }
1043
+
1044
+ #[allow(clippy::large_enum_variant)]
1045
+ enum TypesKind {
1046
+ Module(Arc<Module>),
1047
+ Component(ComponentState),
1048
+ }
1049
+
1050
+ /// Represents the types known to a [`crate::Validator`] once validation has completed.
1051
+ ///
1052
+ /// The type information is returned via the [`crate::Validator::end`] method.
1053
+ pub struct Types {
1054
+ list: TypeList,
1055
+ kind: TypesKind,
1056
+ }
1057
+
1058
+ #[derive(Clone, Copy)]
1059
+ enum TypesRefKind<'a> {
1060
+ Module(&'a Module),
1061
+ Component(&'a ComponentState),
1062
+ }
1063
+
1064
+ /// Represents the types known to a [`crate::Validator`] during validation.
1065
+ ///
1066
+ /// Retrieved via the [`crate::Validator::types`] method.
1067
+ #[derive(Clone, Copy)]
1068
+ pub struct TypesRef<'a> {
1069
+ list: &'a TypeList,
1070
+ kind: TypesRefKind<'a>,
1071
+ }
1072
+
1073
+ impl<'a> TypesRef<'a> {
1074
+ pub(crate) fn from_module(types: &'a TypeList, module: &'a Module) -> Self {
1075
+ Self {
1076
+ list: types,
1077
+ kind: TypesRefKind::Module(module),
1078
+ }
1079
+ }
1080
+
1081
+ pub(crate) fn from_component(types: &'a TypeList, component: &'a ComponentState) -> Self {
1082
+ Self {
1083
+ list: types,
1084
+ kind: TypesRefKind::Component(component),
1085
+ }
1086
+ }
1087
+
1088
+ /// Gets a type based on its type id.
1089
+ ///
1090
+ /// Returns `None` if the type id is unknown.
1091
+ pub fn get(&self, id: TypeId) -> Option<&'a Type> {
1092
+ self.list.get(id.index)
1093
+ }
1094
+
1095
+ /// Gets a core WebAssembly type id from a type index.
1096
+ ///
1097
+ /// Note that this is in contrast to [`TypesRef::component_type_at`] which
1098
+ /// gets a component type from its index.
1099
+ ///
1100
+ /// # Panics
1101
+ ///
1102
+ /// This will panic if the `index` provided is out of bounds.
1103
+ pub fn core_type_at(&self, index: u32) -> TypeId {
1104
+ match &self.kind {
1105
+ TypesRefKind::Module(module) => module.types[index as usize],
1106
+ TypesRefKind::Component(component) => component.core_types[index as usize],
1107
+ }
1108
+ }
1109
+
1110
+ /// Gets a type id from a type index.
1111
+ ///
1112
+ /// # Panics
1113
+ ///
1114
+ /// Panics if `index` is not a valid function index or if this type
1115
+ /// information represents a core module.
1116
+ pub fn component_type_at(&self, index: u32) -> TypeId {
1117
+ match &self.kind {
1118
+ TypesRefKind::Module(_) => panic!("not a component"),
1119
+ TypesRefKind::Component(component) => component.types[index as usize],
1120
+ }
1121
+ }
1122
+
1123
+ /// Returns the number of core types defined so far.
1124
+ pub fn core_type_count(&self) -> u32 {
1125
+ match &self.kind {
1126
+ TypesRefKind::Module(module) => module.types.len() as u32,
1127
+ TypesRefKind::Component(component) => component.core_types.len() as u32,
1128
+ }
1129
+ }
1130
+
1131
+ /// Returns the number of component types defined so far.
1132
+ pub fn component_type_count(&self) -> u32 {
1133
+ match &self.kind {
1134
+ TypesRefKind::Module(_module) => 0,
1135
+ TypesRefKind::Component(component) => component.types.len() as u32,
1136
+ }
1137
+ }
1138
+
1139
+ /// Gets the type of a table at the given table index.
1140
+ ///
1141
+ /// # Panics
1142
+ ///
1143
+ /// This will panic if the `index` provided is out of bounds.
1144
+ pub fn table_at(&self, index: u32) -> TableType {
1145
+ let tables = match &self.kind {
1146
+ TypesRefKind::Module(module) => &module.tables,
1147
+ TypesRefKind::Component(component) => &component.core_tables,
1148
+ };
1149
+ tables[index as usize]
1150
+ }
1151
+
1152
+ /// Returns the number of tables defined so far.
1153
+ pub fn table_count(&self) -> u32 {
1154
+ match &self.kind {
1155
+ TypesRefKind::Module(module) => module.tables.len() as u32,
1156
+ TypesRefKind::Component(component) => component.core_tables.len() as u32,
1157
+ }
1158
+ }
1159
+
1160
+ /// Gets the type of a memory at the given memory index.
1161
+ ///
1162
+ /// # Panics
1163
+ ///
1164
+ /// This will panic if the `index` provided is out of bounds.
1165
+ pub fn memory_at(&self, index: u32) -> MemoryType {
1166
+ let memories = match &self.kind {
1167
+ TypesRefKind::Module(module) => &module.memories,
1168
+ TypesRefKind::Component(component) => &component.core_memories,
1169
+ };
1170
+
1171
+ memories[index as usize]
1172
+ }
1173
+
1174
+ /// Returns the number of memories defined so far.
1175
+ pub fn memory_count(&self) -> u32 {
1176
+ match &self.kind {
1177
+ TypesRefKind::Module(module) => module.memories.len() as u32,
1178
+ TypesRefKind::Component(component) => component.core_memories.len() as u32,
1179
+ }
1180
+ }
1181
+
1182
+ /// Gets the type of a global at the given global index.
1183
+ ///
1184
+ /// # Panics
1185
+ ///
1186
+ /// This will panic if the `index` provided is out of bounds.
1187
+ pub fn global_at(&self, index: u32) -> GlobalType {
1188
+ let globals = match &self.kind {
1189
+ TypesRefKind::Module(module) => &module.globals,
1190
+ TypesRefKind::Component(component) => &component.core_globals,
1191
+ };
1192
+
1193
+ globals[index as usize]
1194
+ }
1195
+
1196
+ /// Returns the number of globals defined so far.
1197
+ pub fn global_count(&self) -> u32 {
1198
+ match &self.kind {
1199
+ TypesRefKind::Module(module) => module.globals.len() as u32,
1200
+ TypesRefKind::Component(component) => component.core_globals.len() as u32,
1201
+ }
1202
+ }
1203
+
1204
+ /// Gets the type of a tag at the given tag index.
1205
+ ///
1206
+ /// # Panics
1207
+ ///
1208
+ /// This will panic if the `index` provided is out of bounds.
1209
+ pub fn tag_at(&self, index: u32) -> TypeId {
1210
+ let tags = match &self.kind {
1211
+ TypesRefKind::Module(module) => &module.tags,
1212
+ TypesRefKind::Component(component) => &component.core_tags,
1213
+ };
1214
+ tags[index as usize]
1215
+ }
1216
+
1217
+ /// Returns the number of tags defined so far.
1218
+ pub fn tag_count(&self) -> u32 {
1219
+ match &self.kind {
1220
+ TypesRefKind::Module(module) => module.tags.len() as u32,
1221
+ TypesRefKind::Component(component) => component.core_tags.len() as u32,
1222
+ }
1223
+ }
1224
+
1225
+ /// Gets the type of a core function at the given function index.
1226
+ ///
1227
+ /// # Panics
1228
+ ///
1229
+ /// This will panic if the `index` provided is out of bounds.
1230
+ pub fn function_at(&self, index: u32) -> TypeId {
1231
+ match &self.kind {
1232
+ TypesRefKind::Module(module) => module.types[module.functions[index as usize] as usize],
1233
+ TypesRefKind::Component(component) => component.core_funcs[index as usize],
1234
+ }
1235
+ }
1236
+
1237
+ /// Gets the count of core functions defined so far.
1238
+ ///
1239
+ /// Note that this includes imported functions, defined functions, and for
1240
+ /// components lowered/aliased functions.
1241
+ pub fn function_count(&self) -> u32 {
1242
+ match &self.kind {
1243
+ TypesRefKind::Module(module) => module.functions.len() as u32,
1244
+ TypesRefKind::Component(component) => component.core_funcs.len() as u32,
1245
+ }
1246
+ }
1247
+
1248
+ /// Gets the type of an element segment at the given element segment index.
1249
+ ///
1250
+ /// # Panics
1251
+ ///
1252
+ /// This will panic if the `index` provided is out of bounds.
1253
+ pub fn element_at(&self, index: u32) -> RefType {
1254
+ match &self.kind {
1255
+ TypesRefKind::Module(module) => module.element_types[index as usize],
1256
+ TypesRefKind::Component(_) => {
1257
+ panic!("no elements on a component")
1258
+ }
1259
+ }
1260
+ }
1261
+
1262
+ /// Returns the number of elements defined so far.
1263
+ pub fn element_count(&self) -> u32 {
1264
+ match &self.kind {
1265
+ TypesRefKind::Module(module) => module.element_types.len() as u32,
1266
+ TypesRefKind::Component(_) => 0,
1267
+ }
1268
+ }
1269
+
1270
+ /// Gets the type of a component function at the given function index.
1271
+ ///
1272
+ /// # Panics
1273
+ ///
1274
+ /// This will panic if the `index` provided is out of bounds or if this type
1275
+ /// information represents a core module.
1276
+ pub fn component_function_at(&self, index: u32) -> TypeId {
1277
+ match &self.kind {
1278
+ TypesRefKind::Module(_) => panic!("not a component"),
1279
+ TypesRefKind::Component(component) => component.funcs[index as usize],
1280
+ }
1281
+ }
1282
+
1283
+ /// Returns the number of component functions defined so far.
1284
+ pub fn component_function_count(&self) -> u32 {
1285
+ match &self.kind {
1286
+ TypesRefKind::Module(_module) => 0,
1287
+ TypesRefKind::Component(component) => component.funcs.len() as u32,
1288
+ }
1289
+ }
1290
+
1291
+ /// Gets the type of a module at the given module index.
1292
+ ///
1293
+ /// # Panics
1294
+ ///
1295
+ /// This will panic if the `index` provided is out of bounds or if this type
1296
+ /// information represents a core module.
1297
+ pub fn module_at(&self, index: u32) -> TypeId {
1298
+ match &self.kind {
1299
+ TypesRefKind::Module(_) => panic!("not a component"),
1300
+ TypesRefKind::Component(component) => component.core_modules[index as usize],
1301
+ }
1302
+ }
1303
+
1304
+ /// Returns the number of core wasm modules defined so far.
1305
+ pub fn module_count(&self) -> u32 {
1306
+ match &self.kind {
1307
+ TypesRefKind::Module(_module) => 0,
1308
+ TypesRefKind::Component(component) => component.core_modules.len() as u32,
1309
+ }
1310
+ }
1311
+
1312
+ /// Gets the type of a module instance at the given module instance index.
1313
+ ///
1314
+ /// # Panics
1315
+ ///
1316
+ /// This will panic if the `index` provided is out of bounds or if this type
1317
+ /// information represents a core module.
1318
+ pub fn instance_at(&self, index: u32) -> TypeId {
1319
+ match &self.kind {
1320
+ TypesRefKind::Module(_) => panic!("not a component"),
1321
+ TypesRefKind::Component(component) => component.core_instances[index as usize],
1322
+ }
1323
+ }
1324
+
1325
+ /// Returns the number of core wasm instances defined so far.
1326
+ pub fn instance_count(&self) -> u32 {
1327
+ match &self.kind {
1328
+ TypesRefKind::Module(_module) => 0,
1329
+ TypesRefKind::Component(component) => component.core_instances.len() as u32,
1330
+ }
1331
+ }
1332
+
1333
+ /// Gets the type of a component at the given component index.
1334
+ ///
1335
+ /// # Panics
1336
+ ///
1337
+ /// This will panic if the `index` provided is out of bounds or if this type
1338
+ /// information represents a core module.
1339
+ pub fn component_at(&self, index: u32) -> TypeId {
1340
+ match &self.kind {
1341
+ TypesRefKind::Module(_) => panic!("not a component"),
1342
+ TypesRefKind::Component(component) => component.components[index as usize],
1343
+ }
1344
+ }
1345
+
1346
+ /// Returns the number of components defined so far.
1347
+ pub fn component_count(&self) -> u32 {
1348
+ match &self.kind {
1349
+ TypesRefKind::Module(_module) => 0,
1350
+ TypesRefKind::Component(component) => component.components.len() as u32,
1351
+ }
1352
+ }
1353
+
1354
+ /// Gets the type of an component instance at the given component instance index.
1355
+ ///
1356
+ /// # Panics
1357
+ ///
1358
+ /// This will panic if the `index` provided is out of bounds or if this type
1359
+ /// information represents a core module.
1360
+ pub fn component_instance_at(&self, index: u32) -> TypeId {
1361
+ match &self.kind {
1362
+ TypesRefKind::Module(_) => panic!("not a component"),
1363
+ TypesRefKind::Component(component) => component.instances[index as usize],
1364
+ }
1365
+ }
1366
+
1367
+ /// Returns the number of component instances defined so far.
1368
+ pub fn component_instance_count(&self) -> u32 {
1369
+ match &self.kind {
1370
+ TypesRefKind::Module(_module) => 0,
1371
+ TypesRefKind::Component(component) => component.instances.len() as u32,
1372
+ }
1373
+ }
1374
+
1375
+ /// Gets the type of a value at the given value index.
1376
+ ///
1377
+ /// # Panics
1378
+ ///
1379
+ /// This will panic if the `index` provided is out of bounds or if this type
1380
+ /// information represents a core module.
1381
+ pub fn value_at(&self, index: u32) -> ComponentValType {
1382
+ match &self.kind {
1383
+ TypesRefKind::Module(_) => panic!("not a component"),
1384
+ TypesRefKind::Component(component) => component.values[index as usize].0,
1385
+ }
1386
+ }
1387
+
1388
+ /// Gets the entity type for the given import.
1389
+ pub fn entity_type_from_import(&self, import: &Import) -> Option<EntityType> {
1390
+ match &self.kind {
1391
+ TypesRefKind::Module(module) => Some(match import.ty {
1392
+ TypeRef::Func(idx) => EntityType::Func(*module.types.get(idx as usize)?),
1393
+ TypeRef::Table(ty) => EntityType::Table(ty),
1394
+ TypeRef::Memory(ty) => EntityType::Memory(ty),
1395
+ TypeRef::Global(ty) => EntityType::Global(ty),
1396
+ TypeRef::Tag(ty) => EntityType::Tag(*module.types.get(ty.func_type_idx as usize)?),
1397
+ }),
1398
+ TypesRefKind::Component(_) => None,
1399
+ }
1400
+ }
1401
+
1402
+ /// Gets the entity type from the given export.
1403
+ pub fn entity_type_from_export(&self, export: &Export) -> Option<EntityType> {
1404
+ match &self.kind {
1405
+ TypesRefKind::Module(module) => Some(match export.kind {
1406
+ ExternalKind::Func => EntityType::Func(
1407
+ module.types[*module.functions.get(export.index as usize)? as usize],
1408
+ ),
1409
+ ExternalKind::Table => {
1410
+ EntityType::Table(*module.tables.get(export.index as usize)?)
1411
+ }
1412
+ ExternalKind::Memory => {
1413
+ EntityType::Memory(*module.memories.get(export.index as usize)?)
1414
+ }
1415
+ ExternalKind::Global => {
1416
+ EntityType::Global(*module.globals.get(export.index as usize)?)
1417
+ }
1418
+ ExternalKind::Tag => EntityType::Tag(
1419
+ module.types[*module.functions.get(export.index as usize)? as usize],
1420
+ ),
1421
+ }),
1422
+ TypesRefKind::Component(_) => None,
1423
+ }
1424
+ }
1425
+
1426
+ /// Gets the component entity type for the given component import.
1427
+ pub fn component_entity_type_of_import(&self, name: &str) -> Option<ComponentEntityType> {
1428
+ match &self.kind {
1429
+ TypesRefKind::Module(_) => None,
1430
+ TypesRefKind::Component(component) => Some(*component.imports.get(name)?),
1431
+ }
1432
+ }
1433
+
1434
+ /// Gets the component entity type for the given component export.
1435
+ pub fn component_entity_type_of_export(&self, name: &str) -> Option<ComponentEntityType> {
1436
+ match &self.kind {
1437
+ TypesRefKind::Module(_) => None,
1438
+ TypesRefKind::Component(component) => Some(*component.exports.get(name)?),
1439
+ }
1440
+ }
1441
+ }
1442
+
1443
+ impl Index<TypeId> for TypesRef<'_> {
1444
+ type Output = Type;
1445
+ fn index(&self, id: TypeId) -> &Type {
1446
+ &self.list[id.index]
1447
+ }
1448
+ }
1449
+
1450
+ impl Types {
1451
+ pub(crate) fn from_module(types: TypeList, module: Arc<Module>) -> Self {
1452
+ Self {
1453
+ list: types,
1454
+ kind: TypesKind::Module(module),
1455
+ }
1456
+ }
1457
+
1458
+ pub(crate) fn from_component(types: TypeList, component: ComponentState) -> Self {
1459
+ Self {
1460
+ list: types,
1461
+ kind: TypesKind::Component(component),
1462
+ }
1463
+ }
1464
+
1465
+ /// Gets a reference to this validation type information.
1466
+ pub fn as_ref(&self) -> TypesRef {
1467
+ TypesRef {
1468
+ list: &self.list,
1469
+ kind: match &self.kind {
1470
+ TypesKind::Module(module) => TypesRefKind::Module(module),
1471
+ TypesKind::Component(component) => TypesRefKind::Component(component),
1472
+ },
1473
+ }
1474
+ }
1475
+
1476
+ /// Gets a type based on its type id.
1477
+ ///
1478
+ /// Returns `None` if the type id is unknown.
1479
+ pub fn get(&self, id: TypeId) -> Option<&Type> {
1480
+ self.as_ref().get(id)
1481
+ }
1482
+
1483
+ /// Gets a core WebAssembly type at the given type index.
1484
+ ///
1485
+ /// Note that this is in contrast to [`TypesRef::component_type_at`] which
1486
+ /// gets a component type from its index.
1487
+ ///
1488
+ /// # Panics
1489
+ ///
1490
+ /// Panics if `index` is not a valid function index.
1491
+ pub fn core_type_at(&self, index: u32) -> TypeId {
1492
+ self.as_ref().core_type_at(index)
1493
+ }
1494
+
1495
+ /// Gets a component type from the given component type index.
1496
+ ///
1497
+ /// # Panics
1498
+ ///
1499
+ /// Panics if `index` is not a valid function index or if this type
1500
+ /// information represents a core module.
1501
+ pub fn component_type_at(&self, index: u32) -> TypeId {
1502
+ self.as_ref().component_type_at(index)
1503
+ }
1504
+
1505
+ /// Gets the count of core types.
1506
+ pub fn type_count(&self) -> usize {
1507
+ match &self.kind {
1508
+ TypesKind::Module(module) => module.types.len(),
1509
+ TypesKind::Component(component) => component.core_types.len(),
1510
+ }
1511
+ }
1512
+
1513
+ /// Gets the type of a table at the given table index.
1514
+ ///
1515
+ /// # Panics
1516
+ ///
1517
+ /// Panics if `index` is not a valid function index.
1518
+ pub fn table_at(&self, index: u32) -> TableType {
1519
+ self.as_ref().table_at(index)
1520
+ }
1521
+
1522
+ /// Gets the count of imported and defined tables.
1523
+ pub fn table_count(&self) -> usize {
1524
+ match &self.kind {
1525
+ TypesKind::Module(module) => module.tables.len(),
1526
+ TypesKind::Component(component) => component.core_tables.len(),
1527
+ }
1528
+ }
1529
+
1530
+ /// Gets the type of a memory at the given memory index.
1531
+ ///
1532
+ /// # Panics
1533
+ ///
1534
+ /// Panics if `index` is not a valid function index.
1535
+ pub fn memory_at(&self, index: u32) -> MemoryType {
1536
+ self.as_ref().memory_at(index)
1537
+ }
1538
+
1539
+ /// Gets the count of imported and defined memories.
1540
+ pub fn memory_count(&self) -> u32 {
1541
+ self.as_ref().memory_count()
1542
+ }
1543
+
1544
+ /// Gets the type of a global at the given global index.
1545
+ ///
1546
+ /// # Panics
1547
+ ///
1548
+ /// Panics if `index` is not a valid function index.
1549
+ pub fn global_at(&self, index: u32) -> GlobalType {
1550
+ self.as_ref().global_at(index)
1551
+ }
1552
+
1553
+ /// Gets the count of imported and defined globals.
1554
+ pub fn global_count(&self) -> u32 {
1555
+ self.as_ref().global_count()
1556
+ }
1557
+
1558
+ /// Gets the type of a tag at the given tag index.
1559
+ ///
1560
+ /// # Panics
1561
+ ///
1562
+ /// Panics if `index` is not a valid function index.
1563
+ pub fn tag_at(&self, index: u32) -> TypeId {
1564
+ self.as_ref().tag_at(index)
1565
+ }
1566
+
1567
+ /// Gets the count of imported and defined tags.
1568
+ pub fn tag_count(&self) -> u32 {
1569
+ self.as_ref().tag_count()
1570
+ }
1571
+
1572
+ /// Gets the type of a core function at the given function index.
1573
+ ///
1574
+ /// # Panics
1575
+ ///
1576
+ /// Panics if `index` is not a valid function index.
1577
+ pub fn function_at(&self, index: u32) -> TypeId {
1578
+ self.as_ref().function_at(index)
1579
+ }
1580
+
1581
+ /// Gets the count of core functions defined so far.
1582
+ ///
1583
+ /// Note that this includes imported functions, defined functions, and for
1584
+ /// components lowered/aliased functions.
1585
+ pub fn function_count(&self) -> u32 {
1586
+ self.as_ref().function_count()
1587
+ }
1588
+
1589
+ /// Gets the type of an element segment at the given element segment index.
1590
+ ///
1591
+ /// # Panics
1592
+ ///
1593
+ /// This will panic if the `index` provided is out of bounds.
1594
+ pub fn element_at(&self, index: u32) -> RefType {
1595
+ self.as_ref().element_at(index)
1596
+ }
1597
+
1598
+ /// Gets the count of element segments.
1599
+ pub fn element_count(&self) -> u32 {
1600
+ self.as_ref().element_count()
1601
+ }
1602
+
1603
+ /// Gets the type of a component function at the given function index.
1604
+ ///
1605
+ /// # Panics
1606
+ ///
1607
+ /// This will panic if the `index` provided is out of bounds or if this type
1608
+ /// information represents a core module.
1609
+ pub fn component_function_at(&self, index: u32) -> TypeId {
1610
+ self.as_ref().component_function_at(index)
1611
+ }
1612
+
1613
+ /// Gets the count of imported, exported, or aliased component functions.
1614
+ pub fn component_function_count(&self) -> u32 {
1615
+ self.as_ref().component_function_count()
1616
+ }
1617
+
1618
+ /// Gets the type of a module at the given module index.
1619
+ ///
1620
+ /// # Panics
1621
+ ///
1622
+ /// This will panic if the `index` provided is out of bounds or if this type
1623
+ /// information represents a core module.
1624
+ pub fn module_at(&self, index: u32) -> TypeId {
1625
+ self.as_ref().module_at(index)
1626
+ }
1627
+
1628
+ /// Gets the count of imported, exported, or aliased modules.
1629
+ pub fn module_count(&self) -> usize {
1630
+ match &self.kind {
1631
+ TypesKind::Module(_) => 0,
1632
+ TypesKind::Component(component) => component.core_modules.len(),
1633
+ }
1634
+ }
1635
+
1636
+ /// Gets the type of a module instance at the given module instance index.
1637
+ ///
1638
+ /// # Panics
1639
+ ///
1640
+ /// This will panic if the `index` provided is out of bounds or if this type
1641
+ /// information represents a core module.
1642
+ pub fn instance_at(&self, index: u32) -> TypeId {
1643
+ self.as_ref().instance_at(index)
1644
+ }
1645
+
1646
+ /// Gets the count of imported, exported, or aliased core module instances.
1647
+ pub fn instance_count(&self) -> usize {
1648
+ match &self.kind {
1649
+ TypesKind::Module(_) => 0,
1650
+ TypesKind::Component(component) => component.core_instances.len(),
1651
+ }
1652
+ }
1653
+
1654
+ /// Gets the type of a component at the given component index.
1655
+ ///
1656
+ /// # Panics
1657
+ ///
1658
+ /// This will panic if the `index` provided is out of bounds or if this type
1659
+ /// information represents a core module.
1660
+ pub fn component_at(&self, index: u32) -> TypeId {
1661
+ self.as_ref().component_at(index)
1662
+ }
1663
+
1664
+ /// Gets the count of imported, exported, or aliased components.
1665
+ pub fn component_count(&self) -> usize {
1666
+ match &self.kind {
1667
+ TypesKind::Module(_) => 0,
1668
+ TypesKind::Component(component) => component.components.len(),
1669
+ }
1670
+ }
1671
+
1672
+ /// Gets the type of an component instance at the given component instance index.
1673
+ ///
1674
+ /// # Panics
1675
+ ///
1676
+ /// This will panic if the `index` provided is out of bounds or if this type
1677
+ /// information represents a core module.
1678
+ pub fn component_instance_at(&self, index: u32) -> TypeId {
1679
+ self.as_ref().component_instance_at(index)
1680
+ }
1681
+
1682
+ /// Gets the count of imported, exported, or aliased component instances.
1683
+ pub fn component_instance_count(&self) -> usize {
1684
+ match &self.kind {
1685
+ TypesKind::Module(_) => 0,
1686
+ TypesKind::Component(component) => component.instances.len(),
1687
+ }
1688
+ }
1689
+
1690
+ /// Gets the type of a value at the given value index.
1691
+ ///
1692
+ /// # Panics
1693
+ ///
1694
+ /// This will panic if the `index` provided is out of bounds or if this type
1695
+ /// information represents a core module.
1696
+ pub fn value_at(&self, index: u32) -> ComponentValType {
1697
+ self.as_ref().value_at(index)
1698
+ }
1699
+
1700
+ /// Gets the count of imported, exported, or aliased values.
1701
+ pub fn value_count(&self) -> usize {
1702
+ match &self.kind {
1703
+ TypesKind::Module(_) => 0,
1704
+ TypesKind::Component(component) => component.values.len(),
1705
+ }
1706
+ }
1707
+
1708
+ /// Gets the entity type from the given import.
1709
+ pub fn entity_type_from_import(&self, import: &Import) -> Option<EntityType> {
1710
+ self.as_ref().entity_type_from_import(import)
1711
+ }
1712
+
1713
+ /// Gets the entity type from the given export.
1714
+ pub fn entity_type_from_export(&self, export: &Export) -> Option<EntityType> {
1715
+ self.as_ref().entity_type_from_export(export)
1716
+ }
1717
+
1718
+ /// Gets the component entity type for the given component import name.
1719
+ pub fn component_entity_type_of_import(&self, name: &str) -> Option<ComponentEntityType> {
1720
+ self.as_ref().component_entity_type_of_import(name)
1721
+ }
1722
+
1723
+ /// Gets the component entity type for the given component export name.
1724
+ pub fn component_entity_type_of_export(&self, name: &str) -> Option<ComponentEntityType> {
1725
+ self.as_ref().component_entity_type_of_export(name)
1726
+ }
1727
+
1728
+ /// Attempts to lookup the type id that `ty` is an alias of.
1729
+ ///
1730
+ /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
1731
+ pub fn peel_alias(&self, ty: TypeId) -> Option<TypeId> {
1732
+ self.list.peel_alias(ty)
1733
+ }
1734
+ }
1735
+
1736
+ impl Index<TypeId> for Types {
1737
+ type Output = Type;
1738
+
1739
+ fn index(&self, id: TypeId) -> &Type {
1740
+ &self.list[id.index]
1741
+ }
1742
+ }
1743
+
1744
+ /// This is a type which mirrors a subset of the `Vec<T>` API, but is intended
1745
+ /// to be able to be cheaply snapshotted and cloned.
1746
+ ///
1747
+ /// When each module's code sections start we "commit" the current list of types
1748
+ /// in the global list of types. This means that the temporary `cur` vec here is
1749
+ /// pushed onto `snapshots` and wrapped up in an `Arc`. At that point we clone
1750
+ /// this entire list (which is then O(modules), not O(types in all modules)) and
1751
+ /// pass out as a context to each function validator.
1752
+ ///
1753
+ /// Otherwise, though, this type behaves as if it were a large `Vec<T>`, but
1754
+ /// it's represented by lists of contiguous chunks.
1755
+ pub(crate) struct SnapshotList<T> {
1756
+ // All previous snapshots, the "head" of the list that this type represents.
1757
+ // The first entry in this pair is the starting index for all elements
1758
+ // contained in the list, and the second element is the list itself. Note
1759
+ // the `Arc` wrapper around sub-lists, which makes cloning time for this
1760
+ // `SnapshotList` O(snapshots) rather than O(snapshots_total), which for
1761
+ // us in this context means the number of modules, not types.
1762
+ //
1763
+ // Note that this list is sorted least-to-greatest in order of the index for
1764
+ // binary searching.
1765
+ snapshots: Vec<Arc<Snapshot<T>>>,
1766
+
1767
+ // This is the total length of all lists in the `snapshots` array.
1768
+ snapshots_total: usize,
1769
+
1770
+ // The current list of types for the current snapshot that are being built.
1771
+ cur: Vec<T>,
1772
+
1773
+ unique_mappings: HashMap<u32, u32>,
1774
+ unique_counter: u32,
1775
+ }
1776
+
1777
+ struct Snapshot<T> {
1778
+ prior_types: usize,
1779
+ unique_counter: u32,
1780
+ unique_mappings: HashMap<u32, u32>,
1781
+ items: Vec<T>,
1782
+ }
1783
+
1784
+ impl<T> SnapshotList<T> {
1785
+ /// Same as `<&[T]>::get`
1786
+ pub(crate) fn get(&self, index: usize) -> Option<&T> {
1787
+ // Check to see if this index falls on our local list
1788
+ if index >= self.snapshots_total {
1789
+ return self.cur.get(index - self.snapshots_total);
1790
+ }
1791
+ // ... and failing that we do a binary search to figure out which bucket
1792
+ // it's in. Note the `i-1` in the `Err` case because if we don't find an
1793
+ // exact match the type is located in the previous bucket.
1794
+ let i = match self
1795
+ .snapshots
1796
+ .binary_search_by_key(&index, |snapshot| snapshot.prior_types)
1797
+ {
1798
+ Ok(i) => i,
1799
+ Err(i) => i - 1,
1800
+ };
1801
+ let snapshot = &self.snapshots[i];
1802
+ Some(&snapshot.items[index - snapshot.prior_types])
1803
+ }
1804
+
1805
+ /// Same as `Vec::push`
1806
+ pub(crate) fn push(&mut self, val: T) {
1807
+ self.cur.push(val);
1808
+ }
1809
+
1810
+ /// Same as `<[T]>::len`
1811
+ pub(crate) fn len(&self) -> usize {
1812
+ self.cur.len() + self.snapshots_total
1813
+ }
1814
+
1815
+ /// Reserve space for an additional count of items.
1816
+ pub(crate) fn reserve(&mut self, additional: usize) {
1817
+ self.cur.reserve(additional);
1818
+ }
1819
+
1820
+ /// Commits previously pushed types into this snapshot vector, and returns a
1821
+ /// clone of this list.
1822
+ ///
1823
+ /// The returned `SnapshotList` can be used to access all the same types as
1824
+ /// this list itself. This list also is not changed (from an external
1825
+ /// perspective) and can continue to access all the same types.
1826
+ pub(crate) fn commit(&mut self) -> SnapshotList<T> {
1827
+ // If the current chunk has new elements, commit them in to an
1828
+ // `Arc`-wrapped vector in the snapshots list. Note the `shrink_to_fit`
1829
+ // ahead of time to hopefully keep memory usage lower than it would
1830
+ // otherwise be. Additionally note that the `unique_counter` is bumped
1831
+ // here to ensure that the previous value of the unique counter is
1832
+ // never used for an actual type so it's suitable for lookup via a
1833
+ // binary search.
1834
+ let len = self.cur.len();
1835
+ if len > 0 {
1836
+ self.unique_counter += 1;
1837
+ self.cur.shrink_to_fit();
1838
+ self.snapshots.push(Arc::new(Snapshot {
1839
+ prior_types: self.snapshots_total,
1840
+ unique_counter: self.unique_counter - 1,
1841
+ unique_mappings: mem::take(&mut self.unique_mappings),
1842
+ items: mem::take(&mut self.cur),
1843
+ }));
1844
+ self.snapshots_total += len;
1845
+ }
1846
+ SnapshotList {
1847
+ snapshots: self.snapshots.clone(),
1848
+ snapshots_total: self.snapshots_total,
1849
+ unique_mappings: HashMap::new(),
1850
+ unique_counter: self.unique_counter,
1851
+ cur: Vec::new(),
1852
+ }
1853
+ }
1854
+
1855
+ /// Modifies a `TypeId` to have the same contents but a fresh new unique id.
1856
+ ///
1857
+ /// This is used during aliasing with components to assign types a unique
1858
+ /// identifier that isn't equivalent to anything else but still
1859
+ /// points to the same underlying type.
1860
+ pub fn with_unique(&mut self, mut ty: TypeId) -> TypeId {
1861
+ self.unique_mappings
1862
+ .insert(self.unique_counter, ty.unique_id);
1863
+ ty.unique_id = self.unique_counter;
1864
+ self.unique_counter += 1;
1865
+ ty
1866
+ }
1867
+
1868
+ /// Attempts to lookup the type id that `ty` is an alias of.
1869
+ ///
1870
+ /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
1871
+ pub fn peel_alias(&self, ty: TypeId) -> Option<TypeId> {
1872
+ // The unique counter in each snapshot is the unique counter at the
1873
+ // time of the snapshot so it's guaranteed to never be used, meaning
1874
+ // that `Ok` should never show up here. With an `Err` it's where the
1875
+ // index would be placed meaning that the index in question is the
1876
+ // smallest value over the unique id's value, meaning that slot has the
1877
+ // mapping we're interested in.
1878
+ let i = match self
1879
+ .snapshots
1880
+ .binary_search_by_key(&ty.unique_id, |snapshot| snapshot.unique_counter)
1881
+ {
1882
+ Ok(_) => unreachable!(),
1883
+ Err(i) => i,
1884
+ };
1885
+
1886
+ // If the `i` index is beyond the snapshot array then lookup in the
1887
+ // current mappings instead since it may refer to a type not snapshot
1888
+ // yet.
1889
+ let unique_id = match self.snapshots.get(i) {
1890
+ Some(snapshot) => *snapshot.unique_mappings.get(&ty.unique_id)?,
1891
+ None => *self.unique_mappings.get(&ty.unique_id)?,
1892
+ };
1893
+ Some(TypeId { unique_id, ..ty })
1894
+ }
1895
+ }
1896
+
1897
+ impl<T> Index<usize> for SnapshotList<T> {
1898
+ type Output = T;
1899
+
1900
+ #[inline]
1901
+ fn index(&self, index: usize) -> &T {
1902
+ self.get(index).unwrap()
1903
+ }
1904
+ }
1905
+
1906
+ impl<T> Index<TypeId> for SnapshotList<T> {
1907
+ type Output = T;
1908
+
1909
+ #[inline]
1910
+ fn index(&self, id: TypeId) -> &T {
1911
+ self.get(id.index).unwrap()
1912
+ }
1913
+ }
1914
+
1915
+ impl<T> Default for SnapshotList<T> {
1916
+ fn default() -> SnapshotList<T> {
1917
+ SnapshotList {
1918
+ snapshots: Vec::new(),
1919
+ snapshots_total: 0,
1920
+ cur: Vec::new(),
1921
+ unique_counter: 1,
1922
+ unique_mappings: HashMap::new(),
1923
+ }
1924
+ }
1925
+ }
1926
+
1927
+ /// A snapshot list of types.
1928
+ pub(crate) type TypeList = SnapshotList<Type>;
1929
+
1930
+ /// Thin wrapper around `TypeList` which provides an allocator of unique ids for
1931
+ /// types contained within this list.
1932
+ pub(crate) struct TypeAlloc {
1933
+ list: TypeList,
1934
+
1935
+ // This is assigned at creation of a `TypeAlloc` and then never changed.
1936
+ // It's used in one entry for all `ResourceId`s contained within.
1937
+ globally_unique_id: u64,
1938
+
1939
+ // This is a counter that's incremeneted each time `alloc_resource_id` is
1940
+ // called.
1941
+ next_resource_id: u32,
1942
+ }
1943
+
1944
+ impl Default for TypeAlloc {
1945
+ fn default() -> TypeAlloc {
1946
+ static NEXT_GLOBAL_ID: AtomicU64 = AtomicU64::new(0);
1947
+ TypeAlloc {
1948
+ list: TypeList::default(),
1949
+ globally_unique_id: NEXT_GLOBAL_ID.fetch_add(1, Ordering::Relaxed),
1950
+ next_resource_id: 0,
1951
+ }
1952
+ }
1953
+ }
1954
+
1955
+ impl Deref for TypeAlloc {
1956
+ type Target = TypeList;
1957
+ fn deref(&self) -> &TypeList {
1958
+ &self.list
1959
+ }
1960
+ }
1961
+
1962
+ impl DerefMut for TypeAlloc {
1963
+ fn deref_mut(&mut self) -> &mut TypeList {
1964
+ &mut self.list
1965
+ }
1966
+ }
1967
+
1968
+ impl TypeAlloc {
1969
+ /// Pushes a new type into this list, returning an identifier which can be
1970
+ /// used to later retrieve it.
1971
+ ///
1972
+ /// The returned identifier is unique within this `TypeAlloc` and won't be
1973
+ /// hash-equivalent to anything else.
1974
+ pub fn push_ty(&mut self, ty: Type) -> TypeId {
1975
+ let index = self.list.len();
1976
+ let info = ty.info();
1977
+ self.list.push(ty);
1978
+ TypeId {
1979
+ index,
1980
+ info,
1981
+ unique_id: 0,
1982
+ }
1983
+ }
1984
+
1985
+ /// Allocates a new unique resource identifier.
1986
+ ///
1987
+ /// Note that uniqueness is only a property within this `TypeAlloc`.
1988
+ pub fn alloc_resource_id(&mut self) -> ResourceId {
1989
+ let contextually_unique_id = self.next_resource_id;
1990
+ self.next_resource_id = self.next_resource_id.checked_add(1).unwrap();
1991
+ ResourceId {
1992
+ globally_unique_id: self.globally_unique_id,
1993
+ contextually_unique_id,
1994
+ }
1995
+ }
1996
+
1997
+ /// Adds the set of "free variables" of the `id` provided to the `set`
1998
+ /// provided.
1999
+ ///
2000
+ /// Free variables are defined as resources. Any resource, perhaps
2001
+ /// transitively, referred to but not defined by `id` is added to the `set`
2002
+ /// and returned.
2003
+ pub fn free_variables_type_id(&self, id: TypeId, set: &mut IndexSet<ResourceId>) {
2004
+ match &self[id] {
2005
+ // Core wasm constructs cannot reference resources.
2006
+ Type::Sub(_) | Type::Module(_) | Type::Instance(_) => {}
2007
+
2008
+ // Recurse on the imports/exports of components, but remove the
2009
+ // imported and defined resources within the component itself.
2010
+ //
2011
+ // Technically this needs to add all the free variables of the
2012
+ // exports, remove the defined resources, then add the free
2013
+ // variables of imports, then remove the imported resources. Given
2014
+ // prior validation of component types, however, the defined
2015
+ // and imported resources are disjoint and imports can't refer to
2016
+ // defined resources, so doing this all in one go should be
2017
+ // equivalent.
2018
+ Type::Component(i) => {
2019
+ for ty in i.imports.values().chain(i.exports.values()) {
2020
+ self.free_variables_component_entity(ty, set);
2021
+ }
2022
+ for (id, _path) in i.imported_resources.iter().chain(&i.defined_resources) {
2023
+ set.remove(id);
2024
+ }
2025
+ }
2026
+
2027
+ // Like components, add in all the free variables of referenced
2028
+ // types but then remove those defined by this component instance
2029
+ // itself.
2030
+ Type::ComponentInstance(i) => {
2031
+ for ty in i.exports.values() {
2032
+ self.free_variables_component_entity(ty, set);
2033
+ }
2034
+ for id in i.defined_resources.iter() {
2035
+ set.remove(id);
2036
+ }
2037
+ }
2038
+
2039
+ Type::Resource(r) => {
2040
+ set.insert(*r);
2041
+ }
2042
+
2043
+ Type::ComponentFunc(i) => {
2044
+ for ty in i
2045
+ .params
2046
+ .iter()
2047
+ .map(|(_, ty)| ty)
2048
+ .chain(i.results.iter().map(|(_, ty)| ty))
2049
+ {
2050
+ self.free_variables_valtype(ty, set);
2051
+ }
2052
+ }
2053
+
2054
+ Type::Defined(i) => match i {
2055
+ ComponentDefinedType::Primitive(_)
2056
+ | ComponentDefinedType::Flags(_)
2057
+ | ComponentDefinedType::Enum(_) => {}
2058
+ ComponentDefinedType::Record(r) => {
2059
+ for ty in r.fields.values() {
2060
+ self.free_variables_valtype(ty, set);
2061
+ }
2062
+ }
2063
+ ComponentDefinedType::Tuple(r) => {
2064
+ for ty in r.types.iter() {
2065
+ self.free_variables_valtype(ty, set);
2066
+ }
2067
+ }
2068
+ ComponentDefinedType::Union(r) => {
2069
+ for ty in r.types.iter() {
2070
+ self.free_variables_valtype(ty, set);
2071
+ }
2072
+ }
2073
+ ComponentDefinedType::Variant(r) => {
2074
+ for ty in r.cases.values() {
2075
+ if let Some(ty) = &ty.ty {
2076
+ self.free_variables_valtype(ty, set);
2077
+ }
2078
+ }
2079
+ }
2080
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
2081
+ self.free_variables_valtype(ty, set);
2082
+ }
2083
+ ComponentDefinedType::Result { ok, err } => {
2084
+ if let Some(ok) = ok {
2085
+ self.free_variables_valtype(ok, set);
2086
+ }
2087
+ if let Some(err) = err {
2088
+ self.free_variables_valtype(err, set);
2089
+ }
2090
+ }
2091
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
2092
+ self.free_variables_type_id(*id, set);
2093
+ }
2094
+ },
2095
+ }
2096
+ }
2097
+
2098
+ /// Same as `free_variables_type_id`, but for `ComponentEntityType`.
2099
+ pub fn free_variables_component_entity(
2100
+ &self,
2101
+ ty: &ComponentEntityType,
2102
+ set: &mut IndexSet<ResourceId>,
2103
+ ) {
2104
+ match ty {
2105
+ ComponentEntityType::Module(id)
2106
+ | ComponentEntityType::Func(id)
2107
+ | ComponentEntityType::Instance(id)
2108
+ | ComponentEntityType::Component(id) => self.free_variables_type_id(*id, set),
2109
+ ComponentEntityType::Type { created, .. } => {
2110
+ self.free_variables_type_id(*created, set);
2111
+ }
2112
+ ComponentEntityType::Value(ty) => self.free_variables_valtype(ty, set),
2113
+ }
2114
+ }
2115
+
2116
+ /// Same as `free_variables_type_id`, but for `ComponentValType`.
2117
+ fn free_variables_valtype(&self, ty: &ComponentValType, set: &mut IndexSet<ResourceId>) {
2118
+ match ty {
2119
+ ComponentValType::Primitive(_) => {}
2120
+ ComponentValType::Type(id) => self.free_variables_type_id(*id, set),
2121
+ }
2122
+ }
2123
+
2124
+ /// Returns whether the type `id` is "named" where named types are presented
2125
+ /// via the provided `set`.
2126
+ ///
2127
+ /// This requires that `id` is a `Defined` type.
2128
+ pub(crate) fn type_named_type_id(&self, id: TypeId, set: &HashSet<TypeId>) -> bool {
2129
+ let ty = self[id].unwrap_defined();
2130
+ match ty {
2131
+ // Primitives are always considered named
2132
+ ComponentDefinedType::Primitive(_) => true,
2133
+
2134
+ // These structures are never allowed to be anonymous, so they
2135
+ // themselves must be named.
2136
+ ComponentDefinedType::Flags(_)
2137
+ | ComponentDefinedType::Enum(_)
2138
+ | ComponentDefinedType::Record(_)
2139
+ | ComponentDefinedType::Union(_)
2140
+ | ComponentDefinedType::Variant(_) => set.contains(&id),
2141
+
2142
+ // All types below here are allowed to be anonymous, but their
2143
+ // own components must be appropriately named.
2144
+ ComponentDefinedType::Tuple(r) => {
2145
+ r.types.iter().all(|t| self.type_named_valtype(t, set))
2146
+ }
2147
+ ComponentDefinedType::Result { ok, err } => {
2148
+ ok.as_ref()
2149
+ .map(|t| self.type_named_valtype(t, set))
2150
+ .unwrap_or(true)
2151
+ && err
2152
+ .as_ref()
2153
+ .map(|t| self.type_named_valtype(t, set))
2154
+ .unwrap_or(true)
2155
+ }
2156
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
2157
+ self.type_named_valtype(ty, set)
2158
+ }
2159
+
2160
+ // own/borrow themselves don't have to be named, but the resource
2161
+ // they refer to must be named.
2162
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => set.contains(id),
2163
+ }
2164
+ }
2165
+
2166
+ pub(crate) fn type_named_valtype(&self, ty: &ComponentValType, set: &HashSet<TypeId>) -> bool {
2167
+ match ty {
2168
+ ComponentValType::Primitive(_) => true,
2169
+ ComponentValType::Type(id) => self.type_named_type_id(*id, set),
2170
+ }
2171
+ }
2172
+ }
2173
+
2174
+ /// A helper trait to provide the functionality necessary to resources within a
2175
+ /// type.
2176
+ ///
2177
+ /// This currently exists to abstract over `TypeAlloc` and `SubtypeArena` which
2178
+ /// both need to perform remapping operations.
2179
+ pub(crate) trait Remap: Index<TypeId, Output = Type> {
2180
+ /// Pushes a new anonymous type within this object, returning an identifier
2181
+ /// which can be used to refer to it.
2182
+ fn push_ty(&mut self, ty: Type) -> TypeId;
2183
+
2184
+ /// Applies a resource and type renaming map to the `id` specified,
2185
+ /// returning `true` if the `id` was modified or `false` if it didn't need
2186
+ /// changing.
2187
+ ///
2188
+ /// This will recursively modify the structure of the `id` specified and
2189
+ /// update all references to resources found. The resource identifier keys
2190
+ /// in the `map` specified will become the corresponding value, in addition
2191
+ /// to any existing types in `map` becoming different tyeps.
2192
+ ///
2193
+ /// The `id` argument will be rewritten to a new identifier if `true` is
2194
+ /// returned.
2195
+ fn remap_type_id(&mut self, id: &mut TypeId, map: &mut Remapping) -> bool {
2196
+ if let Some(new) = map.types.get(id) {
2197
+ let changed = *new != *id;
2198
+ *id = *new;
2199
+ return changed;
2200
+ }
2201
+
2202
+ // This function attempts what ends up probably being a relatively
2203
+ // minor optimization where a new `id` isn't manufactured unless
2204
+ // something about the type actually changed. That means that if the
2205
+ // type doesn't actually use any resources, for example, then no new
2206
+ // id is allocated.
2207
+ let mut any_changed = false;
2208
+
2209
+ let map_map = |tmp: &mut IndexMap<ResourceId, Vec<usize>>,
2210
+ any_changed: &mut bool,
2211
+ map: &mut Remapping| {
2212
+ for (id, path) in mem::take(tmp) {
2213
+ let id = match map.resources.get(&id) {
2214
+ Some(id) => {
2215
+ *any_changed = true;
2216
+ *id
2217
+ }
2218
+ None => id,
2219
+ };
2220
+ tmp.insert(id, path);
2221
+ }
2222
+ };
2223
+
2224
+ let ty = match &self[*id] {
2225
+ // Core wasm functions/modules/instances don't have resource types
2226
+ // in them.
2227
+ Type::Sub(_) | Type::Module(_) | Type::Instance(_) => return false,
2228
+
2229
+ Type::Component(i) => {
2230
+ let mut tmp = i.clone();
2231
+ for ty in tmp.imports.values_mut().chain(tmp.exports.values_mut()) {
2232
+ if self.remap_component_entity(ty, map) {
2233
+ any_changed = true;
2234
+ }
2235
+ }
2236
+ for (id, _) in tmp
2237
+ .imported_resources
2238
+ .iter_mut()
2239
+ .chain(&mut tmp.defined_resources)
2240
+ {
2241
+ if let Some(new) = map.resources.get(id) {
2242
+ *id = *new;
2243
+ any_changed = true;
2244
+ }
2245
+ }
2246
+ map_map(&mut tmp.explicit_resources, &mut any_changed, map);
2247
+ Type::Component(tmp)
2248
+ }
2249
+
2250
+ Type::ComponentInstance(i) => {
2251
+ let mut tmp = i.clone();
2252
+ for ty in tmp.exports.values_mut() {
2253
+ if self.remap_component_entity(ty, map) {
2254
+ any_changed = true;
2255
+ }
2256
+ }
2257
+ for id in tmp.defined_resources.iter_mut() {
2258
+ if let Some(new) = map.resources.get(id) {
2259
+ *id = *new;
2260
+ any_changed = true;
2261
+ }
2262
+ }
2263
+ map_map(&mut tmp.explicit_resources, &mut any_changed, map);
2264
+ Type::ComponentInstance(tmp)
2265
+ }
2266
+
2267
+ Type::Resource(id) => {
2268
+ let id = match map.resources.get(id).copied() {
2269
+ Some(id) => id,
2270
+ None => return false,
2271
+ };
2272
+ any_changed = true;
2273
+ Type::Resource(id)
2274
+ }
2275
+
2276
+ Type::ComponentFunc(i) => {
2277
+ let mut tmp = i.clone();
2278
+ for ty in tmp
2279
+ .params
2280
+ .iter_mut()
2281
+ .map(|(_, ty)| ty)
2282
+ .chain(tmp.results.iter_mut().map(|(_, ty)| ty))
2283
+ {
2284
+ if self.remap_valtype(ty, map) {
2285
+ any_changed = true;
2286
+ }
2287
+ }
2288
+ Type::ComponentFunc(tmp)
2289
+ }
2290
+ Type::Defined(i) => {
2291
+ let mut tmp = i.clone();
2292
+ match &mut tmp {
2293
+ ComponentDefinedType::Primitive(_)
2294
+ | ComponentDefinedType::Flags(_)
2295
+ | ComponentDefinedType::Enum(_) => {}
2296
+ ComponentDefinedType::Record(r) => {
2297
+ for ty in r.fields.values_mut() {
2298
+ if self.remap_valtype(ty, map) {
2299
+ any_changed = true;
2300
+ }
2301
+ }
2302
+ }
2303
+ ComponentDefinedType::Tuple(r) => {
2304
+ for ty in r.types.iter_mut() {
2305
+ if self.remap_valtype(ty, map) {
2306
+ any_changed = true;
2307
+ }
2308
+ }
2309
+ }
2310
+ ComponentDefinedType::Union(r) => {
2311
+ for ty in r.types.iter_mut() {
2312
+ if self.remap_valtype(ty, map) {
2313
+ any_changed = true;
2314
+ }
2315
+ }
2316
+ }
2317
+ ComponentDefinedType::Variant(r) => {
2318
+ for ty in r.cases.values_mut() {
2319
+ if let Some(ty) = &mut ty.ty {
2320
+ if self.remap_valtype(ty, map) {
2321
+ any_changed = true;
2322
+ }
2323
+ }
2324
+ }
2325
+ }
2326
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
2327
+ if self.remap_valtype(ty, map) {
2328
+ any_changed = true;
2329
+ }
2330
+ }
2331
+ ComponentDefinedType::Result { ok, err } => {
2332
+ if let Some(ok) = ok {
2333
+ if self.remap_valtype(ok, map) {
2334
+ any_changed = true;
2335
+ }
2336
+ }
2337
+ if let Some(err) = err {
2338
+ if self.remap_valtype(err, map) {
2339
+ any_changed = true;
2340
+ }
2341
+ }
2342
+ }
2343
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
2344
+ if self.remap_type_id(id, map) {
2345
+ any_changed = true;
2346
+ }
2347
+ }
2348
+ }
2349
+ Type::Defined(tmp)
2350
+ }
2351
+ };
2352
+
2353
+ let new = if any_changed { self.push_ty(ty) } else { *id };
2354
+ let prev = map.types.insert(*id, new);
2355
+ assert!(prev.is_none());
2356
+ let changed = *id != new;
2357
+ *id = new;
2358
+ changed
2359
+ }
2360
+
2361
+ /// Same as `remap_type_id`, but works with `ComponentEntityType`.
2362
+ fn remap_component_entity(
2363
+ &mut self,
2364
+ ty: &mut ComponentEntityType,
2365
+ map: &mut Remapping,
2366
+ ) -> bool {
2367
+ match ty {
2368
+ ComponentEntityType::Module(id)
2369
+ | ComponentEntityType::Func(id)
2370
+ | ComponentEntityType::Instance(id)
2371
+ | ComponentEntityType::Component(id) => self.remap_type_id(id, map),
2372
+ ComponentEntityType::Type {
2373
+ referenced,
2374
+ created,
2375
+ } => {
2376
+ let changed = self.remap_type_id(referenced, map);
2377
+ if *referenced == *created {
2378
+ *created = *referenced;
2379
+ changed
2380
+ } else {
2381
+ self.remap_type_id(created, map) || changed
2382
+ }
2383
+ }
2384
+ ComponentEntityType::Value(ty) => self.remap_valtype(ty, map),
2385
+ }
2386
+ }
2387
+
2388
+ /// Same as `remap_type_id`, but works with `ComponentValType`.
2389
+ fn remap_valtype(&mut self, ty: &mut ComponentValType, map: &mut Remapping) -> bool {
2390
+ match ty {
2391
+ ComponentValType::Primitive(_) => false,
2392
+ ComponentValType::Type(id) => self.remap_type_id(id, map),
2393
+ }
2394
+ }
2395
+ }
2396
+
2397
+ #[derive(Default)]
2398
+ pub(crate) struct Remapping {
2399
+ /// A mapping from old resource ID to new resource ID.
2400
+ pub(crate) resources: HashMap<ResourceId, ResourceId>,
2401
+
2402
+ /// A mapping filled in during the remapping process which records how a
2403
+ /// type was remapped, if applicable. This avoids remapping multiple
2404
+ /// references to the same type and instead only processing it once.
2405
+ types: HashMap<TypeId, TypeId>,
2406
+ }
2407
+
2408
+ impl Remap for TypeAlloc {
2409
+ fn push_ty(&mut self, ty: Type) -> TypeId {
2410
+ <TypeAlloc>::push_ty(self, ty)
2411
+ }
2412
+ }
2413
+
2414
+ impl Index<TypeId> for TypeAlloc {
2415
+ type Output = Type;
2416
+
2417
+ #[inline]
2418
+ fn index(&self, id: TypeId) -> &Type {
2419
+ &self.list[id]
2420
+ }
2421
+ }
2422
+
2423
+ /// Helper structure used to perform subtyping computations.
2424
+ ///
2425
+ /// This type is used whenever a subtype needs to be tested in one direction or
2426
+ /// the other. The methods of this type are the various entry points for
2427
+ /// subtyping.
2428
+ ///
2429
+ /// Internally this contains arenas for two lists of types. The `a` arena is
2430
+ /// intended to be used for lookup of the first argument to all of the methods
2431
+ /// below, and the `b` arena is used for lookup of the second argument.
2432
+ ///
2433
+ /// Arenas here are used specifically for component-based subtyping queries. In
2434
+ /// these situations new types must be created based on substitution mappings,
2435
+ /// but the types all have temporary lifetimes. Everything in these arenas is
2436
+ /// thrown away once the subtyping computation has finished.
2437
+ ///
2438
+ /// Note that this subtyping context also explicitly supports being created
2439
+ /// from to different lists `a` and `b` originally, for testing subtyping
2440
+ /// between two different components for example.
2441
+ pub(crate) struct SubtypeCx<'a> {
2442
+ pub(crate) a: SubtypeArena<'a>,
2443
+ pub(crate) b: SubtypeArena<'a>,
2444
+ }
2445
+
2446
+ impl<'a> SubtypeCx<'a> {
2447
+ pub(crate) fn new(a: &'a TypeList, b: &'a TypeList) -> SubtypeCx<'a> {
2448
+ SubtypeCx {
2449
+ a: SubtypeArena::new(a),
2450
+ b: SubtypeArena::new(b),
2451
+ }
2452
+ }
2453
+
2454
+ fn swap(&mut self) {
2455
+ mem::swap(&mut self.a, &mut self.b);
2456
+ }
2457
+
2458
+ /// Executes the closure `f`, resetting the internal arenas to their
2459
+ /// original size after the closure finishes.
2460
+ ///
2461
+ /// This enables `f` to modify the internal arenas while relying on all
2462
+ /// changes being discarded after the closure finishes.
2463
+ fn mark<T>(&mut self, f: impl FnOnce(&mut Self) -> T) -> T {
2464
+ let a_len = self.a.list.len();
2465
+ let b_len = self.b.list.len();
2466
+ let result = f(self);
2467
+ self.a.list.truncate(a_len);
2468
+ self.b.list.truncate(b_len);
2469
+ result
2470
+ }
2471
+
2472
+ /// Tests whether `a` is a subtype of `b`.
2473
+ ///
2474
+ /// Errors are reported at the `offset` specified.
2475
+ pub fn component_entity_type(
2476
+ &mut self,
2477
+ a: &ComponentEntityType,
2478
+ b: &ComponentEntityType,
2479
+ offset: usize,
2480
+ ) -> Result<()> {
2481
+ use ComponentEntityType::*;
2482
+
2483
+ match (a, b) {
2484
+ (Module(a), Module(b)) => {
2485
+ // For module type subtyping, all exports in the other module
2486
+ // type must be present in this module type's exports (i.e. it
2487
+ // can export *more* than what this module type needs).
2488
+ // However, for imports, the check is reversed (i.e. it is okay
2489
+ // to import *less* than what this module type needs).
2490
+ self.swap();
2491
+ let a_imports = &self.b[*a].unwrap_module().imports;
2492
+ let b_imports = &self.a[*b].unwrap_module().imports;
2493
+ for (k, a) in a_imports {
2494
+ match b_imports.get(k) {
2495
+ Some(b) => self.entity_type(b, a, offset).with_context(|| {
2496
+ format!("type mismatch in import `{}::{}`", k.0, k.1)
2497
+ })?,
2498
+ None => bail!(offset, "missing expected import `{}::{}`", k.0, k.1),
2499
+ }
2500
+ }
2501
+ self.swap();
2502
+ let a = self.a[*a].unwrap_module();
2503
+ let b = self.b[*b].unwrap_module();
2504
+ for (k, b) in b.exports.iter() {
2505
+ match a.exports.get(k) {
2506
+ Some(a) => self
2507
+ .entity_type(a, b, offset)
2508
+ .with_context(|| format!("type mismatch in export `{k}`"))?,
2509
+ None => bail!(offset, "missing expected export `{k}`"),
2510
+ }
2511
+ }
2512
+ Ok(())
2513
+ }
2514
+ (Module(_), b) => bail!(offset, "expected {}, found module", b.desc()),
2515
+
2516
+ (Func(a), Func(b)) => {
2517
+ let a = self.a[*a].unwrap_component_func();
2518
+ let b = self.b[*b].unwrap_component_func();
2519
+
2520
+ // Note that this intentionally diverges from the upstream
2521
+ // specification in terms of subtyping. This is a full
2522
+ // type-equality check which ensures that the structure of `a`
2523
+ // exactly matches the structure of `b`. The rationale for this
2524
+ // is:
2525
+ //
2526
+ // * Primarily in Wasmtime subtyping based on function types is
2527
+ // not implemented. This includes both subtyping a host
2528
+ // import and additionally handling subtyping as functions
2529
+ // cross component boundaries. The host import subtyping (or
2530
+ // component export subtyping) is not clear how to handle at
2531
+ // all at this time. The subtyping of functions between
2532
+ // components can more easily be handled by extending the
2533
+ // `fact` compiler, but that hasn't been done yet.
2534
+ //
2535
+ // * The upstream specification is currently pretty
2536
+ // intentionally vague precisely what subtyping is allowed.
2537
+ // Implementing a strict check here is intended to be a
2538
+ // conservative starting point for the component model which
2539
+ // can be extended in the future if necessary.
2540
+ //
2541
+ // * The interaction with subtyping on bindings generation, for
2542
+ // example, is a tricky problem that doesn't have a clear
2543
+ // answer at this time. Effectively this is more rationale
2544
+ // for being conservative in the first pass of the component
2545
+ // model.
2546
+ //
2547
+ // So, in conclusion, the test here (and other places that
2548
+ // reference this comment) is for exact type equality with no
2549
+ // differences.
2550
+ if a.params.len() != b.params.len() {
2551
+ bail!(
2552
+ offset,
2553
+ "expected {} parameters, found {}",
2554
+ b.params.len(),
2555
+ a.params.len(),
2556
+ );
2557
+ }
2558
+ if a.results.len() != b.results.len() {
2559
+ bail!(
2560
+ offset,
2561
+ "expected {} results, found {}",
2562
+ b.results.len(),
2563
+ a.results.len(),
2564
+ );
2565
+ }
2566
+ for ((an, a), (bn, b)) in a.params.iter().zip(b.params.iter()) {
2567
+ if an != bn {
2568
+ bail!(offset, "expected parameter named `{bn}`, found `{an}`");
2569
+ }
2570
+ self.component_val_type(a, b, offset)
2571
+ .with_context(|| format!("type mismatch in function parameter `{an}`"))?;
2572
+ }
2573
+ for ((an, a), (bn, b)) in a.results.iter().zip(b.results.iter()) {
2574
+ if an != bn {
2575
+ bail!(offset, "mismatched result names");
2576
+ }
2577
+ self.component_val_type(a, b, offset)
2578
+ .with_context(|| "type mismatch with result type")?;
2579
+ }
2580
+ Ok(())
2581
+ }
2582
+ (Func(_), b) => bail!(offset, "expected {}, found func", b.desc()),
2583
+
2584
+ (Value(a), Value(b)) => self.component_val_type(a, b, offset),
2585
+ (Value(_), b) => bail!(offset, "expected {}, found value", b.desc()),
2586
+
2587
+ (Type { referenced: a, .. }, Type { referenced: b, .. }) => {
2588
+ use self::Type::*;
2589
+ match (&self.a[*a], &self.b[*b]) {
2590
+ (Defined(a), Defined(b)) => self.component_defined_type(a, b, offset),
2591
+ (Defined(_), Resource(_)) => bail!(offset, "expected resource, found type"),
2592
+ (Resource(a), Resource(b)) => {
2593
+ if a == b {
2594
+ Ok(())
2595
+ } else {
2596
+ bail!(offset, "resource types are not the same")
2597
+ }
2598
+ }
2599
+ (Resource(_), Defined(_)) => bail!(offset, "expected type, found resource"),
2600
+ _ => unreachable!(),
2601
+ }
2602
+ }
2603
+ (Type { .. }, b) => bail!(offset, "expected {}, found type", b.desc()),
2604
+
2605
+ (Instance(a_id), Instance(b_id)) => {
2606
+ // For instance type subtyping, all exports in the other
2607
+ // instance type must be present in this instance type's
2608
+ // exports (i.e. it can export *more* than what this instance
2609
+ // type needs).
2610
+ let a = self.a[*a_id].unwrap_component_instance();
2611
+ let b = self.b[*b_id].unwrap_component_instance();
2612
+
2613
+ let mut exports = Vec::with_capacity(b.exports.len());
2614
+ for (k, b) in b.exports.iter() {
2615
+ match a.exports.get(k) {
2616
+ Some(a) => exports.push((*a, *b)),
2617
+ None => bail!(offset, "missing expected export `{k}`"),
2618
+ }
2619
+ }
2620
+ for (i, (a, b)) in exports.iter().enumerate() {
2621
+ let err = match self.component_entity_type(a, b, offset) {
2622
+ Ok(()) => continue,
2623
+ Err(e) => e,
2624
+ };
2625
+ // On failure attach the name of this export as context to
2626
+ // the error message to leave a breadcrumb trail.
2627
+ let (name, _) = self.b[*b_id]
2628
+ .unwrap_component_instance()
2629
+ .exports
2630
+ .get_index(i)
2631
+ .unwrap();
2632
+ return Err(
2633
+ err.with_context(|| format!("type mismatch in instance export `{name}`"))
2634
+ );
2635
+ }
2636
+ Ok(())
2637
+ }
2638
+ (Instance(_), b) => bail!(offset, "expected {}, found instance", b.desc()),
2639
+
2640
+ (Component(a), Component(b)) => {
2641
+ // Components are ... tricky. They follow the same basic
2642
+ // structure as core wasm modules, but they also have extra
2643
+ // logic to handle resource types. Resources are effectively
2644
+ // abstract types so this is sort of where an ML module system
2645
+ // in the component model becomes a reality.
2646
+ //
2647
+ // This also leverages the `open_instance_type` method below
2648
+ // heavily which internally has its own quite large suite of
2649
+ // logic. More-or-less what's happening here is:
2650
+ //
2651
+ // 1. Pretend that the imports of B are given as values to the
2652
+ // imports of A. If A didn't import anything, for example,
2653
+ // that's great and the subtyping definitely passes there.
2654
+ // This operation produces a mapping of all the resources of
2655
+ // A's imports to resources in B's imports.
2656
+ //
2657
+ // 2. This mapping is applied to all of A's exports. This means
2658
+ // that all exports of A referring to A's imported resources
2659
+ // now instead refer to B's. Note, though that A's exports
2660
+ // still refer to its own defined resources.
2661
+ //
2662
+ // 3. The same `open_instance_type` method used during the
2663
+ // first step is used again, but this time on the exports
2664
+ // in the reverse direction. This performs a similar
2665
+ // operation, though, by creating a mapping from B's
2666
+ // defined resources to A's defined resources. The map
2667
+ // itself is discarded as it's not needed.
2668
+ //
2669
+ // The order that everything passed here is intentional, but
2670
+ // also subtle. I personally think of it as
2671
+ // `open_instance_type` takes a list of things to satisfy a
2672
+ // signature and produces a mapping of resources in the
2673
+ // signature to those provided in the list of things. The
2674
+ // order of operations then goes:
2675
+ //
2676
+ // * Someone thinks they have a component of type B, but they
2677
+ // actually have a component of type A (e.g. due to this
2678
+ // subtype check passing).
2679
+ // * This person provides the imports of B and that must be
2680
+ // sufficient to satisfy the imports of A. This is the first
2681
+ // `open_instance_type` check.
2682
+ // * Now though the resources provided by B are substituted
2683
+ // into A's exports since that's what was provided.
2684
+ // * A's exports are then handed back to the original person,
2685
+ // and these exports must satisfy the signature required by B
2686
+ // since that's what they're expecting.
2687
+ // * This is the second `open_instance_type` which, to get
2688
+ // resource types to line up, will map from A's defined
2689
+ // resources to B's defined resources.
2690
+ //
2691
+ // If all that passes then the resources should all line up
2692
+ // perfectly. Any misalignment is reported as a subtyping
2693
+ // error.
2694
+ let b_imports = self.b[*b]
2695
+ .unwrap_component()
2696
+ .imports
2697
+ .iter()
2698
+ .map(|(name, ty)| (name.clone(), ty.clone()))
2699
+ .collect();
2700
+ self.swap();
2701
+ let mut import_mapping =
2702
+ self.open_instance_type(&b_imports, *a, ExternKind::Import, offset)?;
2703
+ self.swap();
2704
+ self.mark(|this| {
2705
+ let mut a_exports = this.a[*a]
2706
+ .unwrap_component()
2707
+ .exports
2708
+ .iter()
2709
+ .map(|(name, ty)| (name.clone(), ty.clone()))
2710
+ .collect::<IndexMap<_, _>>();
2711
+ for ty in a_exports.values_mut() {
2712
+ this.a.remap_component_entity(ty, &mut import_mapping);
2713
+ }
2714
+ this.open_instance_type(&a_exports, *b, ExternKind::Export, offset)?;
2715
+ Ok(())
2716
+ })
2717
+ }
2718
+ (Component(_), b) => bail!(offset, "expected {}, found component", b.desc()),
2719
+ }
2720
+ }
2721
+
2722
+ /// The building block for subtyping checks when components are
2723
+ /// instantiated and when components are tested if they're subtypes of each
2724
+ /// other.
2725
+ ///
2726
+ /// This method takes a number of arguments:
2727
+ ///
2728
+ /// * `a` - this is a list of typed items which can be thought of as
2729
+ /// concrete values to test against `b`.
2730
+ /// * `b` - this `TypeId` must point to `Type::Component`.
2731
+ /// * `kind` - indicates whether the `imports` or `exports` of `b` are
2732
+ /// being tested against for the values in `a`.
2733
+ /// * `offset` - the binary offset at which to report errors if one happens.
2734
+ ///
2735
+ /// This will attempt to determine if the items in `a` satisfy the
2736
+ /// signature required by the `kind` items of `b`. For example component
2737
+ /// instantiation will have `a` as the list of arguments provided to
2738
+ /// instantiation, `b` is the component being instantiated, and `kind` is
2739
+ /// `ExternKind::Import`.
2740
+ ///
2741
+ /// This function, if successful, will return a mapping of the resources in
2742
+ /// `b` to the resources in `a` provided. This mapping is guaranteed to
2743
+ /// contain all the resources for `b` (all imported resources for
2744
+ /// `ExternKind::Import` or all defined resources for `ExternKind::Export`).
2745
+ pub fn open_instance_type(
2746
+ &mut self,
2747
+ a: &IndexMap<String, ComponentEntityType>,
2748
+ b: TypeId,
2749
+ kind: ExternKind,
2750
+ offset: usize,
2751
+ ) -> Result<Remapping> {
2752
+ // First, determine the mapping from resources in `b` to those supplied
2753
+ // by arguments in `a`.
2754
+ //
2755
+ // This loop will iterate over all the appropriate resources in `b`
2756
+ // and find the corresponding resource in `args`. The exact lists
2757
+ // in use here depend on the `kind` provided. This necessarily requires
2758
+ // a sequence of string lookups to find the corresponding items in each
2759
+ // list.
2760
+ //
2761
+ // The path to each resource in `resources` is precomputed as a list of
2762
+ // indexes. The first index is into `b`'s list of `entities`, and gives
2763
+ // the name that `b` assigns to the resource. Each subsequent index,
2764
+ // if present, means that this resource was present through a layer of
2765
+ // an instance type, and the index is into the instance type's exports.
2766
+ // More information about this can be found on
2767
+ // `ComponentState::imported_resources`.
2768
+ //
2769
+ // This loop will follow the list of indices for each resource and, at
2770
+ // the same time, walk through the arguments supplied to instantiating
2771
+ // the `component_type`. This means that within `component_type`
2772
+ // index-based lookups are performed while in `args` name-based
2773
+ // lookups are performed.
2774
+ //
2775
+ // Note that here it's possible that `args` doesn't actually supply the
2776
+ // correct type of import for each item since argument checking has
2777
+ // not proceeded yet. These type errors, however, aren't handled by
2778
+ // this loop and are deferred below to the main subtyping check. That
2779
+ // means that `mapping` won't necessarily have a mapping for all
2780
+ // imported resources into `component_type`, but that should be ok.
2781
+ let component_type = self.b[b].unwrap_component();
2782
+ let entities = match kind {
2783
+ ExternKind::Import => &component_type.imports,
2784
+ ExternKind::Export => &component_type.exports,
2785
+ };
2786
+ let resources = match kind {
2787
+ ExternKind::Import => &component_type.imported_resources,
2788
+ ExternKind::Export => &component_type.defined_resources,
2789
+ };
2790
+ let mut mapping = Remapping::default();
2791
+ 'outer: for (resource, path) in resources.iter() {
2792
+ // Lookup the first path item in `imports` and the corresponding
2793
+ // entry in `args` by name.
2794
+ let (name, ty) = entities.get_index(path[0]).unwrap();
2795
+ let mut ty = *ty;
2796
+ let mut arg = a.get(name);
2797
+
2798
+ // Lookup all the subsequent `path` entries, if any, by index in
2799
+ // `ty` and by name in `arg`. Type errors in `arg` are skipped over
2800
+ // entirely.
2801
+ for i in path.iter().skip(1).copied() {
2802
+ let id = match ty {
2803
+ ComponentEntityType::Instance(id) => id,
2804
+ _ => unreachable!(),
2805
+ };
2806
+ let (name, next_ty) = self.b[id]
2807
+ .unwrap_component_instance()
2808
+ .exports
2809
+ .get_index(i)
2810
+ .unwrap();
2811
+ ty = *next_ty;
2812
+ arg = match arg {
2813
+ Some(ComponentEntityType::Instance(id)) => {
2814
+ self.a[*id].unwrap_component_instance().exports.get(name)
2815
+ }
2816
+ _ => continue 'outer,
2817
+ };
2818
+ }
2819
+
2820
+ // Double-check that `ty`, the leaf type of `component_type`, is
2821
+ // indeed the expected resource.
2822
+ if cfg!(debug_assertions) {
2823
+ let id = match ty {
2824
+ ComponentEntityType::Type { created, .. } => match &self.a[created] {
2825
+ Type::Resource(r) => *r,
2826
+ _ => unreachable!(),
2827
+ },
2828
+ _ => unreachable!(),
2829
+ };
2830
+ assert_eq!(id, *resource);
2831
+ }
2832
+
2833
+ // The leaf of `arg` should be a type which is a resource. If not
2834
+ // it's skipped and this'll wind up generating an error later on in
2835
+ // subtype checking below.
2836
+ if let Some(ComponentEntityType::Type { created, .. }) = arg {
2837
+ if let Type::Resource(r) = &self.b[*created] {
2838
+ mapping.resources.insert(*resource, *r);
2839
+ }
2840
+ }
2841
+ }
2842
+
2843
+ // Now that a mapping from the resources in `b` to the resources in `a`
2844
+ // has been determined it's possible to perform the actual subtype
2845
+ // check.
2846
+ //
2847
+ // This subtype check notably needs to ensure that all resource types
2848
+ // line up. To achieve this the `mapping` previously calculated is used
2849
+ // to perform a substitution on each component entity type.
2850
+ //
2851
+ // The first loop here performs a name lookup to create a list of
2852
+ // values from `a` to expected items in `b`. Once the list is created
2853
+ // the substitution check is performed on each element.
2854
+ let mut to_typecheck = Vec::new();
2855
+ for (name, expected) in entities.iter() {
2856
+ match a.get(name) {
2857
+ Some(arg) => to_typecheck.push((arg.clone(), expected.clone())),
2858
+ None => bail!(offset, "missing {} named `{name}`", kind.desc()),
2859
+ }
2860
+ }
2861
+ let mut type_map = HashMap::new();
2862
+ for (i, (actual, expected)) in to_typecheck.into_iter().enumerate() {
2863
+ let result = self.mark(|this| {
2864
+ let mut expected = expected;
2865
+ this.b.remap_component_entity(&mut expected, &mut mapping);
2866
+ mapping.types.clear();
2867
+ this.component_entity_type(&actual, &expected, offset)
2868
+ });
2869
+ let err = match result {
2870
+ Ok(()) => {
2871
+ // On a successful type-check record a mapping of
2872
+ // type-to-type in `type_map` for any type imports that were
2873
+ // satisfied. This is then used afterwards when performing
2874
+ // type substitution to remap all component-local types to
2875
+ // those that were provided in the imports.
2876
+ self.register_type_renamings(actual, expected, &mut type_map);
2877
+ continue;
2878
+ }
2879
+ Err(e) => e,
2880
+ };
2881
+
2882
+ // If an error happens then attach the name of the entity to the
2883
+ // error message using the `i` iteration counter.
2884
+ let component_type = self.b[b].unwrap_component();
2885
+ let entities = match kind {
2886
+ ExternKind::Import => &component_type.imports,
2887
+ ExternKind::Export => &component_type.exports,
2888
+ };
2889
+ let (name, _) = entities.get_index(i).unwrap();
2890
+ return Err(err.with_context(|| format!("type mismatch for {} `{name}`", kind.desc())));
2891
+ }
2892
+ mapping.types = type_map;
2893
+ Ok(mapping)
2894
+ }
2895
+
2896
+ pub(crate) fn entity_type(&self, a: &EntityType, b: &EntityType, offset: usize) -> Result<()> {
2897
+ macro_rules! limits_match {
2898
+ ($a:expr, $b:expr) => {{
2899
+ let a = $a;
2900
+ let b = $b;
2901
+ a.initial >= b.initial
2902
+ && match b.maximum {
2903
+ Some(b_max) => match a.maximum {
2904
+ Some(a_max) => a_max <= b_max,
2905
+ None => false,
2906
+ },
2907
+ None => true,
2908
+ }
2909
+ }};
2910
+ }
2911
+
2912
+ match (a, b) {
2913
+ (EntityType::Func(a), EntityType::Func(b)) => {
2914
+ self.func_type(self.a[*a].unwrap_func(), self.b[*b].unwrap_func(), offset)
2915
+ }
2916
+ (EntityType::Func(_), b) => bail!(offset, "expected {}, found func", b.desc()),
2917
+ (EntityType::Table(a), EntityType::Table(b)) => {
2918
+ if a.element_type != b.element_type {
2919
+ bail!(
2920
+ offset,
2921
+ "expected table element type {}, found {}",
2922
+ b.element_type,
2923
+ a.element_type,
2924
+ )
2925
+ }
2926
+ if limits_match!(a, b) {
2927
+ Ok(())
2928
+ } else {
2929
+ bail!(offset, "mismatch in table limits")
2930
+ }
2931
+ }
2932
+ (EntityType::Table(_), b) => bail!(offset, "expected {}, found table", b.desc()),
2933
+ (EntityType::Memory(a), EntityType::Memory(b)) => {
2934
+ if a.shared != b.shared {
2935
+ bail!(offset, "mismatch in the shared flag for memories")
2936
+ }
2937
+ if a.memory64 != b.memory64 {
2938
+ bail!(offset, "mismatch in index type used for memories")
2939
+ }
2940
+ if limits_match!(a, b) {
2941
+ Ok(())
2942
+ } else {
2943
+ bail!(offset, "mismatch in memory limits")
2944
+ }
2945
+ }
2946
+ (EntityType::Memory(_), b) => bail!(offset, "expected {}, found memory", b.desc()),
2947
+ (EntityType::Global(a), EntityType::Global(b)) => {
2948
+ if a.mutable != b.mutable {
2949
+ bail!(offset, "global types differ in mutability")
2950
+ }
2951
+ if a.content_type == b.content_type {
2952
+ Ok(())
2953
+ } else {
2954
+ bail!(
2955
+ offset,
2956
+ "expected global type {}, found {}",
2957
+ b.content_type,
2958
+ a.content_type,
2959
+ )
2960
+ }
2961
+ }
2962
+ (EntityType::Global(_), b) => bail!(offset, "expected {}, found global", b.desc()),
2963
+ (EntityType::Tag(a), EntityType::Tag(b)) => {
2964
+ self.func_type(self.a[*a].unwrap_func(), self.b[*b].unwrap_func(), offset)
2965
+ }
2966
+ (EntityType::Tag(_), b) => bail!(offset, "expected {}, found tag", b.desc()),
2967
+ }
2968
+ }
2969
+
2970
+ fn func_type(&self, a: &FuncType, b: &FuncType, offset: usize) -> Result<()> {
2971
+ if a == b {
2972
+ Ok(())
2973
+ } else {
2974
+ bail!(
2975
+ offset,
2976
+ "expected: {}\n\
2977
+ found: {}",
2978
+ b.desc(),
2979
+ a.desc(),
2980
+ )
2981
+ }
2982
+ }
2983
+
2984
+ pub(crate) fn component_val_type(
2985
+ &self,
2986
+ a: &ComponentValType,
2987
+ b: &ComponentValType,
2988
+ offset: usize,
2989
+ ) -> Result<()> {
2990
+ match (a, b) {
2991
+ (ComponentValType::Primitive(a), ComponentValType::Primitive(b)) => {
2992
+ self.primitive_val_type(*a, *b, offset)
2993
+ }
2994
+ (ComponentValType::Type(a), ComponentValType::Type(b)) => self.component_defined_type(
2995
+ self.a[*a].unwrap_defined(),
2996
+ self.b[*b].unwrap_defined(),
2997
+ offset,
2998
+ ),
2999
+ (ComponentValType::Primitive(a), ComponentValType::Type(b)) => {
3000
+ match self.b[*b].unwrap_defined() {
3001
+ ComponentDefinedType::Primitive(b) => self.primitive_val_type(*a, *b, offset),
3002
+ b => bail!(offset, "expected {}, found {a}", b.desc()),
3003
+ }
3004
+ }
3005
+ (ComponentValType::Type(a), ComponentValType::Primitive(b)) => {
3006
+ match self.a[*a].unwrap_defined() {
3007
+ ComponentDefinedType::Primitive(a) => self.primitive_val_type(*a, *b, offset),
3008
+ a => bail!(offset, "expected {b}, found {}", a.desc()),
3009
+ }
3010
+ }
3011
+ }
3012
+ }
3013
+
3014
+ fn component_defined_type(
3015
+ &self,
3016
+ a: &ComponentDefinedType,
3017
+ b: &ComponentDefinedType,
3018
+ offset: usize,
3019
+ ) -> Result<()> {
3020
+ use ComponentDefinedType::*;
3021
+
3022
+ // Note that the implementation of subtyping here diverges from the
3023
+ // upstream specification intentionally, see the documentation on
3024
+ // function subtyping for more information.
3025
+ match (a, b) {
3026
+ (Primitive(a), Primitive(b)) => self.primitive_val_type(*a, *b, offset),
3027
+ (Primitive(a), b) => bail!(offset, "expected {}, found {a}", b.desc()),
3028
+ (Record(a), Record(b)) => {
3029
+ if a.fields.len() != b.fields.len() {
3030
+ bail!(
3031
+ offset,
3032
+ "expected {} fields, found {}",
3033
+ b.fields.len(),
3034
+ a.fields.len(),
3035
+ );
3036
+ }
3037
+
3038
+ for ((aname, a), (bname, b)) in a.fields.iter().zip(b.fields.iter()) {
3039
+ if aname != bname {
3040
+ bail!(offset, "expected field name `{bname}`, found `{aname}`");
3041
+ }
3042
+ self.component_val_type(a, b, offset)
3043
+ .with_context(|| format!("type mismatch in record field `{aname}`"))?;
3044
+ }
3045
+ Ok(())
3046
+ }
3047
+ (Record(_), b) => bail!(offset, "expected {}, found record", b.desc()),
3048
+ (Variant(a), Variant(b)) => {
3049
+ if a.cases.len() != b.cases.len() {
3050
+ bail!(
3051
+ offset,
3052
+ "expected {} cases, found {}",
3053
+ b.cases.len(),
3054
+ a.cases.len(),
3055
+ );
3056
+ }
3057
+ for ((aname, a), (bname, b)) in a.cases.iter().zip(b.cases.iter()) {
3058
+ if aname != bname {
3059
+ bail!(offset, "expected case named `{bname}`, found `{aname}`");
3060
+ }
3061
+ match (&a.ty, &b.ty) {
3062
+ (Some(a), Some(b)) => self
3063
+ .component_val_type(a, b, offset)
3064
+ .with_context(|| format!("type mismatch in variant case `{aname}`"))?,
3065
+ (None, None) => {}
3066
+ (None, Some(_)) => {
3067
+ bail!(offset, "expected case `{aname}` to have a type, found none")
3068
+ }
3069
+ (Some(_), None) => bail!(offset, "expected case `{aname}` to have no type"),
3070
+ }
3071
+ }
3072
+ Ok(())
3073
+ }
3074
+ (Variant(_), b) => bail!(offset, "expected {}, found variant", b.desc()),
3075
+ (List(a), List(b)) | (Option(a), Option(b)) => self.component_val_type(a, b, offset),
3076
+ (List(_), b) => bail!(offset, "expected {}, found list", b.desc()),
3077
+ (Option(_), b) => bail!(offset, "expected {}, found option", b.desc()),
3078
+ (Tuple(a), Tuple(b)) => {
3079
+ if a.types.len() != b.types.len() {
3080
+ bail!(
3081
+ offset,
3082
+ "expected {} types, found {}",
3083
+ b.types.len(),
3084
+ a.types.len(),
3085
+ );
3086
+ }
3087
+ for (i, (a, b)) in a.types.iter().zip(b.types.iter()).enumerate() {
3088
+ self.component_val_type(a, b, offset)
3089
+ .with_context(|| format!("type mismatch in tuple field {i}"))?;
3090
+ }
3091
+ Ok(())
3092
+ }
3093
+ (Tuple(_), b) => bail!(offset, "expected {}, found tuple", b.desc()),
3094
+ (Union(a), Union(b)) => {
3095
+ if a.types.len() != b.types.len() {
3096
+ bail!(
3097
+ offset,
3098
+ "expected {} types, found {}",
3099
+ b.types.len(),
3100
+ a.types.len(),
3101
+ );
3102
+ }
3103
+ for (i, (a, b)) in a.types.iter().zip(b.types.iter()).enumerate() {
3104
+ self.component_val_type(a, b, offset)
3105
+ .with_context(|| format!("type mismatch in tuple field {i}"))?;
3106
+ }
3107
+ Ok(())
3108
+ }
3109
+ (Union(_), b) => bail!(offset, "expected {}, found union", b.desc()),
3110
+ (at @ Flags(a), Flags(b)) | (at @ Enum(a), Enum(b)) => {
3111
+ let desc = match at {
3112
+ Flags(_) => "flags",
3113
+ _ => "enum",
3114
+ };
3115
+ if a.len() == b.len() && a.iter().eq(b.iter()) {
3116
+ Ok(())
3117
+ } else {
3118
+ bail!(offset, "mismatch in {desc} elements")
3119
+ }
3120
+ }
3121
+ (Flags(_), b) => bail!(offset, "expected {}, found flags", b.desc()),
3122
+ (Enum(_), b) => bail!(offset, "expected {}, found enum", b.desc()),
3123
+ (Result { ok: ao, err: ae }, Result { ok: bo, err: be }) => {
3124
+ match (ao, bo) {
3125
+ (None, None) => {}
3126
+ (Some(a), Some(b)) => self
3127
+ .component_val_type(a, b, offset)
3128
+ .with_context(|| "type mismatch in ok variant")?,
3129
+ (None, Some(_)) => bail!(offset, "expected ok type, but found none"),
3130
+ (Some(_), None) => bail!(offset, "expected ok type to not be present"),
3131
+ }
3132
+ match (ae, be) {
3133
+ (None, None) => {}
3134
+ (Some(a), Some(b)) => self
3135
+ .component_val_type(a, b, offset)
3136
+ .with_context(|| "type mismatch in err variant")?,
3137
+ (None, Some(_)) => bail!(offset, "expected err type, but found none"),
3138
+ (Some(_), None) => bail!(offset, "expected err type to not be present"),
3139
+ }
3140
+ Ok(())
3141
+ }
3142
+ (Result { .. }, b) => bail!(offset, "expected {}, found result", b.desc()),
3143
+ (Own(a), Own(b)) | (Borrow(a), Borrow(b)) => {
3144
+ let a = self.a[*a].unwrap_resource();
3145
+ let b = self.b[*b].unwrap_resource();
3146
+ if a == b {
3147
+ Ok(())
3148
+ } else {
3149
+ bail!(offset, "resource types are not the same")
3150
+ }
3151
+ }
3152
+ (Own(_), b) => bail!(offset, "expected {}, found own", b.desc()),
3153
+ (Borrow(_), b) => bail!(offset, "expected {}, found borrow", b.desc()),
3154
+ }
3155
+ }
3156
+
3157
+ fn primitive_val_type(
3158
+ &self,
3159
+ a: PrimitiveValType,
3160
+ b: PrimitiveValType,
3161
+ offset: usize,
3162
+ ) -> Result<()> {
3163
+ // Note that this intentionally diverges from the upstream specification
3164
+ // at this time and only considers exact equality for subtyping
3165
+ // relationships.
3166
+ //
3167
+ // More information can be found in the subtyping implementation for
3168
+ // component functions.
3169
+ if a == b {
3170
+ Ok(())
3171
+ } else {
3172
+ bail!(offset, "expected primitive `{b}` found primitive `{a}`")
3173
+ }
3174
+ }
3175
+
3176
+ fn register_type_renamings(
3177
+ &self,
3178
+ actual: ComponentEntityType,
3179
+ expected: ComponentEntityType,
3180
+ type_map: &mut HashMap<TypeId, TypeId>,
3181
+ ) {
3182
+ match (expected, actual) {
3183
+ (
3184
+ ComponentEntityType::Type {
3185
+ created: expected, ..
3186
+ },
3187
+ ComponentEntityType::Type {
3188
+ created: actual, ..
3189
+ },
3190
+ ) => {
3191
+ let prev = type_map.insert(expected, actual);
3192
+ assert!(prev.is_none());
3193
+ }
3194
+ (ComponentEntityType::Instance(expected), ComponentEntityType::Instance(actual)) => {
3195
+ let actual = self.a[actual].unwrap_component_instance();
3196
+ for (name, expected) in self.b[expected].unwrap_component_instance().exports.iter()
3197
+ {
3198
+ let actual = actual.exports[name];
3199
+ self.register_type_renamings(actual, *expected, type_map);
3200
+ }
3201
+ }
3202
+ _ => {}
3203
+ }
3204
+ }
3205
+ }
3206
+
3207
+ /// A helper typed used purely during subtyping as part of `SubtypeCx`.
3208
+ ///
3209
+ /// This takes a `types` list as input which is the "base" of the ids that can
3210
+ /// be indexed through this arena. All future types pushed into this, if any,
3211
+ /// are stored in `self.list`.
3212
+ ///
3213
+ /// This is intended to have arena-like behavior where everything pushed onto
3214
+ /// `self.list` is thrown away after a subtyping computation is performed. All
3215
+ /// new types pushed into this arena are purely temporary.
3216
+ pub(crate) struct SubtypeArena<'a> {
3217
+ types: &'a TypeList,
3218
+ list: Vec<Type>,
3219
+ }
3220
+
3221
+ impl<'a> SubtypeArena<'a> {
3222
+ fn new(types: &'a TypeList) -> SubtypeArena<'a> {
3223
+ SubtypeArena {
3224
+ types,
3225
+ list: Vec::new(),
3226
+ }
3227
+ }
3228
+ }
3229
+
3230
+ impl Index<TypeId> for SubtypeArena<'_> {
3231
+ type Output = Type;
3232
+
3233
+ fn index(&self, id: TypeId) -> &Type {
3234
+ if id.index < self.types.len() {
3235
+ &self.types[id]
3236
+ } else {
3237
+ &self.list[id.index - self.types.len()]
3238
+ }
3239
+ }
3240
+ }
3241
+
3242
+ impl Remap for SubtypeArena<'_> {
3243
+ fn push_ty(&mut self, ty: Type) -> TypeId {
3244
+ let index = self.list.len() + self.types.len();
3245
+ let info = ty.info();
3246
+ self.list.push(ty);
3247
+ TypeId {
3248
+ index,
3249
+ info,
3250
+ unique_id: 0,
3251
+ }
3252
+ }
3253
+ }
3254
+
3255
+ /// Helper trait for adding contextual information to an error, modeled after
3256
+ /// `anyhow::Context`.
3257
+ pub(crate) trait Context {
3258
+ fn with_context<S>(self, context: impl FnOnce() -> S) -> Self
3259
+ where
3260
+ S: Into<String>;
3261
+ }
3262
+
3263
+ impl<T> Context for Result<T> {
3264
+ fn with_context<S>(self, context: impl FnOnce() -> S) -> Self
3265
+ where
3266
+ S: Into<String>,
3267
+ {
3268
+ match self {
3269
+ Ok(val) => Ok(val),
3270
+ Err(e) => Err(e.with_context(context)),
3271
+ }
3272
+ }
3273
+ }
3274
+
3275
+ impl Context for BinaryReaderError {
3276
+ fn with_context<S>(mut self, context: impl FnOnce() -> S) -> Self
3277
+ where
3278
+ S: Into<String>,
3279
+ {
3280
+ self.add_context(context().into());
3281
+ self
3282
+ }
3283
+ }