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,3070 @@
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, TableType, TypeRef, ValType,
11
+ };
12
+ use indexmap::{IndexMap, IndexSet};
13
+ use std::collections::HashMap;
14
+ use std::collections::HashSet;
15
+ use std::ops::Index;
16
+ use std::sync::atomic::{AtomicU64, Ordering};
17
+ use std::{
18
+ borrow::Borrow,
19
+ hash::{Hash, Hasher},
20
+ mem,
21
+ ops::{Deref, DerefMut},
22
+ sync::Arc,
23
+ };
24
+
25
+ /// The maximum number of parameters in the canonical ABI that can be passed by value.
26
+ ///
27
+ /// Functions that exceed this limit will instead pass parameters indirectly from
28
+ /// linear memory via a single pointer parameter.
29
+ const MAX_FLAT_FUNC_PARAMS: usize = 16;
30
+ /// The maximum number of results in the canonical ABI that can be returned by a function.
31
+ ///
32
+ /// Functions that exceed this limit have their results written to linear memory via an
33
+ /// additional pointer parameter (imports) or return a single pointer value (exports).
34
+ const MAX_FLAT_FUNC_RESULTS: usize = 1;
35
+
36
+ /// The maximum lowered types, including a possible type for a return pointer parameter.
37
+ const MAX_LOWERED_TYPES: usize = MAX_FLAT_FUNC_PARAMS + 1;
38
+
39
+ /// A simple alloc-free list of types used for calculating lowered function signatures.
40
+ pub(crate) struct LoweredTypes {
41
+ types: [ValType; MAX_LOWERED_TYPES],
42
+ len: usize,
43
+ max: usize,
44
+ }
45
+
46
+ impl LoweredTypes {
47
+ fn new(max: usize) -> Self {
48
+ assert!(max <= MAX_LOWERED_TYPES);
49
+ Self {
50
+ types: [ValType::I32; MAX_LOWERED_TYPES],
51
+ len: 0,
52
+ max,
53
+ }
54
+ }
55
+
56
+ fn len(&self) -> usize {
57
+ self.len
58
+ }
59
+
60
+ fn maxed(&self) -> bool {
61
+ self.len == self.max
62
+ }
63
+
64
+ fn get_mut(&mut self, index: usize) -> Option<&mut ValType> {
65
+ if index < self.len {
66
+ Some(&mut self.types[index])
67
+ } else {
68
+ None
69
+ }
70
+ }
71
+
72
+ fn push(&mut self, ty: ValType) -> bool {
73
+ if self.maxed() {
74
+ return false;
75
+ }
76
+
77
+ self.types[self.len] = ty;
78
+ self.len += 1;
79
+ true
80
+ }
81
+
82
+ fn clear(&mut self) {
83
+ self.len = 0;
84
+ }
85
+
86
+ pub fn as_slice(&self) -> &[ValType] {
87
+ &self.types[..self.len]
88
+ }
89
+
90
+ pub fn iter(&self) -> impl Iterator<Item = ValType> + '_ {
91
+ self.as_slice().iter().copied()
92
+ }
93
+ }
94
+
95
+ /// Represents information about a component function type lowering.
96
+ pub(crate) struct LoweringInfo {
97
+ pub(crate) params: LoweredTypes,
98
+ pub(crate) results: LoweredTypes,
99
+ pub(crate) requires_memory: bool,
100
+ pub(crate) requires_realloc: bool,
101
+ }
102
+
103
+ impl LoweringInfo {
104
+ pub(crate) fn into_func_type(self) -> FuncType {
105
+ FuncType::new(
106
+ self.params.as_slice().iter().copied(),
107
+ self.results.as_slice().iter().copied(),
108
+ )
109
+ }
110
+ }
111
+
112
+ impl Default for LoweringInfo {
113
+ fn default() -> Self {
114
+ Self {
115
+ params: LoweredTypes::new(MAX_FLAT_FUNC_PARAMS),
116
+ results: LoweredTypes::new(MAX_FLAT_FUNC_RESULTS),
117
+ requires_memory: false,
118
+ requires_realloc: false,
119
+ }
120
+ }
121
+ }
122
+
123
+ fn push_primitive_wasm_types(ty: &PrimitiveValType, lowered_types: &mut LoweredTypes) -> bool {
124
+ match ty {
125
+ PrimitiveValType::Bool
126
+ | PrimitiveValType::S8
127
+ | PrimitiveValType::U8
128
+ | PrimitiveValType::S16
129
+ | PrimitiveValType::U16
130
+ | PrimitiveValType::S32
131
+ | PrimitiveValType::U32
132
+ | PrimitiveValType::Char => lowered_types.push(ValType::I32),
133
+ PrimitiveValType::S64 | PrimitiveValType::U64 => lowered_types.push(ValType::I64),
134
+ PrimitiveValType::Float32 => lowered_types.push(ValType::F32),
135
+ PrimitiveValType::Float64 => lowered_types.push(ValType::F64),
136
+ PrimitiveValType::String => {
137
+ lowered_types.push(ValType::I32) && lowered_types.push(ValType::I32)
138
+ }
139
+ }
140
+ }
141
+
142
+ /// Represents a unique identifier for a type known to a [`crate::Validator`].
143
+ #[derive(Debug, Copy, Clone, PartialEq, Eq, Hash)]
144
+ #[repr(C)] // use fixed field layout to ensure minimal size
145
+ pub struct TypeId {
146
+ /// The index into the global list of types.
147
+ pub(crate) index: usize,
148
+ /// The effective type size for the type.
149
+ ///
150
+ /// This is stored as part of the ID to avoid having to recurse through
151
+ /// the global type list when calculating type sizes.
152
+ pub(crate) type_size: u32,
153
+ /// A unique integer assigned to this type.
154
+ ///
155
+ /// The purpose of this field is to ensure that two different `TypeId`
156
+ /// representations can be handed out for two different aliased types within
157
+ /// a component that actually point to the same underlying type (as pointed
158
+ /// to by the `index` field).
159
+ unique_id: u32,
160
+ }
161
+
162
+ // The size of `TypeId` was seen to have a large-ish impact in #844, so this
163
+ // assert ensures that it stays relatively small.
164
+ const _: () = {
165
+ assert!(std::mem::size_of::<TypeId>() <= 16);
166
+ };
167
+
168
+ /// A unified type definition for validating WebAssembly modules and components.
169
+ #[derive(Debug)]
170
+ pub enum Type {
171
+ /// The definition is for a core function type.
172
+ Func(FuncType),
173
+ /// The definition is for a core array type.
174
+ Array(ArrayType),
175
+ /// The definition is for a core module type.
176
+ ///
177
+ /// This variant is only supported when parsing a component.
178
+ Module(Box<ModuleType>),
179
+ /// The definition is for a core module instance type.
180
+ ///
181
+ /// This variant is only supported when parsing a component.
182
+ Instance(Box<InstanceType>),
183
+ /// The definition is for a component type.
184
+ ///
185
+ /// This variant is only supported when parsing a component.
186
+ Component(Box<ComponentType>),
187
+ /// The definition is for a component instance type.
188
+ ///
189
+ /// This variant is only supported when parsing a component.
190
+ ComponentInstance(Box<ComponentInstanceType>),
191
+ /// The definition is for a component function type.
192
+ ///
193
+ /// This variant is only supported when parsing a component.
194
+ ComponentFunc(ComponentFuncType),
195
+ /// The definition is for a component defined type.
196
+ ///
197
+ /// This variant is only supported when parsing a component.
198
+ Defined(ComponentDefinedType),
199
+ /// This definition is for a resource type in the component model.
200
+ ///
201
+ /// Each resource is identified by a unique identifier specified here.
202
+ Resource(ResourceId),
203
+ }
204
+
205
+ impl Type {
206
+ /// Converts the type to a core function type.
207
+ pub fn as_func_type(&self) -> Option<&FuncType> {
208
+ match self {
209
+ Self::Func(ty) => Some(ty),
210
+ _ => None,
211
+ }
212
+ }
213
+
214
+ /// Converts the type to an array type.
215
+ pub fn as_array_type(&self) -> Option<&ArrayType> {
216
+ match self {
217
+ Self::Array(ty) => Some(ty),
218
+ _ => None,
219
+ }
220
+ }
221
+
222
+ /// Converts the type to a core module type.
223
+ pub fn as_module_type(&self) -> Option<&ModuleType> {
224
+ match self {
225
+ Self::Module(ty) => Some(ty),
226
+ _ => None,
227
+ }
228
+ }
229
+
230
+ /// Converts the type to a core module instance type.
231
+ pub fn as_instance_type(&self) -> Option<&InstanceType> {
232
+ match self {
233
+ Self::Instance(ty) => Some(ty),
234
+ _ => None,
235
+ }
236
+ }
237
+
238
+ /// Converts the type to a component type.
239
+ pub fn as_component_type(&self) -> Option<&ComponentType> {
240
+ match self {
241
+ Self::Component(ty) => Some(ty),
242
+ _ => None,
243
+ }
244
+ }
245
+
246
+ /// Converts the type to a component instance type.
247
+ pub fn as_component_instance_type(&self) -> Option<&ComponentInstanceType> {
248
+ match self {
249
+ Self::ComponentInstance(ty) => Some(ty),
250
+ _ => None,
251
+ }
252
+ }
253
+
254
+ /// Converts the type to a component function type.
255
+ pub fn as_component_func_type(&self) -> Option<&ComponentFuncType> {
256
+ match self {
257
+ Self::ComponentFunc(ty) => Some(ty),
258
+ _ => None,
259
+ }
260
+ }
261
+
262
+ /// Converts the type to a component defined type.
263
+ pub fn as_defined_type(&self) -> Option<&ComponentDefinedType> {
264
+ match self {
265
+ Self::Defined(ty) => Some(ty),
266
+ _ => None,
267
+ }
268
+ }
269
+
270
+ /// Converts this type to a resource type, returning the corresponding id.
271
+ pub fn as_resource(&self) -> Option<ResourceId> {
272
+ match self {
273
+ Self::Resource(id) => Some(*id),
274
+ _ => None,
275
+ }
276
+ }
277
+
278
+ pub(crate) fn type_size(&self) -> u32 {
279
+ match self {
280
+ Self::Func(ty) => 1 + (ty.params().len() + ty.results().len()) as u32,
281
+ Self::Array(_) => 2, // 2 is a guess.
282
+ Self::Module(ty) => ty.type_size,
283
+ Self::Instance(ty) => ty.type_size,
284
+ Self::Component(ty) => ty.type_size,
285
+ Self::ComponentInstance(ty) => ty.type_size,
286
+ Self::ComponentFunc(ty) => ty.type_size,
287
+ Self::Defined(ty) => ty.type_size(),
288
+ Self::Resource(_) => 1,
289
+ }
290
+ }
291
+ }
292
+
293
+ /// A component value type.
294
+ #[derive(Debug, Clone, Copy)]
295
+ pub enum ComponentValType {
296
+ /// The value type is one of the primitive types.
297
+ Primitive(PrimitiveValType),
298
+ /// The type is represented with the given type identifier.
299
+ Type(TypeId),
300
+ }
301
+
302
+ impl ComponentValType {
303
+ pub(crate) fn requires_realloc(&self, types: &TypeList) -> bool {
304
+ match self {
305
+ ComponentValType::Primitive(ty) => ty.requires_realloc(),
306
+ ComponentValType::Type(ty) => types[*ty]
307
+ .as_defined_type()
308
+ .unwrap()
309
+ .requires_realloc(types),
310
+ }
311
+ }
312
+
313
+ fn push_wasm_types(&self, types: &TypeList, lowered_types: &mut LoweredTypes) -> bool {
314
+ match self {
315
+ Self::Primitive(ty) => push_primitive_wasm_types(ty, lowered_types),
316
+ Self::Type(id) => types[*id]
317
+ .as_defined_type()
318
+ .unwrap()
319
+ .push_wasm_types(types, lowered_types),
320
+ }
321
+ }
322
+
323
+ pub(crate) fn type_size(&self) -> u32 {
324
+ match self {
325
+ Self::Primitive(_) => 1,
326
+ Self::Type(id) => id.type_size,
327
+ }
328
+ }
329
+ }
330
+
331
+ /// The entity type for imports and exports of a module.
332
+ #[derive(Debug, Clone, Copy)]
333
+ pub enum EntityType {
334
+ /// The entity is a function.
335
+ Func(TypeId),
336
+ /// The entity is a table.
337
+ Table(TableType),
338
+ /// The entity is a memory.
339
+ Memory(MemoryType),
340
+ /// The entity is a global.
341
+ Global(GlobalType),
342
+ /// The entity is a tag.
343
+ Tag(TypeId),
344
+ }
345
+
346
+ impl EntityType {
347
+ pub(crate) fn desc(&self) -> &'static str {
348
+ match self {
349
+ Self::Func(_) => "func",
350
+ Self::Table(_) => "table",
351
+ Self::Memory(_) => "memory",
352
+ Self::Global(_) => "global",
353
+ Self::Tag(_) => "tag",
354
+ }
355
+ }
356
+
357
+ pub(crate) fn type_size(&self) -> u32 {
358
+ match self {
359
+ Self::Func(id) | Self::Tag(id) => id.type_size,
360
+ Self::Table(_) | Self::Memory(_) | Self::Global(_) => 1,
361
+ }
362
+ }
363
+ }
364
+
365
+ trait ModuleImportKey {
366
+ fn module(&self) -> &str;
367
+ fn name(&self) -> &str;
368
+ }
369
+
370
+ impl<'a> Borrow<dyn ModuleImportKey + 'a> for (String, String) {
371
+ fn borrow(&self) -> &(dyn ModuleImportKey + 'a) {
372
+ self
373
+ }
374
+ }
375
+
376
+ impl Hash for (dyn ModuleImportKey + '_) {
377
+ fn hash<H: Hasher>(&self, state: &mut H) {
378
+ self.module().hash(state);
379
+ self.name().hash(state);
380
+ }
381
+ }
382
+
383
+ impl PartialEq for (dyn ModuleImportKey + '_) {
384
+ fn eq(&self, other: &Self) -> bool {
385
+ self.module() == other.module() && self.name() == other.name()
386
+ }
387
+ }
388
+
389
+ impl Eq for (dyn ModuleImportKey + '_) {}
390
+
391
+ impl ModuleImportKey for (String, String) {
392
+ fn module(&self) -> &str {
393
+ &self.0
394
+ }
395
+
396
+ fn name(&self) -> &str {
397
+ &self.1
398
+ }
399
+ }
400
+
401
+ impl ModuleImportKey for (&str, &str) {
402
+ fn module(&self) -> &str {
403
+ self.0
404
+ }
405
+
406
+ fn name(&self) -> &str {
407
+ self.1
408
+ }
409
+ }
410
+
411
+ /// Represents a core module type.
412
+ #[derive(Debug, Clone)]
413
+ pub struct ModuleType {
414
+ /// The effective type size for the module type.
415
+ pub(crate) type_size: u32,
416
+ /// The imports of the module type.
417
+ pub imports: IndexMap<(String, String), EntityType>,
418
+ /// The exports of the module type.
419
+ pub exports: IndexMap<String, EntityType>,
420
+ }
421
+
422
+ impl ModuleType {
423
+ /// Looks up an import by its module and name.
424
+ ///
425
+ /// Returns `None` if the import was not found.
426
+ pub fn lookup_import(&self, module: &str, name: &str) -> Option<&EntityType> {
427
+ self.imports.get(&(module, name) as &dyn ModuleImportKey)
428
+ }
429
+ }
430
+
431
+ /// Represents the kind of module instance type.
432
+ #[derive(Debug, Clone)]
433
+ pub enum InstanceTypeKind {
434
+ /// The instance type is the result of instantiating a module type.
435
+ Instantiated(TypeId),
436
+ /// The instance type is the result of instantiating from exported items.
437
+ Exports(IndexMap<String, EntityType>),
438
+ }
439
+
440
+ /// Represents a module instance type.
441
+ #[derive(Debug, Clone)]
442
+ pub struct InstanceType {
443
+ /// The effective type size for the module instance type.
444
+ pub(crate) type_size: u32,
445
+ /// The kind of module instance type.
446
+ pub kind: InstanceTypeKind,
447
+ }
448
+
449
+ impl InstanceType {
450
+ /// Gets the exports of the instance type.
451
+ pub fn exports<'a>(&'a self, types: TypesRef<'a>) -> &'a IndexMap<String, EntityType> {
452
+ self.internal_exports(types.list)
453
+ }
454
+
455
+ pub(crate) fn internal_exports<'a>(
456
+ &'a self,
457
+ types: &'a TypeList,
458
+ ) -> &'a IndexMap<String, EntityType> {
459
+ match &self.kind {
460
+ InstanceTypeKind::Instantiated(id) => &types[*id].as_module_type().unwrap().exports,
461
+ InstanceTypeKind::Exports(exports) => exports,
462
+ }
463
+ }
464
+ }
465
+
466
+ /// The entity type for imports and exports of a component.
467
+ #[derive(Debug, Clone, Copy)]
468
+ pub enum ComponentEntityType {
469
+ /// The entity is a core module.
470
+ Module(TypeId),
471
+ /// The entity is a function.
472
+ Func(TypeId),
473
+ /// The entity is a value.
474
+ Value(ComponentValType),
475
+ /// The entity is a type.
476
+ Type {
477
+ /// This is the identifier of the type that was referenced when this
478
+ /// entity was created.
479
+ referenced: TypeId,
480
+ /// This is the identifier of the type that was created when this type
481
+ /// was imported or exported from the component.
482
+ ///
483
+ /// Note that the underlying type information for the `referenced`
484
+ /// field and for this `created` field is the same, but these two types
485
+ /// will hash to different values.
486
+ created: TypeId,
487
+ },
488
+ /// The entity is a component instance.
489
+ Instance(TypeId),
490
+ /// The entity is a component.
491
+ Component(TypeId),
492
+ }
493
+
494
+ impl ComponentEntityType {
495
+ /// Determines if component entity type `a` is a subtype of `b`.
496
+ pub fn is_subtype_of(a: &Self, at: TypesRef, b: &Self, bt: TypesRef) -> bool {
497
+ SubtypeCx::new(at.list, bt.list)
498
+ .component_entity_type(a, b, 0)
499
+ .is_ok()
500
+ }
501
+
502
+ pub(crate) fn desc(&self) -> &'static str {
503
+ match self {
504
+ Self::Module(_) => "module",
505
+ Self::Func(_) => "func",
506
+ Self::Value(_) => "value",
507
+ Self::Type { .. } => "type",
508
+ Self::Instance(_) => "instance",
509
+ Self::Component(_) => "component",
510
+ }
511
+ }
512
+
513
+ pub(crate) fn type_size(&self) -> u32 {
514
+ match self {
515
+ Self::Module(ty)
516
+ | Self::Func(ty)
517
+ | Self::Type { referenced: ty, .. }
518
+ | Self::Instance(ty)
519
+ | Self::Component(ty) => ty.type_size,
520
+ Self::Value(ty) => ty.type_size(),
521
+ }
522
+ }
523
+ }
524
+
525
+ /// Represents a type of a component.
526
+ #[derive(Debug, Clone)]
527
+ pub struct ComponentType {
528
+ /// The effective type size for the component type.
529
+ pub(crate) type_size: u32,
530
+
531
+ /// The imports of the component type.
532
+ ///
533
+ /// Each import has its own kebab-name and an optional URL listed. Note that
534
+ /// the set of import names is disjoint with the set of export names.
535
+ pub imports: IndexMap<String, ComponentEntityType>,
536
+
537
+ /// The exports of the component type.
538
+ ///
539
+ /// Each export has its own kebab-name and an optional URL listed. Note that
540
+ /// the set of export names is disjoint with the set of import names.
541
+ pub exports: IndexMap<String, ComponentEntityType>,
542
+
543
+ /// Universally quantified resources required to be provided when
544
+ /// instantiating this component type.
545
+ ///
546
+ /// Each resource in this map is explicitly imported somewhere in the
547
+ /// `imports` map. The "path" to where it's imported is specified by the
548
+ /// `Vec<usize>` payload here. For more information about the indexes see
549
+ /// the documentation on `ComponentState::imported_resources`.
550
+ ///
551
+ /// This should technically be inferrable from the structure of `imports`,
552
+ /// but it's stored as an auxiliary set for subtype checking and
553
+ /// instantiation.
554
+ ///
555
+ /// Note that this is not a set of all resources referred to by the
556
+ /// `imports`. Instead it's only those created, relative to the internals of
557
+ /// this component, by the imports.
558
+ pub imported_resources: Vec<(ResourceId, Vec<usize>)>,
559
+
560
+ /// The dual of the `imported_resources`, or the set of defined
561
+ /// resources -- those created through the instantiation process which are
562
+ /// unique to this component.
563
+ ///
564
+ /// This set is similar to the `imported_resources` set but it's those
565
+ /// contained within the `exports`. Instantiating this component will
566
+ /// create fresh new versions of all of these resources. The path here is
567
+ /// within the `exports` array.
568
+ pub defined_resources: Vec<(ResourceId, Vec<usize>)>,
569
+
570
+ /// The set of all resources which are explicitly exported by this
571
+ /// component, and where they're exported.
572
+ ///
573
+ /// This mapping is stored separately from `defined_resources` to ensure
574
+ /// that it contains all exported resources, not just those which are
575
+ /// defined. That means that this can cover reexports of imported
576
+ /// resources, exports of local resources, or exports of closed-over
577
+ /// resources for example.
578
+ pub explicit_resources: IndexMap<ResourceId, Vec<usize>>,
579
+ }
580
+
581
+ /// Represents a type of a component instance.
582
+ #[derive(Debug, Clone)]
583
+ pub struct ComponentInstanceType {
584
+ /// The effective type size for the instance type.
585
+ pub(crate) type_size: u32,
586
+
587
+ /// The list of exports, keyed by name, that this instance has.
588
+ ///
589
+ /// An optional URL and type of each export is provided as well.
590
+ pub exports: IndexMap<String, ComponentEntityType>,
591
+
592
+ /// The list of "defined resources" or those which are closed over in
593
+ /// this instance type.
594
+ ///
595
+ /// This list is populated, for example, when the type of an instance is
596
+ /// declared and it contains its own resource type exports defined
597
+ /// internally. For example:
598
+ ///
599
+ /// ```wasm
600
+ /// (component
601
+ /// (type (instance
602
+ /// (export "x" (type sub resource)) ;; one `defined_resources` entry
603
+ /// ))
604
+ /// )
605
+ /// ```
606
+ ///
607
+ /// This list is also a bit of an oddity, however, because the type of a
608
+ /// concrete instance will always have this as empty. For example:
609
+ ///
610
+ /// ```wasm
611
+ /// (component
612
+ /// (type $t (instance (export "x" (type sub resource))))
613
+ ///
614
+ /// ;; the type of this instance has no defined resources
615
+ /// (import "i" (instance (type $t)))
616
+ /// )
617
+ /// ```
618
+ ///
619
+ /// This list ends up only being populated for instance types declared in a
620
+ /// module which aren't yet "attached" to anything. Once something is
621
+ /// instantiated, imported, exported, or otherwise refers to a concrete
622
+ /// instance then this list is always empty. For concrete instances
623
+ /// defined resources are tracked in the component state or component type.
624
+ pub defined_resources: Vec<ResourceId>,
625
+
626
+ /// The list of all resources that are explicitly exported from this
627
+ /// instance type along with the path they're exported at.
628
+ pub explicit_resources: IndexMap<ResourceId, Vec<usize>>,
629
+ }
630
+
631
+ /// Represents a type of a component function.
632
+ #[derive(Debug, Clone)]
633
+ pub struct ComponentFuncType {
634
+ /// The effective type size for the component function type.
635
+ pub(crate) type_size: u32,
636
+ /// The function parameters.
637
+ pub params: Box<[(KebabString, ComponentValType)]>,
638
+ /// The function's results.
639
+ pub results: Box<[(Option<KebabString>, ComponentValType)]>,
640
+ }
641
+
642
+ impl ComponentFuncType {
643
+ /// Lowers the component function type to core parameter and result types for the
644
+ /// canonical ABI.
645
+ pub(crate) fn lower(&self, types: &TypeList, import: bool) -> LoweringInfo {
646
+ let mut info = LoweringInfo::default();
647
+
648
+ for (_, ty) in self.params.iter() {
649
+ // When `import` is false, it means we're lifting a core function,
650
+ // check if the parameters needs realloc
651
+ if !import && !info.requires_realloc {
652
+ info.requires_realloc = ty.requires_realloc(types);
653
+ }
654
+
655
+ if !ty.push_wasm_types(types, &mut info.params) {
656
+ // Too many parameters to pass directly
657
+ // Function will have a single pointer parameter to pass the arguments
658
+ // via linear memory
659
+ info.params.clear();
660
+ assert!(info.params.push(ValType::I32));
661
+ info.requires_memory = true;
662
+
663
+ // We need realloc as well when lifting a function
664
+ if !import {
665
+ info.requires_realloc = true;
666
+ }
667
+ break;
668
+ }
669
+ }
670
+
671
+ for (_, ty) in self.results.iter() {
672
+ // When `import` is true, it means we're lowering a component function,
673
+ // check if the result needs realloc
674
+ if import && !info.requires_realloc {
675
+ info.requires_realloc = ty.requires_realloc(types);
676
+ }
677
+
678
+ if !ty.push_wasm_types(types, &mut info.results) {
679
+ // Too many results to return directly, either a retptr parameter will be used (import)
680
+ // or a single pointer will be returned (export)
681
+ info.results.clear();
682
+ if import {
683
+ info.params.max = MAX_LOWERED_TYPES;
684
+ assert!(info.params.push(ValType::I32));
685
+ } else {
686
+ assert!(info.results.push(ValType::I32));
687
+ }
688
+ info.requires_memory = true;
689
+ break;
690
+ }
691
+ }
692
+
693
+ // Memory is always required when realloc is required
694
+ info.requires_memory |= info.requires_realloc;
695
+
696
+ info
697
+ }
698
+ }
699
+
700
+ /// Represents a variant case.
701
+ #[derive(Debug, Clone)]
702
+ pub struct VariantCase {
703
+ /// The variant case type.
704
+ pub ty: Option<ComponentValType>,
705
+ /// The name of the variant case refined by this one.
706
+ pub refines: Option<KebabString>,
707
+ }
708
+
709
+ /// Represents a record type.
710
+ #[derive(Debug, Clone)]
711
+ pub struct RecordType {
712
+ /// The effective type size for the record type.
713
+ pub(crate) type_size: u32,
714
+ /// The map of record fields.
715
+ pub fields: IndexMap<KebabString, ComponentValType>,
716
+ }
717
+
718
+ /// Represents a variant type.
719
+ #[derive(Debug, Clone)]
720
+ pub struct VariantType {
721
+ /// The effective type size for the variant type.
722
+ pub(crate) type_size: u32,
723
+ /// The map of variant cases.
724
+ pub cases: IndexMap<KebabString, VariantCase>,
725
+ }
726
+
727
+ /// Represents a tuple type.
728
+ #[derive(Debug, Clone)]
729
+ pub struct TupleType {
730
+ /// The effective type size for the tuple type.
731
+ pub(crate) type_size: u32,
732
+ /// The types of the tuple.
733
+ pub types: Box<[ComponentValType]>,
734
+ }
735
+
736
+ /// Represents a union type.
737
+ #[derive(Debug, Clone)]
738
+ pub struct UnionType {
739
+ /// The inclusive type count for the union type.
740
+ pub(crate) type_size: u32,
741
+ /// The types of the union.
742
+ pub types: Box<[ComponentValType]>,
743
+ }
744
+
745
+ /// Represents a component defined type.
746
+ #[derive(Debug, Clone)]
747
+ pub enum ComponentDefinedType {
748
+ /// The type is a primitive value type.
749
+ Primitive(PrimitiveValType),
750
+ /// The type is a record.
751
+ Record(RecordType),
752
+ /// The type is a variant.
753
+ Variant(VariantType),
754
+ /// The type is a list.
755
+ List(ComponentValType),
756
+ /// The type is a tuple.
757
+ Tuple(TupleType),
758
+ /// The type is a set of flags.
759
+ Flags(IndexSet<KebabString>),
760
+ /// The type is an enumeration.
761
+ Enum(IndexSet<KebabString>),
762
+ /// The type is a union.
763
+ Union(UnionType),
764
+ /// The type is an `option`.
765
+ Option(ComponentValType),
766
+ /// The type is a `result`.
767
+ Result {
768
+ /// The `ok` type.
769
+ ok: Option<ComponentValType>,
770
+ /// The `error` type.
771
+ err: Option<ComponentValType>,
772
+ },
773
+ /// The type is an owned handle to the specified resource.
774
+ Own(TypeId),
775
+ /// The type is a borrowed handle to the specified resource.
776
+ Borrow(TypeId),
777
+ }
778
+
779
+ impl ComponentDefinedType {
780
+ pub(crate) fn requires_realloc(&self, types: &TypeList) -> bool {
781
+ match self {
782
+ Self::Primitive(ty) => ty.requires_realloc(),
783
+ Self::Record(r) => r.fields.values().any(|ty| ty.requires_realloc(types)),
784
+ Self::Variant(v) => v.cases.values().any(|case| {
785
+ case.ty
786
+ .map(|ty| ty.requires_realloc(types))
787
+ .unwrap_or(false)
788
+ }),
789
+ Self::List(_) => true,
790
+ Self::Tuple(t) => t.types.iter().any(|ty| ty.requires_realloc(types)),
791
+ Self::Union(u) => u.types.iter().any(|ty| ty.requires_realloc(types)),
792
+ Self::Flags(_) | Self::Enum(_) | Self::Own(_) | Self::Borrow(_) => false,
793
+ Self::Option(ty) => ty.requires_realloc(types),
794
+ Self::Result { ok, err } => {
795
+ ok.map(|ty| ty.requires_realloc(types)).unwrap_or(false)
796
+ || err.map(|ty| ty.requires_realloc(types)).unwrap_or(false)
797
+ }
798
+ }
799
+ }
800
+
801
+ pub(crate) fn type_size(&self) -> u32 {
802
+ match self {
803
+ Self::Primitive(_)
804
+ | Self::Flags(_)
805
+ | Self::Enum(_)
806
+ | Self::Own(_)
807
+ | Self::Borrow(_) => 1,
808
+ Self::Record(r) => r.type_size,
809
+ Self::Variant(v) => v.type_size,
810
+ Self::Tuple(t) => t.type_size,
811
+ Self::Union(u) => u.type_size,
812
+ Self::List(ty) | Self::Option(ty) => ty.type_size(),
813
+ Self::Result { ok, err } => {
814
+ ok.map(|ty| ty.type_size()).unwrap_or(1) + err.map(|ty| ty.type_size()).unwrap_or(1)
815
+ }
816
+ }
817
+ }
818
+
819
+ fn push_wasm_types(&self, types: &TypeList, lowered_types: &mut LoweredTypes) -> bool {
820
+ match self {
821
+ Self::Primitive(ty) => push_primitive_wasm_types(ty, lowered_types),
822
+ Self::Record(r) => r
823
+ .fields
824
+ .iter()
825
+ .all(|(_, ty)| ty.push_wasm_types(types, lowered_types)),
826
+ Self::Variant(v) => Self::push_variant_wasm_types(
827
+ v.cases.iter().filter_map(|(_, case)| case.ty.as_ref()),
828
+ types,
829
+ lowered_types,
830
+ ),
831
+ Self::List(_) => lowered_types.push(ValType::I32) && lowered_types.push(ValType::I32),
832
+ Self::Tuple(t) => t
833
+ .types
834
+ .iter()
835
+ .all(|ty| ty.push_wasm_types(types, lowered_types)),
836
+ Self::Flags(names) => {
837
+ (0..(names.len() + 31) / 32).all(|_| lowered_types.push(ValType::I32))
838
+ }
839
+ Self::Enum(_) | Self::Own(_) | Self::Borrow(_) => lowered_types.push(ValType::I32),
840
+ Self::Union(u) => Self::push_variant_wasm_types(u.types.iter(), types, lowered_types),
841
+ Self::Option(ty) => {
842
+ Self::push_variant_wasm_types([ty].into_iter(), types, lowered_types)
843
+ }
844
+ Self::Result { ok, err } => {
845
+ Self::push_variant_wasm_types(ok.iter().chain(err.iter()), types, lowered_types)
846
+ }
847
+ }
848
+ }
849
+
850
+ fn push_variant_wasm_types<'a>(
851
+ cases: impl Iterator<Item = &'a ComponentValType>,
852
+ types: &TypeList,
853
+ lowered_types: &mut LoweredTypes,
854
+ ) -> bool {
855
+ // Push the discriminant
856
+ if !lowered_types.push(ValType::I32) {
857
+ return false;
858
+ }
859
+
860
+ let start = lowered_types.len();
861
+
862
+ for ty in cases {
863
+ let mut temp = LoweredTypes::new(lowered_types.max);
864
+
865
+ if !ty.push_wasm_types(types, &mut temp) {
866
+ return false;
867
+ }
868
+
869
+ for (i, ty) in temp.iter().enumerate() {
870
+ match lowered_types.get_mut(start + i) {
871
+ Some(prev) => *prev = Self::join_types(*prev, ty),
872
+ None => {
873
+ if !lowered_types.push(ty) {
874
+ return false;
875
+ }
876
+ }
877
+ }
878
+ }
879
+ }
880
+
881
+ true
882
+ }
883
+
884
+ fn join_types(a: ValType, b: ValType) -> ValType {
885
+ use ValType::*;
886
+
887
+ match (a, b) {
888
+ (I32, I32) | (I64, I64) | (F32, F32) | (F64, F64) => a,
889
+ (I32, F32) | (F32, I32) => I32,
890
+ (_, I64 | F64) | (I64 | F64, _) => I64,
891
+ _ => panic!("unexpected wasm type for canonical ABI"),
892
+ }
893
+ }
894
+
895
+ fn desc(&self) -> &'static str {
896
+ match self {
897
+ ComponentDefinedType::Record(_) => "record",
898
+ ComponentDefinedType::Primitive(_) => "primitive",
899
+ ComponentDefinedType::Variant(_) => "variant",
900
+ ComponentDefinedType::Tuple(_) => "tuple",
901
+ ComponentDefinedType::Enum(_) => "enum",
902
+ ComponentDefinedType::Flags(_) => "flags",
903
+ ComponentDefinedType::Option(_) => "option",
904
+ ComponentDefinedType::List(_) => "list",
905
+ ComponentDefinedType::Union(_) => "union",
906
+ ComponentDefinedType::Result { .. } => "result",
907
+ ComponentDefinedType::Own(_) => "own",
908
+ ComponentDefinedType::Borrow(_) => "borrow",
909
+ }
910
+ }
911
+ }
912
+
913
+ /// An opaque identifier intended to be used to distinguish whether two
914
+ /// resource types are equivalent or not.
915
+ #[derive(Debug, Clone, PartialEq, Eq, Hash, Ord, PartialOrd, Copy)]
916
+ #[repr(packed(4))] // try to not waste 4 bytes in padding
917
+ pub struct ResourceId {
918
+ // This is a globally unique identifier which is assigned once per
919
+ // `TypeAlloc`. This ensures that resource identifiers from different
920
+ // instances of `Types`, for example, are considered unique.
921
+ //
922
+ // Technically 64-bits should be enough for all resource ids ever, but
923
+ // they're allocated so often it's predicted that an atomic increment
924
+ // per resource id is probably too expensive. To amortize that cost each
925
+ // top-level wasm component gets a single globally unique identifier, and
926
+ // then within a component contextually unique identifiers are handed out.
927
+ globally_unique_id: u64,
928
+
929
+ // A contextually unique id within the globally unique id above. This is
930
+ // allocated within a `TypeAlloc` with its own counter, and allocations of
931
+ // this are cheap as nothing atomic is required.
932
+ //
933
+ // The 32-bit storage here should ideally be enough for any component
934
+ // containing resources. If memory usage becomes an issue (this struct is
935
+ // 12 bytes instead of 8 or 4) then this coudl get folded into the globally
936
+ // unique id with everything using an atomic increment perhaps.
937
+ contextually_unique_id: u32,
938
+ }
939
+
940
+ #[allow(clippy::large_enum_variant)]
941
+ enum TypesKind {
942
+ Module(Arc<Module>),
943
+ Component(ComponentState),
944
+ }
945
+
946
+ /// Represents the types known to a [`crate::Validator`] once validation has completed.
947
+ ///
948
+ /// The type information is returned via the [`crate::Validator::end`] method.
949
+ pub struct Types {
950
+ list: TypeList,
951
+ kind: TypesKind,
952
+ }
953
+
954
+ #[derive(Clone, Copy)]
955
+ enum TypesRefKind<'a> {
956
+ Module(&'a Module),
957
+ Component(&'a ComponentState),
958
+ }
959
+
960
+ /// Represents the types known to a [`crate::Validator`] during validation.
961
+ ///
962
+ /// Retrieved via the [`crate::Validator::types`] method.
963
+ #[derive(Clone, Copy)]
964
+ pub struct TypesRef<'a> {
965
+ list: &'a TypeList,
966
+ kind: TypesRefKind<'a>,
967
+ }
968
+
969
+ impl<'a> TypesRef<'a> {
970
+ pub(crate) fn from_module(types: &'a TypeList, module: &'a Module) -> Self {
971
+ Self {
972
+ list: types,
973
+ kind: TypesRefKind::Module(module),
974
+ }
975
+ }
976
+
977
+ pub(crate) fn from_component(types: &'a TypeList, component: &'a ComponentState) -> Self {
978
+ Self {
979
+ list: types,
980
+ kind: TypesRefKind::Component(component),
981
+ }
982
+ }
983
+
984
+ fn types(&self, core: bool) -> Option<&'a [TypeId]> {
985
+ Some(match &self.kind {
986
+ TypesRefKind::Module(module) => {
987
+ if core {
988
+ &module.types
989
+ } else {
990
+ return None;
991
+ }
992
+ }
993
+ TypesRefKind::Component(component) => {
994
+ if core {
995
+ &component.core_types
996
+ } else {
997
+ &component.types
998
+ }
999
+ }
1000
+ })
1001
+ }
1002
+
1003
+ /// Gets a type based on its type id.
1004
+ ///
1005
+ /// Returns `None` if the type id is unknown.
1006
+ pub fn type_from_id(&self, id: TypeId) -> Option<&'a Type> {
1007
+ self.list.get(id.index)
1008
+ }
1009
+
1010
+ /// Gets a type id from a type index.
1011
+ ///
1012
+ /// Returns `None` if the type index is out of bounds or the type has not
1013
+ /// been parsed yet.
1014
+ pub fn id_from_type_index(&self, index: u32, core: bool) -> Option<TypeId> {
1015
+ self.types(core)?.get(index as usize).copied()
1016
+ }
1017
+
1018
+ /// Gets a type at the given type index.
1019
+ ///
1020
+ /// Returns `None` if the type index is out of bounds or the type has not
1021
+ /// been parsed yet.
1022
+ pub fn type_at(&self, index: u32, core: bool) -> Option<&'a Type> {
1023
+ self.type_from_id(self.id_from_type_index(index, core)?)
1024
+ }
1025
+
1026
+ /// Gets a defined core function type at the given type index.
1027
+ ///
1028
+ /// Returns `None` if the type index is out of bounds or the type has not
1029
+ /// been parsed yet.
1030
+ pub fn func_type_at(&self, index: u32) -> Option<&'a FuncType> {
1031
+ match self.type_at(index, true)? {
1032
+ Type::Func(ty) => Some(ty),
1033
+ _ => None,
1034
+ }
1035
+ }
1036
+
1037
+ /// Gets the type of a table at the given table index.
1038
+ ///
1039
+ /// Returns `None` if the type index is out of bounds or the type has not
1040
+ /// been parsed yet.
1041
+ pub fn table_at(&self, index: u32) -> Option<TableType> {
1042
+ let tables = match &self.kind {
1043
+ TypesRefKind::Module(module) => &module.tables,
1044
+ TypesRefKind::Component(component) => &component.core_tables,
1045
+ };
1046
+
1047
+ tables.get(index as usize).copied()
1048
+ }
1049
+
1050
+ /// Gets the type of a memory at the given memory index.
1051
+ ///
1052
+ /// Returns `None` if the type index is out of bounds or the type has not
1053
+ /// been parsed yet.
1054
+ pub fn memory_at(&self, index: u32) -> Option<MemoryType> {
1055
+ let memories = match &self.kind {
1056
+ TypesRefKind::Module(module) => &module.memories,
1057
+ TypesRefKind::Component(component) => &component.core_memories,
1058
+ };
1059
+
1060
+ memories.get(index as usize).copied()
1061
+ }
1062
+
1063
+ /// Gets the type of a global at the given global index.
1064
+ ///
1065
+ /// Returns `None` if the type index is out of bounds or the type has not
1066
+ /// been parsed yet.
1067
+ pub fn global_at(&self, index: u32) -> Option<GlobalType> {
1068
+ let globals = match &self.kind {
1069
+ TypesRefKind::Module(module) => &module.globals,
1070
+ TypesRefKind::Component(component) => &component.core_globals,
1071
+ };
1072
+
1073
+ globals.get(index as usize).copied()
1074
+ }
1075
+
1076
+ /// Gets the type of a tag at the given tag index.
1077
+ ///
1078
+ /// Returns `None` if the type index is out of bounds or the type has not
1079
+ /// been parsed yet.
1080
+ pub fn tag_at(&self, index: u32) -> Option<&'a FuncType> {
1081
+ let tags = match &self.kind {
1082
+ TypesRefKind::Module(module) => &module.tags,
1083
+ TypesRefKind::Component(component) => &component.core_tags,
1084
+ };
1085
+
1086
+ Some(
1087
+ self.list[*tags.get(index as usize)?]
1088
+ .as_func_type()
1089
+ .unwrap(),
1090
+ )
1091
+ }
1092
+
1093
+ /// Gets the type of a core function at the given function index.
1094
+ ///
1095
+ /// Returns `None` if the type index is out of bounds or the type has not
1096
+ /// been parsed yet.
1097
+ pub fn function_at(&self, index: u32) -> Option<&'a FuncType> {
1098
+ let id = match &self.kind {
1099
+ TypesRefKind::Module(module) => {
1100
+ &module.types[*module.functions.get(index as usize)? as usize]
1101
+ }
1102
+ TypesRefKind::Component(component) => component.core_funcs.get(index as usize)?,
1103
+ };
1104
+
1105
+ match &self.list[*id] {
1106
+ Type::Func(ty) => Some(ty),
1107
+ _ => None,
1108
+ }
1109
+ }
1110
+
1111
+ /// Gets the type of an element segment at the given element segment index.
1112
+ ///
1113
+ /// Returns `None` if the type index is out of bounds or the type has not
1114
+ /// been parsed yet.
1115
+ pub fn element_at(&self, index: u32) -> Option<RefType> {
1116
+ match &self.kind {
1117
+ TypesRefKind::Module(module) => module.element_types.get(index as usize).copied(),
1118
+ TypesRefKind::Component(_) => None,
1119
+ }
1120
+ }
1121
+
1122
+ /// Gets the type of a component function at the given function index.
1123
+ ///
1124
+ /// Returns `None` if the type index is out of bounds or the type has not
1125
+ /// been parsed yet.
1126
+ pub fn component_function_at(&self, index: u32) -> Option<&'a ComponentFuncType> {
1127
+ match &self.kind {
1128
+ TypesRefKind::Module(_) => None,
1129
+ TypesRefKind::Component(component) => Some(
1130
+ self.list[*component.funcs.get(index as usize)?]
1131
+ .as_component_func_type()
1132
+ .unwrap(),
1133
+ ),
1134
+ }
1135
+ }
1136
+
1137
+ /// Gets the type of a module at the given module index.
1138
+ ///
1139
+ /// Returns `None` if the type index is out of bounds or the type has not
1140
+ /// been parsed yet.
1141
+ pub fn module_at(&self, index: u32) -> Option<&'a ModuleType> {
1142
+ match &self.kind {
1143
+ TypesRefKind::Module(_) => None,
1144
+ TypesRefKind::Component(component) => Some(
1145
+ self.list[*component.core_modules.get(index as usize)?]
1146
+ .as_module_type()
1147
+ .unwrap(),
1148
+ ),
1149
+ }
1150
+ }
1151
+
1152
+ /// Gets the type of a module instance at the given module instance index.
1153
+ ///
1154
+ /// Returns `None` if the type index is out of bounds or the type has not
1155
+ /// been parsed yet.
1156
+ pub fn instance_at(&self, index: u32) -> Option<&'a InstanceType> {
1157
+ match &self.kind {
1158
+ TypesRefKind::Module(_) => None,
1159
+ TypesRefKind::Component(component) => {
1160
+ let id = component.core_instances.get(index as usize)?;
1161
+ match &self.list[*id] {
1162
+ Type::Instance(ty) => Some(ty),
1163
+ _ => None,
1164
+ }
1165
+ }
1166
+ }
1167
+ }
1168
+
1169
+ /// Gets the type of a component at the given component index.
1170
+ ///
1171
+ /// Returns `None` if the type index is out of bounds or the type has not
1172
+ /// been parsed yet.
1173
+ pub fn component_at(&self, index: u32) -> Option<&'a ComponentType> {
1174
+ match &self.kind {
1175
+ TypesRefKind::Module(_) => None,
1176
+ TypesRefKind::Component(component) => Some(
1177
+ self.list[*component.components.get(index as usize)?]
1178
+ .as_component_type()
1179
+ .unwrap(),
1180
+ ),
1181
+ }
1182
+ }
1183
+
1184
+ /// Gets the type of an component instance at the given component instance index.
1185
+ ///
1186
+ /// Returns `None` if the type index is out of bounds or the type has not
1187
+ /// been parsed yet.
1188
+ pub fn component_instance_at(&self, index: u32) -> Option<TypeId> {
1189
+ match &self.kind {
1190
+ TypesRefKind::Module(_) => None,
1191
+ TypesRefKind::Component(component) => component.instances.get(index as usize).copied(),
1192
+ }
1193
+ }
1194
+
1195
+ /// Gets the type of a value at the given value index.
1196
+ ///
1197
+ /// Returns `None` if the type index is out of bounds or the type has not
1198
+ /// been parsed yet.
1199
+ pub fn value_at(&self, index: u32) -> Option<ComponentValType> {
1200
+ match &self.kind {
1201
+ TypesRefKind::Module(_) => None,
1202
+ TypesRefKind::Component(component) => {
1203
+ component.values.get(index as usize).map(|(r, _)| *r)
1204
+ }
1205
+ }
1206
+ }
1207
+
1208
+ /// Gets the entity type for the given import.
1209
+ pub fn entity_type_from_import(&self, import: &Import) -> Option<EntityType> {
1210
+ match &self.kind {
1211
+ TypesRefKind::Module(module) => Some(match import.ty {
1212
+ TypeRef::Func(idx) => EntityType::Func(*module.types.get(idx as usize)?),
1213
+ TypeRef::Table(ty) => EntityType::Table(ty),
1214
+ TypeRef::Memory(ty) => EntityType::Memory(ty),
1215
+ TypeRef::Global(ty) => EntityType::Global(ty),
1216
+ TypeRef::Tag(ty) => EntityType::Tag(*module.types.get(ty.func_type_idx as usize)?),
1217
+ }),
1218
+ TypesRefKind::Component(_) => None,
1219
+ }
1220
+ }
1221
+
1222
+ /// Gets the entity type from the given export.
1223
+ pub fn entity_type_from_export(&self, export: &Export) -> Option<EntityType> {
1224
+ match &self.kind {
1225
+ TypesRefKind::Module(module) => Some(match export.kind {
1226
+ ExternalKind::Func => EntityType::Func(
1227
+ module.types[*module.functions.get(export.index as usize)? as usize],
1228
+ ),
1229
+ ExternalKind::Table => {
1230
+ EntityType::Table(*module.tables.get(export.index as usize)?)
1231
+ }
1232
+ ExternalKind::Memory => {
1233
+ EntityType::Memory(*module.memories.get(export.index as usize)?)
1234
+ }
1235
+ ExternalKind::Global => {
1236
+ EntityType::Global(*module.globals.get(export.index as usize)?)
1237
+ }
1238
+ ExternalKind::Tag => EntityType::Tag(
1239
+ module.types[*module.functions.get(export.index as usize)? as usize],
1240
+ ),
1241
+ }),
1242
+ TypesRefKind::Component(_) => None,
1243
+ }
1244
+ }
1245
+
1246
+ /// Gets the component entity type for the given component import.
1247
+ pub fn component_entity_type_of_import(&self, name: &str) -> Option<ComponentEntityType> {
1248
+ match &self.kind {
1249
+ TypesRefKind::Module(_) => None,
1250
+ TypesRefKind::Component(component) => Some(*component.imports.get(name)?),
1251
+ }
1252
+ }
1253
+
1254
+ /// Gets the component entity type for the given component export.
1255
+ pub fn component_entity_type_of_export(&self, name: &str) -> Option<ComponentEntityType> {
1256
+ match &self.kind {
1257
+ TypesRefKind::Module(_) => None,
1258
+ TypesRefKind::Component(component) => Some(*component.exports.get(name)?),
1259
+ }
1260
+ }
1261
+ }
1262
+
1263
+ impl Types {
1264
+ pub(crate) fn from_module(types: TypeList, module: Arc<Module>) -> Self {
1265
+ Self {
1266
+ list: types,
1267
+ kind: TypesKind::Module(module),
1268
+ }
1269
+ }
1270
+
1271
+ pub(crate) fn from_component(types: TypeList, component: ComponentState) -> Self {
1272
+ Self {
1273
+ list: types,
1274
+ kind: TypesKind::Component(component),
1275
+ }
1276
+ }
1277
+
1278
+ /// Gets a reference to this validation type information.
1279
+ pub fn as_ref(&self) -> TypesRef {
1280
+ TypesRef {
1281
+ list: &self.list,
1282
+ kind: match &self.kind {
1283
+ TypesKind::Module(module) => TypesRefKind::Module(module),
1284
+ TypesKind::Component(component) => TypesRefKind::Component(component),
1285
+ },
1286
+ }
1287
+ }
1288
+
1289
+ /// Gets a type based on its type id.
1290
+ ///
1291
+ /// Returns `None` if the type id is unknown.
1292
+ pub fn type_from_id(&self, id: TypeId) -> Option<&Type> {
1293
+ self.as_ref().type_from_id(id)
1294
+ }
1295
+
1296
+ /// Gets a type id from a type index.
1297
+ ///
1298
+ /// Returns `None` if the type index is out of bounds.
1299
+ pub fn id_from_type_index(&self, index: u32, core: bool) -> Option<TypeId> {
1300
+ self.as_ref().id_from_type_index(index, core)
1301
+ }
1302
+
1303
+ /// Gets a type at the given type index.
1304
+ ///
1305
+ /// Returns `None` if the index is out of bounds.
1306
+ pub fn type_at(&self, index: u32, core: bool) -> Option<&Type> {
1307
+ self.as_ref().type_at(index, core)
1308
+ }
1309
+
1310
+ /// Gets a defined core function type at the given type index.
1311
+ ///
1312
+ /// Returns `None` if the index is out of bounds.
1313
+ pub fn func_type_at(&self, index: u32) -> Option<&FuncType> {
1314
+ self.as_ref().func_type_at(index)
1315
+ }
1316
+
1317
+ /// Gets the count of core types.
1318
+ pub fn type_count(&self) -> usize {
1319
+ match &self.kind {
1320
+ TypesKind::Module(module) => module.types.len(),
1321
+ TypesKind::Component(component) => component.core_types.len(),
1322
+ }
1323
+ }
1324
+
1325
+ /// Gets the type of a table at the given table index.
1326
+ ///
1327
+ /// Returns `None` if the index is out of bounds.
1328
+ pub fn table_at(&self, index: u32) -> Option<TableType> {
1329
+ self.as_ref().table_at(index)
1330
+ }
1331
+
1332
+ /// Gets the count of imported and defined tables.
1333
+ pub fn table_count(&self) -> usize {
1334
+ match &self.kind {
1335
+ TypesKind::Module(module) => module.tables.len(),
1336
+ TypesKind::Component(component) => component.core_tables.len(),
1337
+ }
1338
+ }
1339
+
1340
+ /// Gets the type of a memory at the given memory index.
1341
+ ///
1342
+ /// Returns `None` if the index is out of bounds.
1343
+ pub fn memory_at(&self, index: u32) -> Option<MemoryType> {
1344
+ self.as_ref().memory_at(index)
1345
+ }
1346
+
1347
+ /// Gets the count of imported and defined memories.
1348
+ pub fn memory_count(&self) -> usize {
1349
+ match &self.kind {
1350
+ TypesKind::Module(module) => module.memories.len(),
1351
+ TypesKind::Component(component) => component.core_memories.len(),
1352
+ }
1353
+ }
1354
+
1355
+ /// Gets the type of a global at the given global index.
1356
+ ///
1357
+ /// Returns `None` if the index is out of bounds.
1358
+ pub fn global_at(&self, index: u32) -> Option<GlobalType> {
1359
+ self.as_ref().global_at(index)
1360
+ }
1361
+
1362
+ /// Gets the count of imported and defined globals.
1363
+ pub fn global_count(&self) -> usize {
1364
+ match &self.kind {
1365
+ TypesKind::Module(module) => module.globals.len(),
1366
+ TypesKind::Component(component) => component.core_globals.len(),
1367
+ }
1368
+ }
1369
+
1370
+ /// Gets the type of a tag at the given tag index.
1371
+ ///
1372
+ /// Returns `None` if the index is out of bounds.
1373
+ pub fn tag_at(&self, index: u32) -> Option<&FuncType> {
1374
+ self.as_ref().tag_at(index)
1375
+ }
1376
+
1377
+ /// Gets the count of imported and defined tags.
1378
+ pub fn tag_count(&self) -> usize {
1379
+ match &self.kind {
1380
+ TypesKind::Module(module) => module.tags.len(),
1381
+ TypesKind::Component(component) => component.core_tags.len(),
1382
+ }
1383
+ }
1384
+
1385
+ /// Gets the type of a core function at the given function index.
1386
+ ///
1387
+ /// Returns `None` if the index is out of bounds.
1388
+ pub fn function_at(&self, index: u32) -> Option<&FuncType> {
1389
+ self.as_ref().function_at(index)
1390
+ }
1391
+
1392
+ /// Gets the count of imported and defined core functions.
1393
+ ///
1394
+ /// The count also includes aliased core functions in components.
1395
+ pub fn function_count(&self) -> usize {
1396
+ match &self.kind {
1397
+ TypesKind::Module(module) => module.functions.len(),
1398
+ TypesKind::Component(component) => component.core_funcs.len(),
1399
+ }
1400
+ }
1401
+
1402
+ /// Gets the type of an element segment at the given element segment index.
1403
+ ///
1404
+ /// Returns `None` if the index is out of bounds.
1405
+ pub fn element_at(&self, index: u32) -> Option<RefType> {
1406
+ match &self.kind {
1407
+ TypesKind::Module(module) => module.element_types.get(index as usize).copied(),
1408
+ TypesKind::Component(_) => None,
1409
+ }
1410
+ }
1411
+
1412
+ /// Gets the count of element segments.
1413
+ pub fn element_count(&self) -> usize {
1414
+ match &self.kind {
1415
+ TypesKind::Module(module) => module.element_types.len(),
1416
+ TypesKind::Component(_) => 0,
1417
+ }
1418
+ }
1419
+
1420
+ /// Gets the type of a component function at the given function index.
1421
+ ///
1422
+ /// Returns `None` if the index is out of bounds.
1423
+ pub fn component_function_at(&self, index: u32) -> Option<&ComponentFuncType> {
1424
+ self.as_ref().component_function_at(index)
1425
+ }
1426
+
1427
+ /// Gets the count of imported, exported, or aliased component functions.
1428
+ pub fn component_function_count(&self) -> usize {
1429
+ match &self.kind {
1430
+ TypesKind::Module(_) => 0,
1431
+ TypesKind::Component(component) => component.funcs.len(),
1432
+ }
1433
+ }
1434
+
1435
+ /// Gets the type of a module at the given module index.
1436
+ ///
1437
+ /// Returns `None` if the index is out of bounds.
1438
+ pub fn module_at(&self, index: u32) -> Option<&ModuleType> {
1439
+ self.as_ref().module_at(index)
1440
+ }
1441
+
1442
+ /// Gets the count of imported, exported, or aliased modules.
1443
+ pub fn module_count(&self) -> usize {
1444
+ match &self.kind {
1445
+ TypesKind::Module(_) => 0,
1446
+ TypesKind::Component(component) => component.core_modules.len(),
1447
+ }
1448
+ }
1449
+
1450
+ /// Gets the type of a module instance at the given module instance index.
1451
+ ///
1452
+ /// Returns `None` if the index is out of bounds.
1453
+ pub fn instance_at(&self, index: u32) -> Option<&InstanceType> {
1454
+ self.as_ref().instance_at(index)
1455
+ }
1456
+
1457
+ /// Gets the count of imported, exported, or aliased core module instances.
1458
+ pub fn instance_count(&self) -> usize {
1459
+ match &self.kind {
1460
+ TypesKind::Module(_) => 0,
1461
+ TypesKind::Component(component) => component.core_instances.len(),
1462
+ }
1463
+ }
1464
+
1465
+ /// Gets the type of a component at the given component index.
1466
+ ///
1467
+ /// Returns `None` if the index is out of bounds.
1468
+ pub fn component_at(&self, index: u32) -> Option<&ComponentType> {
1469
+ self.as_ref().component_at(index)
1470
+ }
1471
+
1472
+ /// Gets the count of imported, exported, or aliased components.
1473
+ pub fn component_count(&self) -> usize {
1474
+ match &self.kind {
1475
+ TypesKind::Module(_) => 0,
1476
+ TypesKind::Component(component) => component.components.len(),
1477
+ }
1478
+ }
1479
+
1480
+ /// Gets the type of an component instance at the given component instance index.
1481
+ ///
1482
+ /// Returns `None` if the index is out of bounds.
1483
+ pub fn component_instance_at(&self, index: u32) -> Option<TypeId> {
1484
+ self.as_ref().component_instance_at(index)
1485
+ }
1486
+
1487
+ /// Gets the count of imported, exported, or aliased component instances.
1488
+ pub fn component_instance_count(&self) -> usize {
1489
+ match &self.kind {
1490
+ TypesKind::Module(_) => 0,
1491
+ TypesKind::Component(component) => component.instances.len(),
1492
+ }
1493
+ }
1494
+
1495
+ /// Gets the type of a value at the given value index.
1496
+ ///
1497
+ /// Returns `None` if the index is out of bounds.
1498
+ pub fn value_at(&self, index: u32) -> Option<ComponentValType> {
1499
+ self.as_ref().value_at(index)
1500
+ }
1501
+
1502
+ /// Gets the count of imported, exported, or aliased values.
1503
+ pub fn value_count(&self) -> usize {
1504
+ match &self.kind {
1505
+ TypesKind::Module(_) => 0,
1506
+ TypesKind::Component(component) => component.values.len(),
1507
+ }
1508
+ }
1509
+
1510
+ /// Gets the entity type from the given import.
1511
+ pub fn entity_type_from_import(&self, import: &Import) -> Option<EntityType> {
1512
+ self.as_ref().entity_type_from_import(import)
1513
+ }
1514
+
1515
+ /// Gets the entity type from the given export.
1516
+ pub fn entity_type_from_export(&self, export: &Export) -> Option<EntityType> {
1517
+ self.as_ref().entity_type_from_export(export)
1518
+ }
1519
+
1520
+ /// Gets the component entity type for the given component import name.
1521
+ pub fn component_entity_type_of_import(&self, name: &str) -> Option<ComponentEntityType> {
1522
+ self.as_ref().component_entity_type_of_import(name)
1523
+ }
1524
+
1525
+ /// Gets the component entity type for the given component export name.
1526
+ pub fn component_entity_type_of_export(&self, name: &str) -> Option<ComponentEntityType> {
1527
+ self.as_ref().component_entity_type_of_export(name)
1528
+ }
1529
+
1530
+ /// Attempts to lookup the type id that `ty` is an alias of.
1531
+ ///
1532
+ /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
1533
+ pub fn peel_alias(&self, ty: TypeId) -> Option<TypeId> {
1534
+ self.list.peel_alias(ty)
1535
+ }
1536
+ }
1537
+
1538
+ /// This is a type which mirrors a subset of the `Vec<T>` API, but is intended
1539
+ /// to be able to be cheaply snapshotted and cloned.
1540
+ ///
1541
+ /// When each module's code sections start we "commit" the current list of types
1542
+ /// in the global list of types. This means that the temporary `cur` vec here is
1543
+ /// pushed onto `snapshots` and wrapped up in an `Arc`. At that point we clone
1544
+ /// this entire list (which is then O(modules), not O(types in all modules)) and
1545
+ /// pass out as a context to each function validator.
1546
+ ///
1547
+ /// Otherwise, though, this type behaves as if it were a large `Vec<T>`, but
1548
+ /// it's represented by lists of contiguous chunks.
1549
+ pub(crate) struct SnapshotList<T> {
1550
+ // All previous snapshots, the "head" of the list that this type represents.
1551
+ // The first entry in this pair is the starting index for all elements
1552
+ // contained in the list, and the second element is the list itself. Note
1553
+ // the `Arc` wrapper around sub-lists, which makes cloning time for this
1554
+ // `SnapshotList` O(snapshots) rather than O(snapshots_total), which for
1555
+ // us in this context means the number of modules, not types.
1556
+ //
1557
+ // Note that this list is sorted least-to-greatest in order of the index for
1558
+ // binary searching.
1559
+ snapshots: Vec<Arc<Snapshot<T>>>,
1560
+
1561
+ // This is the total length of all lists in the `snapshots` array.
1562
+ snapshots_total: usize,
1563
+
1564
+ // The current list of types for the current snapshot that are being built.
1565
+ cur: Vec<T>,
1566
+
1567
+ unique_mappings: HashMap<u32, u32>,
1568
+ unique_counter: u32,
1569
+ }
1570
+
1571
+ struct Snapshot<T> {
1572
+ prior_types: usize,
1573
+ unique_counter: u32,
1574
+ unique_mappings: HashMap<u32, u32>,
1575
+ items: Vec<T>,
1576
+ }
1577
+
1578
+ impl<T> SnapshotList<T> {
1579
+ /// Same as `<&[T]>::get`
1580
+ pub(crate) fn get(&self, index: usize) -> Option<&T> {
1581
+ // Check to see if this index falls on our local list
1582
+ if index >= self.snapshots_total {
1583
+ return self.cur.get(index - self.snapshots_total);
1584
+ }
1585
+ // ... and failing that we do a binary search to figure out which bucket
1586
+ // it's in. Note the `i-1` in the `Err` case because if we don't find an
1587
+ // exact match the type is located in the previous bucket.
1588
+ let i = match self
1589
+ .snapshots
1590
+ .binary_search_by_key(&index, |snapshot| snapshot.prior_types)
1591
+ {
1592
+ Ok(i) => i,
1593
+ Err(i) => i - 1,
1594
+ };
1595
+ let snapshot = &self.snapshots[i];
1596
+ Some(&snapshot.items[index - snapshot.prior_types])
1597
+ }
1598
+
1599
+ /// Same as `Vec::push`
1600
+ pub(crate) fn push(&mut self, val: T) {
1601
+ self.cur.push(val);
1602
+ }
1603
+
1604
+ /// Same as `<[T]>::len`
1605
+ pub(crate) fn len(&self) -> usize {
1606
+ self.cur.len() + self.snapshots_total
1607
+ }
1608
+
1609
+ /// Reserve space for an additional count of items.
1610
+ pub(crate) fn reserve(&mut self, additional: usize) {
1611
+ self.cur.reserve(additional);
1612
+ }
1613
+
1614
+ /// Commits previously pushed types into this snapshot vector, and returns a
1615
+ /// clone of this list.
1616
+ ///
1617
+ /// The returned `SnapshotList` can be used to access all the same types as
1618
+ /// this list itself. This list also is not changed (from an external
1619
+ /// perspective) and can continue to access all the same types.
1620
+ pub(crate) fn commit(&mut self) -> SnapshotList<T> {
1621
+ // If the current chunk has new elements, commit them in to an
1622
+ // `Arc`-wrapped vector in the snapshots list. Note the `shrink_to_fit`
1623
+ // ahead of time to hopefully keep memory usage lower than it would
1624
+ // otherwise be. Additionally note that the `unique_counter` is bumped
1625
+ // here to ensure that the previous value of the unique counter is
1626
+ // never used for an actual type so it's suitable for lookup via a
1627
+ // binary search.
1628
+ let len = self.cur.len();
1629
+ if len > 0 {
1630
+ self.unique_counter += 1;
1631
+ self.cur.shrink_to_fit();
1632
+ self.snapshots.push(Arc::new(Snapshot {
1633
+ prior_types: self.snapshots_total,
1634
+ unique_counter: self.unique_counter - 1,
1635
+ unique_mappings: mem::take(&mut self.unique_mappings),
1636
+ items: mem::take(&mut self.cur),
1637
+ }));
1638
+ self.snapshots_total += len;
1639
+ }
1640
+ SnapshotList {
1641
+ snapshots: self.snapshots.clone(),
1642
+ snapshots_total: self.snapshots_total,
1643
+ unique_mappings: HashMap::new(),
1644
+ unique_counter: self.unique_counter,
1645
+ cur: Vec::new(),
1646
+ }
1647
+ }
1648
+
1649
+ /// Modifies a `TypeId` to have the same contents but a fresh new unique id.
1650
+ ///
1651
+ /// This is used during aliasing with components to assign types a unique
1652
+ /// identifier that isn't equivalent to anything else but still
1653
+ /// points to the same underlying type.
1654
+ pub fn with_unique(&mut self, mut ty: TypeId) -> TypeId {
1655
+ self.unique_mappings
1656
+ .insert(self.unique_counter, ty.unique_id);
1657
+ ty.unique_id = self.unique_counter;
1658
+ self.unique_counter += 1;
1659
+ ty
1660
+ }
1661
+
1662
+ /// Attempts to lookup the type id that `ty` is an alias of.
1663
+ ///
1664
+ /// Returns `None` if `ty` wasn't listed as aliasing a prior type.
1665
+ pub fn peel_alias(&self, ty: TypeId) -> Option<TypeId> {
1666
+ // The unique counter in each snapshot is the unique counter at the
1667
+ // time of the snapshot so it's guaranteed to never be used, meaning
1668
+ // that `Ok` should never show up here. With an `Err` it's where the
1669
+ // index would be placed meaning that the index in question is the
1670
+ // smallest value over the unique id's value, meaning that slot has the
1671
+ // mapping we're interested in.
1672
+ let i = match self
1673
+ .snapshots
1674
+ .binary_search_by_key(&ty.unique_id, |snapshot| snapshot.unique_counter)
1675
+ {
1676
+ Ok(_) => unreachable!(),
1677
+ Err(i) => i,
1678
+ };
1679
+
1680
+ // If the `i` index is beyond the snapshot array then lookup in the
1681
+ // current mappings instead since it may refer to a type not snapshot
1682
+ // yet.
1683
+ let unique_id = match self.snapshots.get(i) {
1684
+ Some(snapshot) => *snapshot.unique_mappings.get(&ty.unique_id)?,
1685
+ None => *self.unique_mappings.get(&ty.unique_id)?,
1686
+ };
1687
+ Some(TypeId { unique_id, ..ty })
1688
+ }
1689
+ }
1690
+
1691
+ impl<T> Index<usize> for SnapshotList<T> {
1692
+ type Output = T;
1693
+
1694
+ #[inline]
1695
+ fn index(&self, index: usize) -> &T {
1696
+ self.get(index).unwrap()
1697
+ }
1698
+ }
1699
+
1700
+ impl<T> Index<TypeId> for SnapshotList<T> {
1701
+ type Output = T;
1702
+
1703
+ #[inline]
1704
+ fn index(&self, id: TypeId) -> &T {
1705
+ self.get(id.index).unwrap()
1706
+ }
1707
+ }
1708
+
1709
+ impl<T> Default for SnapshotList<T> {
1710
+ fn default() -> SnapshotList<T> {
1711
+ SnapshotList {
1712
+ snapshots: Vec::new(),
1713
+ snapshots_total: 0,
1714
+ cur: Vec::new(),
1715
+ unique_counter: 1,
1716
+ unique_mappings: HashMap::new(),
1717
+ }
1718
+ }
1719
+ }
1720
+
1721
+ /// A snapshot list of types.
1722
+ pub(crate) type TypeList = SnapshotList<Type>;
1723
+
1724
+ /// Thin wrapper around `TypeList` which provides an allocator of unique ids for
1725
+ /// types contained within this list.
1726
+ pub(crate) struct TypeAlloc {
1727
+ list: TypeList,
1728
+
1729
+ // This is assigned at creation of a `TypeAlloc` and then never changed.
1730
+ // It's used in one entry for all `ResourceId`s contained within.
1731
+ globally_unique_id: u64,
1732
+
1733
+ // This is a counter that's incremeneted each time `alloc_resource_id` is
1734
+ // called.
1735
+ next_resource_id: u32,
1736
+ }
1737
+
1738
+ impl Default for TypeAlloc {
1739
+ fn default() -> TypeAlloc {
1740
+ static NEXT_GLOBAL_ID: AtomicU64 = AtomicU64::new(0);
1741
+ TypeAlloc {
1742
+ list: TypeList::default(),
1743
+ globally_unique_id: NEXT_GLOBAL_ID.fetch_add(1, Ordering::Relaxed),
1744
+ next_resource_id: 0,
1745
+ }
1746
+ }
1747
+ }
1748
+
1749
+ impl Deref for TypeAlloc {
1750
+ type Target = TypeList;
1751
+ fn deref(&self) -> &TypeList {
1752
+ &self.list
1753
+ }
1754
+ }
1755
+
1756
+ impl DerefMut for TypeAlloc {
1757
+ fn deref_mut(&mut self) -> &mut TypeList {
1758
+ &mut self.list
1759
+ }
1760
+ }
1761
+
1762
+ impl TypeAlloc {
1763
+ /// Pushes a new type into this list, returning an identifier which can be
1764
+ /// used to later retrieve it.
1765
+ ///
1766
+ /// The returned identifier is unique within this `TypeAlloc` and won't be
1767
+ /// hash-equivalent to anything else.
1768
+ pub fn push_ty(&mut self, ty: Type) -> TypeId {
1769
+ let index = self.list.len();
1770
+ let type_size = ty.type_size();
1771
+ self.list.push(ty);
1772
+ TypeId {
1773
+ index,
1774
+ type_size,
1775
+ unique_id: 0,
1776
+ }
1777
+ }
1778
+
1779
+ /// Allocates a new unique resource identifier.
1780
+ ///
1781
+ /// Note that uniqueness is only a property within this `TypeAlloc`.
1782
+ pub fn alloc_resource_id(&mut self) -> ResourceId {
1783
+ let contextually_unique_id = self.next_resource_id;
1784
+ self.next_resource_id = self.next_resource_id.checked_add(1).unwrap();
1785
+ ResourceId {
1786
+ globally_unique_id: self.globally_unique_id,
1787
+ contextually_unique_id,
1788
+ }
1789
+ }
1790
+
1791
+ /// Adds the set of "free variables" of the `id` provided to the `set`
1792
+ /// provided.
1793
+ ///
1794
+ /// Free variables are defined as resources. Any resource, perhaps
1795
+ /// transitively, referred to but not defined by `id` is added to the `set`
1796
+ /// and returned.
1797
+ pub fn free_variables_type_id(&self, id: TypeId, set: &mut IndexSet<ResourceId>) {
1798
+ match &self[id] {
1799
+ // Core wasm constructs cannot reference resources.
1800
+ Type::Func(_) | Type::Array(_) | Type::Module(_) | Type::Instance(_) => {}
1801
+
1802
+ // Recurse on the imports/exports of components, but remove the
1803
+ // imported and defined resources within the component itself.
1804
+ //
1805
+ // Technically this needs to add all the free variables of the
1806
+ // exports, remove the defined resources, then add the free
1807
+ // variables of imports, then remove the imported resources. Given
1808
+ // prior validation of component types, however, the defined
1809
+ // and imported resources are disjoint and imports can't refer to
1810
+ // defined resources, so doing this all in one go should be
1811
+ // equivalent.
1812
+ Type::Component(i) => {
1813
+ for ty in i.imports.values().chain(i.exports.values()) {
1814
+ self.free_variables_component_entity(ty, set);
1815
+ }
1816
+ for (id, _path) in i.imported_resources.iter().chain(&i.defined_resources) {
1817
+ set.remove(id);
1818
+ }
1819
+ }
1820
+
1821
+ // Like components, add in all the free variables of referenced
1822
+ // types but then remove those defined by this component instance
1823
+ // itself.
1824
+ Type::ComponentInstance(i) => {
1825
+ for ty in i.exports.values() {
1826
+ self.free_variables_component_entity(ty, set);
1827
+ }
1828
+ for id in i.defined_resources.iter() {
1829
+ set.remove(id);
1830
+ }
1831
+ }
1832
+
1833
+ Type::Resource(r) => {
1834
+ set.insert(*r);
1835
+ }
1836
+
1837
+ Type::ComponentFunc(i) => {
1838
+ for ty in i
1839
+ .params
1840
+ .iter()
1841
+ .map(|(_, ty)| ty)
1842
+ .chain(i.results.iter().map(|(_, ty)| ty))
1843
+ {
1844
+ self.free_variables_valtype(ty, set);
1845
+ }
1846
+ }
1847
+
1848
+ Type::Defined(i) => match i {
1849
+ ComponentDefinedType::Primitive(_)
1850
+ | ComponentDefinedType::Flags(_)
1851
+ | ComponentDefinedType::Enum(_) => {}
1852
+ ComponentDefinedType::Record(r) => {
1853
+ for ty in r.fields.values() {
1854
+ self.free_variables_valtype(ty, set);
1855
+ }
1856
+ }
1857
+ ComponentDefinedType::Tuple(r) => {
1858
+ for ty in r.types.iter() {
1859
+ self.free_variables_valtype(ty, set);
1860
+ }
1861
+ }
1862
+ ComponentDefinedType::Union(r) => {
1863
+ for ty in r.types.iter() {
1864
+ self.free_variables_valtype(ty, set);
1865
+ }
1866
+ }
1867
+ ComponentDefinedType::Variant(r) => {
1868
+ for ty in r.cases.values() {
1869
+ if let Some(ty) = &ty.ty {
1870
+ self.free_variables_valtype(ty, set);
1871
+ }
1872
+ }
1873
+ }
1874
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
1875
+ self.free_variables_valtype(ty, set);
1876
+ }
1877
+ ComponentDefinedType::Result { ok, err } => {
1878
+ if let Some(ok) = ok {
1879
+ self.free_variables_valtype(ok, set);
1880
+ }
1881
+ if let Some(err) = err {
1882
+ self.free_variables_valtype(err, set);
1883
+ }
1884
+ }
1885
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
1886
+ self.free_variables_type_id(*id, set);
1887
+ }
1888
+ },
1889
+ }
1890
+ }
1891
+
1892
+ /// Same as `free_variables_type_id`, but for `ComponentEntityType`.
1893
+ pub fn free_variables_component_entity(
1894
+ &self,
1895
+ ty: &ComponentEntityType,
1896
+ set: &mut IndexSet<ResourceId>,
1897
+ ) {
1898
+ match ty {
1899
+ ComponentEntityType::Module(id)
1900
+ | ComponentEntityType::Func(id)
1901
+ | ComponentEntityType::Instance(id)
1902
+ | ComponentEntityType::Component(id) => self.free_variables_type_id(*id, set),
1903
+ ComponentEntityType::Type { created, .. } => {
1904
+ self.free_variables_type_id(*created, set);
1905
+ }
1906
+ ComponentEntityType::Value(ty) => self.free_variables_valtype(ty, set),
1907
+ }
1908
+ }
1909
+
1910
+ /// Same as `free_variables_type_id`, but for `ComponentValType`.
1911
+ fn free_variables_valtype(&self, ty: &ComponentValType, set: &mut IndexSet<ResourceId>) {
1912
+ match ty {
1913
+ ComponentValType::Primitive(_) => {}
1914
+ ComponentValType::Type(id) => self.free_variables_type_id(*id, set),
1915
+ }
1916
+ }
1917
+
1918
+ /// Returns whether the type `id` is "named" where named types are presented
1919
+ /// via the provided `set`.
1920
+ ///
1921
+ /// This requires that `id` is a `Defined` type.
1922
+ pub(crate) fn type_named_type_id(&self, id: TypeId, set: &HashSet<TypeId>) -> bool {
1923
+ let ty = self[id].as_defined_type().unwrap();
1924
+ match ty {
1925
+ // Primitives are always considered named
1926
+ ComponentDefinedType::Primitive(_) => true,
1927
+
1928
+ // These structures are never allowed to be anonymous, so they
1929
+ // themselves must be named.
1930
+ ComponentDefinedType::Flags(_)
1931
+ | ComponentDefinedType::Enum(_)
1932
+ | ComponentDefinedType::Record(_)
1933
+ | ComponentDefinedType::Union(_)
1934
+ | ComponentDefinedType::Variant(_) => set.contains(&id),
1935
+
1936
+ // All types below here are allowed to be anonymous, but their
1937
+ // own components must be appropriately named.
1938
+ ComponentDefinedType::Tuple(r) => {
1939
+ r.types.iter().all(|t| self.type_named_valtype(t, set))
1940
+ }
1941
+ ComponentDefinedType::Result { ok, err } => {
1942
+ ok.as_ref()
1943
+ .map(|t| self.type_named_valtype(t, set))
1944
+ .unwrap_or(true)
1945
+ && err
1946
+ .as_ref()
1947
+ .map(|t| self.type_named_valtype(t, set))
1948
+ .unwrap_or(true)
1949
+ }
1950
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
1951
+ self.type_named_valtype(ty, set)
1952
+ }
1953
+
1954
+ // own/borrow themselves don't have to be named, but the resource
1955
+ // they refer to must be named.
1956
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => set.contains(id),
1957
+ }
1958
+ }
1959
+
1960
+ pub(crate) fn type_named_valtype(&self, ty: &ComponentValType, set: &HashSet<TypeId>) -> bool {
1961
+ match ty {
1962
+ ComponentValType::Primitive(_) => true,
1963
+ ComponentValType::Type(id) => self.type_named_type_id(*id, set),
1964
+ }
1965
+ }
1966
+ }
1967
+
1968
+ /// A helper trait to provide the functionality necessary to resources within a
1969
+ /// type.
1970
+ ///
1971
+ /// This currently exists to abstract over `TypeAlloc` and `SubtypeArena` which
1972
+ /// both need to perform remapping operations.
1973
+ pub(crate) trait Remap: Index<TypeId, Output = Type> {
1974
+ /// Pushes a new anonymous type within this object, returning an identifier
1975
+ /// which can be used to refer to it.
1976
+ fn push_ty(&mut self, ty: Type) -> TypeId;
1977
+
1978
+ /// Applies a resource and type renaming map to the `id` specified,
1979
+ /// returning `true` if the `id` was modified or `false` if it didn't need
1980
+ /// changing.
1981
+ ///
1982
+ /// This will recursively modify the structure of the `id` specified and
1983
+ /// update all references to resources found. The resource identifier keys
1984
+ /// in the `map` specified will become the corresponding value, in addition
1985
+ /// to any existing types in `map` becoming different tyeps.
1986
+ ///
1987
+ /// The `id` argument will be rewritten to a new identifier if `true` is
1988
+ /// returned.
1989
+ fn remap_type_id(&mut self, id: &mut TypeId, map: &mut Remapping) -> bool {
1990
+ if let Some(new) = map.types.get(id) {
1991
+ let changed = *new != *id;
1992
+ *id = *new;
1993
+ return changed;
1994
+ }
1995
+
1996
+ // This function attempts what ends up probably being a relatively
1997
+ // minor optimization where a new `id` isn't manufactured unless
1998
+ // something about the type actually changed. That means that if the
1999
+ // type doesn't actually use any resources, for example, then no new
2000
+ // id is allocated.
2001
+ let mut any_changed = false;
2002
+
2003
+ let map_map = |tmp: &mut IndexMap<ResourceId, Vec<usize>>,
2004
+ any_changed: &mut bool,
2005
+ map: &mut Remapping| {
2006
+ for (id, path) in mem::take(tmp) {
2007
+ let id = match map.resources.get(&id) {
2008
+ Some(id) => {
2009
+ *any_changed = true;
2010
+ *id
2011
+ }
2012
+ None => id,
2013
+ };
2014
+ tmp.insert(id, path);
2015
+ }
2016
+ };
2017
+
2018
+ let ty = match &self[*id] {
2019
+ // Core wasm functions/modules/instances don't have resource types
2020
+ // in them.
2021
+ Type::Func(_) | Type::Array(_) | Type::Module(_) | Type::Instance(_) => return false,
2022
+
2023
+ Type::Component(i) => {
2024
+ let mut tmp = i.clone();
2025
+ for ty in tmp.imports.values_mut().chain(tmp.exports.values_mut()) {
2026
+ if self.remap_component_entity(ty, map) {
2027
+ any_changed = true;
2028
+ }
2029
+ }
2030
+ for (id, _) in tmp
2031
+ .imported_resources
2032
+ .iter_mut()
2033
+ .chain(&mut tmp.defined_resources)
2034
+ {
2035
+ if let Some(new) = map.resources.get(id) {
2036
+ *id = *new;
2037
+ any_changed = true;
2038
+ }
2039
+ }
2040
+ map_map(&mut tmp.explicit_resources, &mut any_changed, map);
2041
+ Type::Component(tmp)
2042
+ }
2043
+
2044
+ Type::ComponentInstance(i) => {
2045
+ let mut tmp = i.clone();
2046
+ for ty in tmp.exports.values_mut() {
2047
+ if self.remap_component_entity(ty, map) {
2048
+ any_changed = true;
2049
+ }
2050
+ }
2051
+ for id in tmp.defined_resources.iter_mut() {
2052
+ if let Some(new) = map.resources.get(id) {
2053
+ *id = *new;
2054
+ any_changed = true;
2055
+ }
2056
+ }
2057
+ map_map(&mut tmp.explicit_resources, &mut any_changed, map);
2058
+ Type::ComponentInstance(tmp)
2059
+ }
2060
+
2061
+ Type::Resource(id) => {
2062
+ let id = match map.resources.get(id).copied() {
2063
+ Some(id) => id,
2064
+ None => return false,
2065
+ };
2066
+ any_changed = true;
2067
+ Type::Resource(id)
2068
+ }
2069
+
2070
+ Type::ComponentFunc(i) => {
2071
+ let mut tmp = i.clone();
2072
+ for ty in tmp
2073
+ .params
2074
+ .iter_mut()
2075
+ .map(|(_, ty)| ty)
2076
+ .chain(tmp.results.iter_mut().map(|(_, ty)| ty))
2077
+ {
2078
+ if self.remap_valtype(ty, map) {
2079
+ any_changed = true;
2080
+ }
2081
+ }
2082
+ Type::ComponentFunc(tmp)
2083
+ }
2084
+ Type::Defined(i) => {
2085
+ let mut tmp = i.clone();
2086
+ match &mut tmp {
2087
+ ComponentDefinedType::Primitive(_)
2088
+ | ComponentDefinedType::Flags(_)
2089
+ | ComponentDefinedType::Enum(_) => {}
2090
+ ComponentDefinedType::Record(r) => {
2091
+ for ty in r.fields.values_mut() {
2092
+ if self.remap_valtype(ty, map) {
2093
+ any_changed = true;
2094
+ }
2095
+ }
2096
+ }
2097
+ ComponentDefinedType::Tuple(r) => {
2098
+ for ty in r.types.iter_mut() {
2099
+ if self.remap_valtype(ty, map) {
2100
+ any_changed = true;
2101
+ }
2102
+ }
2103
+ }
2104
+ ComponentDefinedType::Union(r) => {
2105
+ for ty in r.types.iter_mut() {
2106
+ if self.remap_valtype(ty, map) {
2107
+ any_changed = true;
2108
+ }
2109
+ }
2110
+ }
2111
+ ComponentDefinedType::Variant(r) => {
2112
+ for ty in r.cases.values_mut() {
2113
+ if let Some(ty) = &mut ty.ty {
2114
+ if self.remap_valtype(ty, map) {
2115
+ any_changed = true;
2116
+ }
2117
+ }
2118
+ }
2119
+ }
2120
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
2121
+ if self.remap_valtype(ty, map) {
2122
+ any_changed = true;
2123
+ }
2124
+ }
2125
+ ComponentDefinedType::Result { ok, err } => {
2126
+ if let Some(ok) = ok {
2127
+ if self.remap_valtype(ok, map) {
2128
+ any_changed = true;
2129
+ }
2130
+ }
2131
+ if let Some(err) = err {
2132
+ if self.remap_valtype(err, map) {
2133
+ any_changed = true;
2134
+ }
2135
+ }
2136
+ }
2137
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
2138
+ if self.remap_type_id(id, map) {
2139
+ any_changed = true;
2140
+ }
2141
+ }
2142
+ }
2143
+ Type::Defined(tmp)
2144
+ }
2145
+ };
2146
+
2147
+ let new = if any_changed { self.push_ty(ty) } else { *id };
2148
+ let prev = map.types.insert(*id, new);
2149
+ assert!(prev.is_none());
2150
+ let changed = *id != new;
2151
+ *id = new;
2152
+ changed
2153
+ }
2154
+
2155
+ /// Same as `remap_type_id`, but works with `ComponentEntityType`.
2156
+ fn remap_component_entity(
2157
+ &mut self,
2158
+ ty: &mut ComponentEntityType,
2159
+ map: &mut Remapping,
2160
+ ) -> bool {
2161
+ match ty {
2162
+ ComponentEntityType::Module(id)
2163
+ | ComponentEntityType::Func(id)
2164
+ | ComponentEntityType::Instance(id)
2165
+ | ComponentEntityType::Component(id) => self.remap_type_id(id, map),
2166
+ ComponentEntityType::Type {
2167
+ referenced,
2168
+ created,
2169
+ } => {
2170
+ let changed = self.remap_type_id(referenced, map);
2171
+ if *referenced == *created {
2172
+ *created = *referenced;
2173
+ changed
2174
+ } else {
2175
+ self.remap_type_id(created, map) || changed
2176
+ }
2177
+ }
2178
+ ComponentEntityType::Value(ty) => self.remap_valtype(ty, map),
2179
+ }
2180
+ }
2181
+
2182
+ /// Same as `remap_type_id`, but works with `ComponentValType`.
2183
+ fn remap_valtype(&mut self, ty: &mut ComponentValType, map: &mut Remapping) -> bool {
2184
+ match ty {
2185
+ ComponentValType::Primitive(_) => false,
2186
+ ComponentValType::Type(id) => self.remap_type_id(id, map),
2187
+ }
2188
+ }
2189
+ }
2190
+
2191
+ #[derive(Default)]
2192
+ pub(crate) struct Remapping {
2193
+ /// A mapping from old resource ID to new resource ID.
2194
+ pub(crate) resources: HashMap<ResourceId, ResourceId>,
2195
+
2196
+ /// A mapping filled in during the remapping process which records how a
2197
+ /// type was remapped, if applicable. This avoids remapping multiple
2198
+ /// references to the same type and instead only processing it once.
2199
+ types: HashMap<TypeId, TypeId>,
2200
+ }
2201
+
2202
+ impl Remap for TypeAlloc {
2203
+ fn push_ty(&mut self, ty: Type) -> TypeId {
2204
+ <TypeAlloc>::push_ty(self, ty)
2205
+ }
2206
+ }
2207
+
2208
+ impl Index<TypeId> for TypeAlloc {
2209
+ type Output = Type;
2210
+
2211
+ #[inline]
2212
+ fn index(&self, id: TypeId) -> &Type {
2213
+ &self.list[id]
2214
+ }
2215
+ }
2216
+
2217
+ /// Helper structure used to perform subtyping computations.
2218
+ ///
2219
+ /// This type is used whenever a subtype needs to be tested in one direction or
2220
+ /// the other. The methods of this type are the various entry points for
2221
+ /// subtyping.
2222
+ ///
2223
+ /// Internally this contains arenas for two lists of types. The `a` arena is
2224
+ /// intended to be used for lookup of the first argument to all of the methods
2225
+ /// below, and the `b` arena is used for lookup of the second argument.
2226
+ ///
2227
+ /// Arenas here are used specifically for component-based subtyping queries. In
2228
+ /// these situations new types must be created based on substitution mappings,
2229
+ /// but the types all have temporary lifetimes. Everything in these arenas is
2230
+ /// thrown away once the subtyping computation has finished.
2231
+ ///
2232
+ /// Note that this subtyping context also explicitly supports being created
2233
+ /// from to different lists `a` and `b` originally, for testing subtyping
2234
+ /// between two different components for example.
2235
+ pub(crate) struct SubtypeCx<'a> {
2236
+ pub(crate) a: SubtypeArena<'a>,
2237
+ pub(crate) b: SubtypeArena<'a>,
2238
+ }
2239
+
2240
+ impl<'a> SubtypeCx<'a> {
2241
+ pub(crate) fn new(a: &'a TypeList, b: &'a TypeList) -> SubtypeCx<'a> {
2242
+ SubtypeCx {
2243
+ a: SubtypeArena::new(a),
2244
+ b: SubtypeArena::new(b),
2245
+ }
2246
+ }
2247
+
2248
+ fn swap(&mut self) {
2249
+ mem::swap(&mut self.a, &mut self.b);
2250
+ }
2251
+
2252
+ /// Executes the closure `f`, resetting the internal arenas to their
2253
+ /// original size after the closure finishes.
2254
+ ///
2255
+ /// This enables `f` to modify the internal arenas while relying on all
2256
+ /// changes being discarded after the closure finishes.
2257
+ fn mark<T>(&mut self, f: impl FnOnce(&mut Self) -> T) -> T {
2258
+ let a_len = self.a.list.len();
2259
+ let b_len = self.b.list.len();
2260
+ let result = f(self);
2261
+ self.a.list.truncate(a_len);
2262
+ self.b.list.truncate(b_len);
2263
+ result
2264
+ }
2265
+
2266
+ /// Tests whether `a` is a subtype of `b`.
2267
+ ///
2268
+ /// Errors are reported at the `offset` specified.
2269
+ pub fn component_entity_type(
2270
+ &mut self,
2271
+ a: &ComponentEntityType,
2272
+ b: &ComponentEntityType,
2273
+ offset: usize,
2274
+ ) -> Result<()> {
2275
+ use ComponentEntityType::*;
2276
+
2277
+ match (a, b) {
2278
+ (Module(a), Module(b)) => {
2279
+ // For module type subtyping, all exports in the other module
2280
+ // type must be present in this module type's exports (i.e. it
2281
+ // can export *more* than what this module type needs).
2282
+ // However, for imports, the check is reversed (i.e. it is okay
2283
+ // to import *less* than what this module type needs).
2284
+ self.swap();
2285
+ let a_imports = &self.b[*a].as_module_type().unwrap().imports;
2286
+ let b_imports = &self.a[*b].as_module_type().unwrap().imports;
2287
+ for (k, a) in a_imports {
2288
+ match b_imports.get(k) {
2289
+ Some(b) => self.entity_type(b, a, offset).with_context(|| {
2290
+ format!("type mismatch in import `{}::{}`", k.0, k.1)
2291
+ })?,
2292
+ None => bail!(offset, "missing expected import `{}::{}`", k.0, k.1),
2293
+ }
2294
+ }
2295
+ self.swap();
2296
+ let a = self.a[*a].as_module_type().unwrap();
2297
+ let b = self.b[*b].as_module_type().unwrap();
2298
+ for (k, b) in b.exports.iter() {
2299
+ match a.exports.get(k) {
2300
+ Some(a) => self
2301
+ .entity_type(a, b, offset)
2302
+ .with_context(|| format!("type mismatch in export `{k}`"))?,
2303
+ None => bail!(offset, "missing expected export `{k}`"),
2304
+ }
2305
+ }
2306
+ Ok(())
2307
+ }
2308
+ (Module(_), b) => bail!(offset, "expected {}, found module", b.desc()),
2309
+
2310
+ (Func(a), Func(b)) => {
2311
+ let a = self.a[*a].as_component_func_type().unwrap();
2312
+ let b = self.b[*b].as_component_func_type().unwrap();
2313
+
2314
+ // Note that this intentionally diverges from the upstream
2315
+ // specification in terms of subtyping. This is a full
2316
+ // type-equality check which ensures that the structure of `a`
2317
+ // exactly matches the structure of `b`. The rationale for this
2318
+ // is:
2319
+ //
2320
+ // * Primarily in Wasmtime subtyping based on function types is
2321
+ // not implemented. This includes both subtyping a host
2322
+ // import and additionally handling subtyping as functions
2323
+ // cross component boundaries. The host import subtyping (or
2324
+ // component export subtyping) is not clear how to handle at
2325
+ // all at this time. The subtyping of functions between
2326
+ // components can more easily be handled by extending the
2327
+ // `fact` compiler, but that hasn't been done yet.
2328
+ //
2329
+ // * The upstream specification is currently pretty
2330
+ // intentionally vague precisely what subtyping is allowed.
2331
+ // Implementing a strict check here is intended to be a
2332
+ // conservative starting point for the component model which
2333
+ // can be extended in the future if necessary.
2334
+ //
2335
+ // * The interaction with subtyping on bindings generation, for
2336
+ // example, is a tricky problem that doesn't have a clear
2337
+ // answer at this time. Effectively this is more rationale
2338
+ // for being conservative in the first pass of the component
2339
+ // model.
2340
+ //
2341
+ // So, in conclusion, the test here (and other places that
2342
+ // reference this comment) is for exact type equality with no
2343
+ // differences.
2344
+ if a.params.len() != b.params.len() {
2345
+ bail!(
2346
+ offset,
2347
+ "expected {} parameters, found {}",
2348
+ b.params.len(),
2349
+ a.params.len(),
2350
+ );
2351
+ }
2352
+ if a.results.len() != b.results.len() {
2353
+ bail!(
2354
+ offset,
2355
+ "expected {} results, found {}",
2356
+ b.results.len(),
2357
+ a.results.len(),
2358
+ );
2359
+ }
2360
+ for ((an, a), (bn, b)) in a.params.iter().zip(b.params.iter()) {
2361
+ if an != bn {
2362
+ bail!(offset, "expected parameter named `{bn}`, found `{an}`");
2363
+ }
2364
+ self.component_val_type(a, b, offset)
2365
+ .with_context(|| format!("type mismatch in function parameter `{an}`"))?;
2366
+ }
2367
+ for ((an, a), (bn, b)) in a.results.iter().zip(b.results.iter()) {
2368
+ if an != bn {
2369
+ bail!(offset, "mismatched result names");
2370
+ }
2371
+ self.component_val_type(a, b, offset)
2372
+ .with_context(|| "type mismatch with result type")?;
2373
+ }
2374
+ Ok(())
2375
+ }
2376
+ (Func(_), b) => bail!(offset, "expected {}, found func", b.desc()),
2377
+
2378
+ (Value(a), Value(b)) => self.component_val_type(a, b, offset),
2379
+ (Value(_), b) => bail!(offset, "expected {}, found value", b.desc()),
2380
+
2381
+ (Type { referenced: a, .. }, Type { referenced: b, .. }) => {
2382
+ use self::Type::*;
2383
+ match (&self.a[*a], &self.b[*b]) {
2384
+ (Defined(a), Defined(b)) => self.component_defined_type(a, b, offset),
2385
+ (Defined(_), Resource(_)) => bail!(offset, "expected resource, found type"),
2386
+ (Resource(a), Resource(b)) => {
2387
+ if a == b {
2388
+ Ok(())
2389
+ } else {
2390
+ bail!(offset, "resource types are not the same")
2391
+ }
2392
+ }
2393
+ (Resource(_), Defined(_)) => bail!(offset, "expected type, found resource"),
2394
+ _ => unreachable!(),
2395
+ }
2396
+ }
2397
+ (Type { .. }, b) => bail!(offset, "expected {}, found type", b.desc()),
2398
+
2399
+ (Instance(a_id), Instance(b_id)) => {
2400
+ // For instance type subtyping, all exports in the other
2401
+ // instance type must be present in this instance type's
2402
+ // exports (i.e. it can export *more* than what this instance
2403
+ // type needs).
2404
+ let a = self.a[*a_id].as_component_instance_type().unwrap();
2405
+ let b = self.b[*b_id].as_component_instance_type().unwrap();
2406
+
2407
+ let mut exports = Vec::with_capacity(b.exports.len());
2408
+ for (k, b) in b.exports.iter() {
2409
+ match a.exports.get(k) {
2410
+ Some(a) => exports.push((*a, *b)),
2411
+ None => bail!(offset, "missing expected export `{k}`"),
2412
+ }
2413
+ }
2414
+ for (i, (a, b)) in exports.iter().enumerate() {
2415
+ let err = match self.component_entity_type(a, b, offset) {
2416
+ Ok(()) => continue,
2417
+ Err(e) => e,
2418
+ };
2419
+ // On failure attach the name of this export as context to
2420
+ // the error message to leave a breadcrumb trail.
2421
+ let (name, _) = self.b[*b_id]
2422
+ .as_component_instance_type()
2423
+ .unwrap()
2424
+ .exports
2425
+ .get_index(i)
2426
+ .unwrap();
2427
+ return Err(
2428
+ err.with_context(|| format!("type mismatch in instance export `{name}`"))
2429
+ );
2430
+ }
2431
+ Ok(())
2432
+ }
2433
+ (Instance(_), b) => bail!(offset, "expected {}, found instance", b.desc()),
2434
+
2435
+ (Component(a), Component(b)) => {
2436
+ // Components are ... tricky. They follow the same basic
2437
+ // structure as core wasm modules, but they also have extra
2438
+ // logic to handle resource types. Resources are effectively
2439
+ // abstract types so this is sort of where an ML module system
2440
+ // in the component model becomes a reality.
2441
+ //
2442
+ // This also leverages the `open_instance_type` method below
2443
+ // heavily which internally has its own quite large suite of
2444
+ // logic. More-or-less what's happening here is:
2445
+ //
2446
+ // 1. Pretend that the imports of B are given as values to the
2447
+ // imports of A. If A didn't import anything, for example,
2448
+ // that's great and the subtyping definitely passes there.
2449
+ // This operation produces a mapping of all the resources of
2450
+ // A's imports to resources in B's imports.
2451
+ //
2452
+ // 2. This mapping is applied to all of A's exports. This means
2453
+ // that all exports of A referring to A's imported resources
2454
+ // now instead refer to B's. Note, though that A's exports
2455
+ // still refer to its own defined resources.
2456
+ //
2457
+ // 3. The same `open_instance_type` method used during the
2458
+ // first step is used again, but this time on the exports
2459
+ // in the reverse direction. This performs a similar
2460
+ // operation, though, by creating a mapping from B's
2461
+ // defined resources to A's defined resources. The map
2462
+ // itself is discarded as it's not needed.
2463
+ //
2464
+ // The order that everything passed here is intentional, but
2465
+ // also subtle. I personally think of it as
2466
+ // `open_instance_type` takes a list of things to satisfy a
2467
+ // signature and produces a mapping of resources in the
2468
+ // signature to those provided in the list of things. The
2469
+ // order of operations then goes:
2470
+ //
2471
+ // * Someone thinks they have a component of type B, but they
2472
+ // actually have a component of type A (e.g. due to this
2473
+ // subtype check passing).
2474
+ // * This person provides the imports of B and that must be
2475
+ // sufficient to satisfy the imports of A. This is the first
2476
+ // `open_instance_type` check.
2477
+ // * Now though the resources provided by B are substituted
2478
+ // into A's exports since that's what was provided.
2479
+ // * A's exports are then handed back to the original person,
2480
+ // and these exports must satisfy the signature required by B
2481
+ // since that's what they're expecting.
2482
+ // * This is the second `open_instance_type` which, to get
2483
+ // resource types to line up, will map from A's defined
2484
+ // resources to B's defined resources.
2485
+ //
2486
+ // If all that passes then the resources should all line up
2487
+ // perfectly. Any misalignment is reported as a subtyping
2488
+ // error.
2489
+ let b_imports = self.b[*b]
2490
+ .as_component_type()
2491
+ .unwrap()
2492
+ .imports
2493
+ .iter()
2494
+ .map(|(name, ty)| (name.clone(), ty.clone()))
2495
+ .collect();
2496
+ self.swap();
2497
+ let mut import_mapping =
2498
+ self.open_instance_type(&b_imports, *a, ExternKind::Import, offset)?;
2499
+ self.swap();
2500
+ self.mark(|this| {
2501
+ let mut a_exports = this.a[*a]
2502
+ .as_component_type()
2503
+ .unwrap()
2504
+ .exports
2505
+ .iter()
2506
+ .map(|(name, ty)| (name.clone(), ty.clone()))
2507
+ .collect::<IndexMap<_, _>>();
2508
+ for ty in a_exports.values_mut() {
2509
+ this.a.remap_component_entity(ty, &mut import_mapping);
2510
+ }
2511
+ this.open_instance_type(&a_exports, *b, ExternKind::Export, offset)?;
2512
+ Ok(())
2513
+ })
2514
+ }
2515
+ (Component(_), b) => bail!(offset, "expected {}, found component", b.desc()),
2516
+ }
2517
+ }
2518
+
2519
+ /// The building block for subtyping checks when components are
2520
+ /// instantiated and when components are tested if they're subtypes of each
2521
+ /// other.
2522
+ ///
2523
+ /// This method takes a number of arguments:
2524
+ ///
2525
+ /// * `a` - this is a list of typed items which can be thought of as
2526
+ /// concrete values to test against `b`.
2527
+ /// * `b` - this `TypeId` must point to `Type::Component`.
2528
+ /// * `kind` - indicates whether the `imports` or `exports` of `b` are
2529
+ /// being tested against for the values in `a`.
2530
+ /// * `offset` - the binary offset at which to report errors if one happens.
2531
+ ///
2532
+ /// This will attempt to determine if the items in `a` satisfy the
2533
+ /// signature required by the `kind` items of `b`. For example component
2534
+ /// instantiation will have `a` as the list of arguments provided to
2535
+ /// instantiation, `b` is the component being instantiated, and `kind` is
2536
+ /// `ExternKind::Import`.
2537
+ ///
2538
+ /// This function, if successful, will return a mapping of the resources in
2539
+ /// `b` to the resources in `a` provided. This mapping is guaranteed to
2540
+ /// contain all the resources for `b` (all imported resources for
2541
+ /// `ExternKind::Import` or all defined resources for `ExternKind::Export`).
2542
+ pub fn open_instance_type(
2543
+ &mut self,
2544
+ a: &IndexMap<String, ComponentEntityType>,
2545
+ b: TypeId,
2546
+ kind: ExternKind,
2547
+ offset: usize,
2548
+ ) -> Result<Remapping> {
2549
+ // First, determine the mapping from resources in `b` to those supplied
2550
+ // by arguments in `a`.
2551
+ //
2552
+ // This loop will iterate over all the appropriate resources in `b`
2553
+ // and find the corresponding resource in `args`. The exact lists
2554
+ // in use here depend on the `kind` provided. This necessarily requires
2555
+ // a sequence of string lookups to find the corresponding items in each
2556
+ // list.
2557
+ //
2558
+ // The path to each resource in `resources` is precomputed as a list of
2559
+ // indexes. The first index is into `b`'s list of `entities`, and gives
2560
+ // the name that `b` assigns to the resource. Each subsequent index,
2561
+ // if present, means that this resource was present through a layer of
2562
+ // an instance type, and the index is into the instance type's exports.
2563
+ // More information about this can be found on
2564
+ // `ComponentState::imported_resources`.
2565
+ //
2566
+ // This loop will follow the list of indices for each resource and, at
2567
+ // the same time, walk through the arguments supplied to instantiating
2568
+ // the `component_type`. This means that within `component_type`
2569
+ // index-based lookups are performed while in `args` name-based
2570
+ // lookups are performed.
2571
+ //
2572
+ // Note that here it's possible that `args` doesn't actually supply the
2573
+ // correct type of import for each item since argument checking has
2574
+ // not proceeded yet. These type errors, however, aren't handled by
2575
+ // this loop and are deferred below to the main subtyping check. That
2576
+ // means that `mapping` won't necessarily have a mapping for all
2577
+ // imported resources into `component_type`, but that should be ok.
2578
+ let component_type = self.b[b].as_component_type().unwrap();
2579
+ let entities = match kind {
2580
+ ExternKind::Import => &component_type.imports,
2581
+ ExternKind::Export => &component_type.exports,
2582
+ };
2583
+ let resources = match kind {
2584
+ ExternKind::Import => &component_type.imported_resources,
2585
+ ExternKind::Export => &component_type.defined_resources,
2586
+ };
2587
+ let mut mapping = Remapping::default();
2588
+ 'outer: for (resource, path) in resources.iter() {
2589
+ // Lookup the first path item in `imports` and the corresponding
2590
+ // entry in `args` by name.
2591
+ let (name, ty) = entities.get_index(path[0]).unwrap();
2592
+ let mut ty = *ty;
2593
+ let mut arg = a.get(name);
2594
+
2595
+ // Lookup all the subsequent `path` entries, if any, by index in
2596
+ // `ty` and by name in `arg`. Type errors in `arg` are skipped over
2597
+ // entirely.
2598
+ for i in path.iter().skip(1).copied() {
2599
+ let id = match ty {
2600
+ ComponentEntityType::Instance(id) => id,
2601
+ _ => unreachable!(),
2602
+ };
2603
+ let (name, next_ty) = self.b[id]
2604
+ .as_component_instance_type()
2605
+ .unwrap()
2606
+ .exports
2607
+ .get_index(i)
2608
+ .unwrap();
2609
+ ty = *next_ty;
2610
+ arg = match arg {
2611
+ Some(ComponentEntityType::Instance(id)) => self.a[*id]
2612
+ .as_component_instance_type()
2613
+ .unwrap()
2614
+ .exports
2615
+ .get(name),
2616
+ _ => continue 'outer,
2617
+ };
2618
+ }
2619
+
2620
+ // Double-check that `ty`, the leaf type of `component_type`, is
2621
+ // indeed the expected resource.
2622
+ if cfg!(debug_assertions) {
2623
+ let id = match ty {
2624
+ ComponentEntityType::Type { created, .. } => match &self.a[created] {
2625
+ Type::Resource(r) => *r,
2626
+ _ => unreachable!(),
2627
+ },
2628
+ _ => unreachable!(),
2629
+ };
2630
+ assert_eq!(id, *resource);
2631
+ }
2632
+
2633
+ // The leaf of `arg` should be a type which is a resource. If not
2634
+ // it's skipped and this'll wind up generating an error later on in
2635
+ // subtype checking below.
2636
+ if let Some(ComponentEntityType::Type { created, .. }) = arg {
2637
+ if let Type::Resource(r) = &self.b[*created] {
2638
+ mapping.resources.insert(*resource, *r);
2639
+ }
2640
+ }
2641
+ }
2642
+
2643
+ // Now that a mapping from the resources in `b` to the resources in `a`
2644
+ // has been determined it's possible to perform the actual subtype
2645
+ // check.
2646
+ //
2647
+ // This subtype check notably needs to ensure that all resource types
2648
+ // line up. To achieve this the `mapping` previously calculated is used
2649
+ // to perform a substitution on each component entity type.
2650
+ //
2651
+ // The first loop here performs a name lookup to create a list of
2652
+ // values from `a` to expected items in `b`. Once the list is created
2653
+ // the substitution check is performed on each element.
2654
+ let mut to_typecheck = Vec::new();
2655
+ for (name, expected) in entities.iter() {
2656
+ match a.get(name) {
2657
+ Some(arg) => to_typecheck.push((arg.clone(), expected.clone())),
2658
+ None => bail!(offset, "missing {} named `{name}`", kind.desc()),
2659
+ }
2660
+ }
2661
+ let mut type_map = HashMap::new();
2662
+ for (i, (actual, expected)) in to_typecheck.into_iter().enumerate() {
2663
+ let result = self.mark(|this| {
2664
+ let mut expected = expected;
2665
+ this.b.remap_component_entity(&mut expected, &mut mapping);
2666
+ mapping.types.clear();
2667
+ this.component_entity_type(&actual, &expected, offset)
2668
+ });
2669
+ let err = match result {
2670
+ Ok(()) => {
2671
+ // On a successful type-check record a mapping of
2672
+ // type-to-type in `type_map` for any type imports that were
2673
+ // satisfied. This is then used afterwards when performing
2674
+ // type substitution to remap all component-local types to
2675
+ // those that were provided in the imports.
2676
+ match (expected, actual) {
2677
+ (
2678
+ ComponentEntityType::Type {
2679
+ created: expected, ..
2680
+ },
2681
+ ComponentEntityType::Type {
2682
+ created: actual, ..
2683
+ },
2684
+ ) => {
2685
+ let prev = type_map.insert(expected, actual);
2686
+ assert!(prev.is_none());
2687
+ }
2688
+ _ => {}
2689
+ }
2690
+ continue;
2691
+ }
2692
+ Err(e) => e,
2693
+ };
2694
+
2695
+ // If an error happens then attach the name of the entity to the
2696
+ // error message using the `i` iteration counter.
2697
+ let component_type = self.b[b].as_component_type().unwrap();
2698
+ let entities = match kind {
2699
+ ExternKind::Import => &component_type.imports,
2700
+ ExternKind::Export => &component_type.exports,
2701
+ };
2702
+ let (name, _) = entities.get_index(i).unwrap();
2703
+ return Err(err.with_context(|| format!("type mismatch for {} `{name}`", kind.desc())));
2704
+ }
2705
+ mapping.types = type_map;
2706
+ Ok(mapping)
2707
+ }
2708
+
2709
+ pub(crate) fn entity_type(&self, a: &EntityType, b: &EntityType, offset: usize) -> Result<()> {
2710
+ macro_rules! limits_match {
2711
+ ($a:expr, $b:expr) => {{
2712
+ let a = $a;
2713
+ let b = $b;
2714
+ a.initial >= b.initial
2715
+ && match b.maximum {
2716
+ Some(b_max) => match a.maximum {
2717
+ Some(a_max) => a_max <= b_max,
2718
+ None => false,
2719
+ },
2720
+ None => true,
2721
+ }
2722
+ }};
2723
+ }
2724
+
2725
+ match (a, b) {
2726
+ (EntityType::Func(a), EntityType::Func(b)) => self.func_type(
2727
+ self.a[*a].as_func_type().unwrap(),
2728
+ self.b[*b].as_func_type().unwrap(),
2729
+ offset,
2730
+ ),
2731
+ (EntityType::Func(_), b) => bail!(offset, "expected {}, found func", b.desc()),
2732
+ (EntityType::Table(a), EntityType::Table(b)) => {
2733
+ if a.element_type != b.element_type {
2734
+ bail!(
2735
+ offset,
2736
+ "expected table element type {}, found {}",
2737
+ b.element_type,
2738
+ a.element_type,
2739
+ )
2740
+ }
2741
+ if limits_match!(a, b) {
2742
+ Ok(())
2743
+ } else {
2744
+ bail!(offset, "mismatch in table limits")
2745
+ }
2746
+ }
2747
+ (EntityType::Table(_), b) => bail!(offset, "expected {}, found table", b.desc()),
2748
+ (EntityType::Memory(a), EntityType::Memory(b)) => {
2749
+ if a.shared != b.shared {
2750
+ bail!(offset, "mismatch in the shared flag for memories")
2751
+ }
2752
+ if a.memory64 != b.memory64 {
2753
+ bail!(offset, "mismatch in index type used for memories")
2754
+ }
2755
+ if limits_match!(a, b) {
2756
+ Ok(())
2757
+ } else {
2758
+ bail!(offset, "mismatch in memory limits")
2759
+ }
2760
+ }
2761
+ (EntityType::Memory(_), b) => bail!(offset, "expected {}, found memory", b.desc()),
2762
+ (EntityType::Global(a), EntityType::Global(b)) => {
2763
+ if a.mutable != b.mutable {
2764
+ bail!(offset, "global types differ in mutability")
2765
+ }
2766
+ if a.content_type == b.content_type {
2767
+ Ok(())
2768
+ } else {
2769
+ bail!(
2770
+ offset,
2771
+ "expected global type {}, found {}",
2772
+ b.content_type,
2773
+ a.content_type,
2774
+ )
2775
+ }
2776
+ }
2777
+ (EntityType::Global(_), b) => bail!(offset, "expected {}, found global", b.desc()),
2778
+ (EntityType::Tag(a), EntityType::Tag(b)) => self.func_type(
2779
+ self.a[*a].as_func_type().unwrap(),
2780
+ self.b[*b].as_func_type().unwrap(),
2781
+ offset,
2782
+ ),
2783
+ (EntityType::Tag(_), b) => bail!(offset, "expected {}, found tag", b.desc()),
2784
+ }
2785
+ }
2786
+
2787
+ fn func_type(&self, a: &FuncType, b: &FuncType, offset: usize) -> Result<()> {
2788
+ if a == b {
2789
+ Ok(())
2790
+ } else {
2791
+ bail!(
2792
+ offset,
2793
+ "expected: {}\n\
2794
+ found: {}",
2795
+ b.desc(),
2796
+ a.desc(),
2797
+ )
2798
+ }
2799
+ }
2800
+
2801
+ pub(crate) fn component_val_type(
2802
+ &self,
2803
+ a: &ComponentValType,
2804
+ b: &ComponentValType,
2805
+ offset: usize,
2806
+ ) -> Result<()> {
2807
+ match (a, b) {
2808
+ (ComponentValType::Primitive(a), ComponentValType::Primitive(b)) => {
2809
+ self.primitive_val_type(*a, *b, offset)
2810
+ }
2811
+ (ComponentValType::Type(a), ComponentValType::Type(b)) => self.component_defined_type(
2812
+ self.a[*a].as_defined_type().unwrap(),
2813
+ self.b[*b].as_defined_type().unwrap(),
2814
+ offset,
2815
+ ),
2816
+ (ComponentValType::Primitive(a), ComponentValType::Type(b)) => {
2817
+ match self.b[*b].as_defined_type().unwrap() {
2818
+ ComponentDefinedType::Primitive(b) => self.primitive_val_type(*a, *b, offset),
2819
+ b => bail!(offset, "expected {}, found {a}", b.desc()),
2820
+ }
2821
+ }
2822
+ (ComponentValType::Type(a), ComponentValType::Primitive(b)) => {
2823
+ match self.a[*a].as_defined_type().unwrap() {
2824
+ ComponentDefinedType::Primitive(a) => self.primitive_val_type(*a, *b, offset),
2825
+ a => bail!(offset, "expected {b}, found {}", a.desc()),
2826
+ }
2827
+ }
2828
+ }
2829
+ }
2830
+
2831
+ fn component_defined_type(
2832
+ &self,
2833
+ a: &ComponentDefinedType,
2834
+ b: &ComponentDefinedType,
2835
+ offset: usize,
2836
+ ) -> Result<()> {
2837
+ use ComponentDefinedType::*;
2838
+
2839
+ // Note that the implementation of subtyping here diverges from the
2840
+ // upstream specification intentionally, see the documentation on
2841
+ // function subtyping for more information.
2842
+ match (a, b) {
2843
+ (Primitive(a), Primitive(b)) => self.primitive_val_type(*a, *b, offset),
2844
+ (Primitive(a), b) => bail!(offset, "expected {}, found {a}", b.desc()),
2845
+ (Record(a), Record(b)) => {
2846
+ if a.fields.len() != b.fields.len() {
2847
+ bail!(
2848
+ offset,
2849
+ "expected {} fields, found {}",
2850
+ b.fields.len(),
2851
+ a.fields.len(),
2852
+ );
2853
+ }
2854
+
2855
+ for ((aname, a), (bname, b)) in a.fields.iter().zip(b.fields.iter()) {
2856
+ if aname != bname {
2857
+ bail!(offset, "expected field name `{bname}`, found `{aname}`");
2858
+ }
2859
+ self.component_val_type(a, b, offset)
2860
+ .with_context(|| format!("type mismatch in record field `{aname}`"))?;
2861
+ }
2862
+ Ok(())
2863
+ }
2864
+ (Record(_), b) => bail!(offset, "expected {}, found record", b.desc()),
2865
+ (Variant(a), Variant(b)) => {
2866
+ if a.cases.len() != b.cases.len() {
2867
+ bail!(
2868
+ offset,
2869
+ "expected {} cases, found {}",
2870
+ b.cases.len(),
2871
+ a.cases.len(),
2872
+ );
2873
+ }
2874
+ for ((aname, a), (bname, b)) in a.cases.iter().zip(b.cases.iter()) {
2875
+ if aname != bname {
2876
+ bail!(offset, "expected case named `{bname}`, found `{aname}`");
2877
+ }
2878
+ match (&a.ty, &b.ty) {
2879
+ (Some(a), Some(b)) => self
2880
+ .component_val_type(a, b, offset)
2881
+ .with_context(|| format!("type mismatch in variant case `{aname}`"))?,
2882
+ (None, None) => {}
2883
+ (None, Some(_)) => {
2884
+ bail!(offset, "expected case `{aname}` to have a type, found none")
2885
+ }
2886
+ (Some(_), None) => bail!(offset, "expected case `{aname}` to have no type"),
2887
+ }
2888
+ }
2889
+ Ok(())
2890
+ }
2891
+ (Variant(_), b) => bail!(offset, "expected {}, found variant", b.desc()),
2892
+ (List(a), List(b)) | (Option(a), Option(b)) => self.component_val_type(a, b, offset),
2893
+ (List(_), b) => bail!(offset, "expected {}, found list", b.desc()),
2894
+ (Option(_), b) => bail!(offset, "expected {}, found option", b.desc()),
2895
+ (Tuple(a), Tuple(b)) => {
2896
+ if a.types.len() != b.types.len() {
2897
+ bail!(
2898
+ offset,
2899
+ "expected {} types, found {}",
2900
+ b.types.len(),
2901
+ a.types.len(),
2902
+ );
2903
+ }
2904
+ for (i, (a, b)) in a.types.iter().zip(b.types.iter()).enumerate() {
2905
+ self.component_val_type(a, b, offset)
2906
+ .with_context(|| format!("type mismatch in tuple field {i}"))?;
2907
+ }
2908
+ Ok(())
2909
+ }
2910
+ (Tuple(_), b) => bail!(offset, "expected {}, found tuple", b.desc()),
2911
+ (Union(a), Union(b)) => {
2912
+ if a.types.len() != b.types.len() {
2913
+ bail!(
2914
+ offset,
2915
+ "expected {} types, found {}",
2916
+ b.types.len(),
2917
+ a.types.len(),
2918
+ );
2919
+ }
2920
+ for (i, (a, b)) in a.types.iter().zip(b.types.iter()).enumerate() {
2921
+ self.component_val_type(a, b, offset)
2922
+ .with_context(|| format!("type mismatch in tuple field {i}"))?;
2923
+ }
2924
+ Ok(())
2925
+ }
2926
+ (Union(_), b) => bail!(offset, "expected {}, found union", b.desc()),
2927
+ (at @ Flags(a), Flags(b)) | (at @ Enum(a), Enum(b)) => {
2928
+ let desc = match at {
2929
+ Flags(_) => "flags",
2930
+ _ => "enum",
2931
+ };
2932
+ if a.len() == b.len() && a.iter().eq(b.iter()) {
2933
+ Ok(())
2934
+ } else {
2935
+ bail!(offset, "mismatch in {desc} elements")
2936
+ }
2937
+ }
2938
+ (Flags(_), b) => bail!(offset, "expected {}, found flags", b.desc()),
2939
+ (Enum(_), b) => bail!(offset, "expected {}, found enum", b.desc()),
2940
+ (Result { ok: ao, err: ae }, Result { ok: bo, err: be }) => {
2941
+ match (ao, bo) {
2942
+ (None, None) => {}
2943
+ (Some(a), Some(b)) => self
2944
+ .component_val_type(a, b, offset)
2945
+ .with_context(|| "type mismatch in ok variant")?,
2946
+ (None, Some(_)) => bail!(offset, "expected ok type, but found none"),
2947
+ (Some(_), None) => bail!(offset, "expected ok type to not be present"),
2948
+ }
2949
+ match (ae, be) {
2950
+ (None, None) => {}
2951
+ (Some(a), Some(b)) => self
2952
+ .component_val_type(a, b, offset)
2953
+ .with_context(|| "type mismatch in err variant")?,
2954
+ (None, Some(_)) => bail!(offset, "expected err type, but found none"),
2955
+ (Some(_), None) => bail!(offset, "expected err type to not be present"),
2956
+ }
2957
+ Ok(())
2958
+ }
2959
+ (Result { .. }, b) => bail!(offset, "expected {}, found result", b.desc()),
2960
+ (Own(a), Own(b)) | (Borrow(a), Borrow(b)) => {
2961
+ let a = self.a[*a].as_resource().unwrap();
2962
+ let b = self.b[*b].as_resource().unwrap();
2963
+ if a == b {
2964
+ Ok(())
2965
+ } else {
2966
+ bail!(offset, "resource types are not the same")
2967
+ }
2968
+ }
2969
+ (Own(_), b) => bail!(offset, "expected {}, found own", b.desc()),
2970
+ (Borrow(_), b) => bail!(offset, "expected {}, found borrow", b.desc()),
2971
+ }
2972
+ }
2973
+
2974
+ fn primitive_val_type(
2975
+ &self,
2976
+ a: PrimitiveValType,
2977
+ b: PrimitiveValType,
2978
+ offset: usize,
2979
+ ) -> Result<()> {
2980
+ // Note that this intentionally diverges from the upstream specification
2981
+ // at this time and only considers exact equality for subtyping
2982
+ // relationships.
2983
+ //
2984
+ // More information can be found in the subtyping implementation for
2985
+ // component functions.
2986
+ if a == b {
2987
+ Ok(())
2988
+ } else {
2989
+ bail!(offset, "expected primitive `{b}` found primitive `{a}`")
2990
+ }
2991
+ }
2992
+ }
2993
+
2994
+ /// A helper typed used purely during subtyping as part of `SubtypeCx`.
2995
+ ///
2996
+ /// This takes a `types` list as input which is the "base" of the ids that can
2997
+ /// be indexed through this arena. All future types pushed into this, if any,
2998
+ /// are stored in `self.list`.
2999
+ ///
3000
+ /// This is intended to have arena-like behavior where everything pushed onto
3001
+ /// `self.list` is thrown away after a subtyping computation is performed. All
3002
+ /// new types pushed into this arena are purely temporary.
3003
+ pub(crate) struct SubtypeArena<'a> {
3004
+ types: &'a TypeList,
3005
+ list: Vec<Type>,
3006
+ }
3007
+
3008
+ impl<'a> SubtypeArena<'a> {
3009
+ fn new(types: &'a TypeList) -> SubtypeArena<'a> {
3010
+ SubtypeArena {
3011
+ types,
3012
+ list: Vec::new(),
3013
+ }
3014
+ }
3015
+ }
3016
+
3017
+ impl Index<TypeId> for SubtypeArena<'_> {
3018
+ type Output = Type;
3019
+
3020
+ fn index(&self, id: TypeId) -> &Type {
3021
+ if id.index < self.types.len() {
3022
+ &self.types[id]
3023
+ } else {
3024
+ &self.list[id.index - self.types.len()]
3025
+ }
3026
+ }
3027
+ }
3028
+
3029
+ impl Remap for SubtypeArena<'_> {
3030
+ fn push_ty(&mut self, ty: Type) -> TypeId {
3031
+ let index = self.list.len() + self.types.len();
3032
+ let type_size = ty.type_size();
3033
+ self.list.push(ty);
3034
+ TypeId {
3035
+ index,
3036
+ type_size,
3037
+ unique_id: 0,
3038
+ }
3039
+ }
3040
+ }
3041
+
3042
+ /// Helper trait for adding contextual information to an error, modeled after
3043
+ /// `anyhow::Context`.
3044
+ pub(crate) trait Context {
3045
+ fn with_context<S>(self, context: impl FnOnce() -> S) -> Self
3046
+ where
3047
+ S: Into<String>;
3048
+ }
3049
+
3050
+ impl<T> Context for Result<T> {
3051
+ fn with_context<S>(self, context: impl FnOnce() -> S) -> Self
3052
+ where
3053
+ S: Into<String>,
3054
+ {
3055
+ match self {
3056
+ Ok(val) => Ok(val),
3057
+ Err(e) => Err(e.with_context(context)),
3058
+ }
3059
+ }
3060
+ }
3061
+
3062
+ impl Context for BinaryReaderError {
3063
+ fn with_context<S>(mut self, context: impl FnOnce() -> S) -> Self
3064
+ where
3065
+ S: Into<String>,
3066
+ {
3067
+ self.add_context(context().into());
3068
+ self
3069
+ }
3070
+ }