wasmtime 9.0.4 → 10.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,3148 @@
1
+ //! State relating to validating a WebAssembly component.
2
+
3
+ use super::{
4
+ check_max,
5
+ core::Module,
6
+ types::{
7
+ ComponentFuncType, ComponentInstanceType, ComponentType, ComponentValType, EntityType,
8
+ InstanceType, ModuleType, RecordType, Remapping, ResourceId, Type, TypeAlloc, TypeId,
9
+ TypeList, VariantCase,
10
+ },
11
+ };
12
+ use crate::validator::names::{KebabName, KebabNameKind, KebabStr, KebabString};
13
+ use crate::{
14
+ limits::*,
15
+ types::{
16
+ ComponentDefinedType, ComponentEntityType, Context, InstanceTypeKind, LoweringInfo, Remap,
17
+ SubtypeCx, TupleType, TypeInfo, UnionType, VariantType,
18
+ },
19
+ BinaryReaderError, CanonicalOption, ComponentExternName, ComponentExternalKind,
20
+ ComponentOuterAliasKind, ComponentTypeRef, ExternalKind, FuncType, GlobalType,
21
+ InstantiationArgKind, MemoryType, Result, StructuralType, SubType, TableType, TypeBounds,
22
+ ValType, WasmFeatures,
23
+ };
24
+ use indexmap::{map::Entry, IndexMap, IndexSet};
25
+ use std::collections::{HashMap, HashSet};
26
+ use std::mem;
27
+
28
+ fn to_kebab_str<'a>(s: &'a str, desc: &str, offset: usize) -> Result<&'a KebabStr> {
29
+ match KebabStr::new(s) {
30
+ Some(s) => Ok(s),
31
+ None => {
32
+ if s.is_empty() {
33
+ bail!(offset, "{desc} name cannot be empty");
34
+ }
35
+
36
+ bail!(offset, "{desc} name `{s}` is not in kebab case");
37
+ }
38
+ }
39
+ }
40
+
41
+ pub(crate) struct ComponentState {
42
+ /// Whether this state is a concrete component, an instance type, or a
43
+ /// component type.
44
+ kind: ComponentKind,
45
+
46
+ // Core index spaces
47
+ pub core_types: Vec<TypeId>,
48
+ pub core_modules: Vec<TypeId>,
49
+ pub core_instances: Vec<TypeId>,
50
+ pub core_funcs: Vec<TypeId>,
51
+ pub core_memories: Vec<MemoryType>,
52
+ pub core_tables: Vec<TableType>,
53
+ pub core_globals: Vec<GlobalType>,
54
+ pub core_tags: Vec<TypeId>,
55
+
56
+ // Component index spaces
57
+ pub types: Vec<TypeId>,
58
+ pub funcs: Vec<TypeId>,
59
+ pub values: Vec<(ComponentValType, bool)>,
60
+ pub instances: Vec<TypeId>,
61
+ pub components: Vec<TypeId>,
62
+
63
+ pub imports: IndexMap<String, ComponentEntityType>,
64
+ pub exports: IndexMap<String, ComponentEntityType>,
65
+ pub kebab_named_externs: IndexSet<KebabName>,
66
+
67
+ has_start: bool,
68
+ type_info: TypeInfo,
69
+
70
+ /// A mapping of imported resources in this component.
71
+ ///
72
+ /// This mapping represents all "type variables" imported into the
73
+ /// component, or resources. This could be resources imported directly as
74
+ /// a top-level type import or additionally transitively through other
75
+ /// imported instances.
76
+ ///
77
+ /// The mapping element here is a "path" which is a list of indexes into
78
+ /// the import map that will be generated for this component. Each index
79
+ /// is an index into an `IndexMap`, and each list is guaranteed to have at
80
+ /// least one element.
81
+ ///
82
+ /// An example of this map is:
83
+ ///
84
+ /// ```wasm
85
+ /// (component
86
+ /// ;; [0] - the first import
87
+ /// (import "r" (type (sub resource)))
88
+ ///
89
+ /// ;; [1] - the second import
90
+ /// (import "r2" (type (sub resource)))
91
+ ///
92
+ /// (import "i" (instance
93
+ /// ;; [2, 0] - the third import, and the first export the instance
94
+ /// (export "r3" (type (sub resource)))
95
+ /// ;; [2, 1] - the third import, and the second export the instance
96
+ /// (export "r4" (type (sub resource)))
97
+ /// ))
98
+ ///
99
+ /// ;; ...
100
+ /// )
101
+ /// ```
102
+ ///
103
+ /// The `Vec<usize>` here can be thought of as `Vec<String>` but a
104
+ /// (hopefully) more efficient representation.
105
+ ///
106
+ /// Finally note that this map is listed as an "append only" map because all
107
+ /// insertions into it should always succeed. Any insertion which overlaps
108
+ /// with a previous entry indicates a bug in the validator which needs to be
109
+ /// corrected via other means.
110
+ //
111
+ // TODO: make these `SkolemResourceId` and then go fix all the compile
112
+ // errors, don't add skolem things into the type area
113
+ imported_resources: IndexMapAppendOnly<ResourceId, Vec<usize>>,
114
+
115
+ /// A mapping of "defined" resources in this component, or those which
116
+ /// are defined within the instantiation of this component.
117
+ ///
118
+ /// Defined resources, as the name implies, can sort of be thought of as
119
+ /// "these are defined within the component". Note though that the means by
120
+ /// which a local definition can occur are not simply those defined in the
121
+ /// component but also in its transitively instantiated components
122
+ /// internally. This means that this set closes over many transitive
123
+ /// internal items in addition to those defined immediately in the component
124
+ /// itself.
125
+ ///
126
+ /// The `Option<ValType>` in this mapping is whether or not the underlying
127
+ /// reprsentation of the resource is known to this component. Immediately
128
+ /// defined resources, for example, will have `Some(I32)` here. Resources
129
+ /// that come from transitively defined components, for example, will have
130
+ /// `None`. In the type context all entries here are `None`.
131
+ ///
132
+ /// Note that like `imported_resources` all insertions into this map are
133
+ /// expected to succeed to it's declared as append-only.
134
+ defined_resources: IndexMapAppendOnly<ResourceId, Option<ValType>>,
135
+
136
+ /// A mapping of explicitly exported resources from this component in
137
+ /// addition to the path that they're exported at.
138
+ ///
139
+ /// For more information on the path here see the documentation for
140
+ /// `imported_resources`. Note that the indexes here index into the
141
+ /// list of exports of this component.
142
+ explicit_resources: IndexMap<ResourceId, Vec<usize>>,
143
+
144
+ /// The set of types which are considered "exported" from this component.
145
+ ///
146
+ /// This is added to whenever a type export is found, or an instance export
147
+ /// which itself contains a type export. This additionally includes all
148
+ /// imported types since those are suitable for export as well.
149
+ ///
150
+ /// This set is consulted whenever an exported item is added since all
151
+ /// referenced types must be members of this set.
152
+ exported_types: HashSet<TypeId>,
153
+
154
+ /// Same as `exported_types`, but for imports.
155
+ imported_types: HashSet<TypeId>,
156
+
157
+ /// The set of top-level resource exports and their names.
158
+ ///
159
+ /// This context is used to validate method names such as `[method]foo.bar`
160
+ /// to ensure that `foo` is an exported resource and that the type mentioned
161
+ /// in a function type is actually named `foo`.
162
+ ///
163
+ /// Note that imports/exports have disjoint contexts to ensure that they're
164
+ /// validated correctly. Namely you can't retroactively attach methods to an
165
+ /// import, for example.
166
+ toplevel_exported_resources: KebabNameContext,
167
+
168
+ /// Same as `toplevel_exported_resources`, but for imports.
169
+ toplevel_imported_resources: KebabNameContext,
170
+ }
171
+
172
+ #[derive(Copy, Clone, Debug, PartialEq, Eq)]
173
+ pub enum ComponentKind {
174
+ Component,
175
+ InstanceType,
176
+ ComponentType,
177
+ }
178
+
179
+ /// Helper context used to track information about resource names for method
180
+ /// name validation.
181
+ #[derive(Default)]
182
+ struct KebabNameContext {
183
+ /// A map from a resource type id to an index in the `all_resource_names`
184
+ /// set for the name of that resource.
185
+ resource_name_map: HashMap<TypeId, usize>,
186
+
187
+ /// All known resource names in this context, used to validate static method
188
+ /// names to by ensuring that static methods' resource names are somewhere
189
+ /// in this set.
190
+ all_resource_names: IndexSet<String>,
191
+ }
192
+
193
+ #[derive(Debug, Copy, Clone)]
194
+ pub enum ExternKind {
195
+ Import,
196
+ Export,
197
+ }
198
+
199
+ impl ExternKind {
200
+ pub fn desc(&self) -> &'static str {
201
+ match self {
202
+ ExternKind::Import => "import",
203
+ ExternKind::Export => "export",
204
+ }
205
+ }
206
+ }
207
+
208
+ impl ComponentState {
209
+ pub fn new(kind: ComponentKind) -> Self {
210
+ Self {
211
+ kind,
212
+ core_types: Default::default(),
213
+ core_modules: Default::default(),
214
+ core_instances: Default::default(),
215
+ core_funcs: Default::default(),
216
+ core_memories: Default::default(),
217
+ core_tables: Default::default(),
218
+ core_globals: Default::default(),
219
+ core_tags: Default::default(),
220
+ types: Default::default(),
221
+ funcs: Default::default(),
222
+ values: Default::default(),
223
+ instances: Default::default(),
224
+ components: Default::default(),
225
+ imports: Default::default(),
226
+ exports: Default::default(),
227
+ kebab_named_externs: Default::default(),
228
+ has_start: Default::default(),
229
+ type_info: TypeInfo::new(),
230
+ imported_resources: Default::default(),
231
+ defined_resources: Default::default(),
232
+ explicit_resources: Default::default(),
233
+ exported_types: Default::default(),
234
+ imported_types: Default::default(),
235
+ toplevel_exported_resources: Default::default(),
236
+ toplevel_imported_resources: Default::default(),
237
+ }
238
+ }
239
+
240
+ pub fn type_count(&self) -> usize {
241
+ self.core_types.len() + self.types.len()
242
+ }
243
+
244
+ pub fn instance_count(&self) -> usize {
245
+ self.core_instances.len() + self.instances.len()
246
+ }
247
+
248
+ pub fn function_count(&self) -> usize {
249
+ self.core_funcs.len() + self.funcs.len()
250
+ }
251
+
252
+ pub fn add_core_type(
253
+ components: &mut [Self],
254
+ ty: crate::CoreType,
255
+ features: &WasmFeatures,
256
+ types: &mut TypeAlloc,
257
+ offset: usize,
258
+ check_limit: bool,
259
+ ) -> Result<()> {
260
+ let ty = match ty {
261
+ crate::CoreType::Func(ty) => Type::Sub(SubType {
262
+ is_final: false,
263
+ supertype_idx: None,
264
+ structural_type: StructuralType::Func(ty),
265
+ }),
266
+ crate::CoreType::Module(decls) => Type::Module(Box::new(Self::create_module_type(
267
+ components,
268
+ decls.into_vec(),
269
+ features,
270
+ types,
271
+ offset,
272
+ )?)),
273
+ };
274
+
275
+ let current = components.last_mut().unwrap();
276
+
277
+ if check_limit {
278
+ check_max(current.type_count(), 1, MAX_WASM_TYPES, "types", offset)?;
279
+ }
280
+
281
+ let id = types.push_ty(ty);
282
+ current.core_types.push(id);
283
+
284
+ Ok(())
285
+ }
286
+
287
+ pub fn add_core_module(
288
+ &mut self,
289
+ module: &Module,
290
+ types: &mut TypeAlloc,
291
+ offset: usize,
292
+ ) -> Result<()> {
293
+ let imports = module.imports_for_module_type(offset)?;
294
+
295
+ // We have to clone the module's imports and exports here
296
+ // because we cannot take the data out of the `MaybeOwned`
297
+ // as it might be shared with a function validator.
298
+ let ty = Type::Module(Box::new(ModuleType {
299
+ info: TypeInfo::core(module.type_size),
300
+ imports,
301
+ exports: module.exports.clone(),
302
+ }));
303
+
304
+ let id = types.push_ty(ty);
305
+ self.core_modules.push(id);
306
+
307
+ Ok(())
308
+ }
309
+
310
+ pub fn add_core_instance(
311
+ &mut self,
312
+ instance: crate::Instance,
313
+ types: &mut TypeAlloc,
314
+ offset: usize,
315
+ ) -> Result<()> {
316
+ let instance = match instance {
317
+ crate::Instance::Instantiate { module_index, args } => {
318
+ self.instantiate_module(module_index, args.into_vec(), types, offset)?
319
+ }
320
+ crate::Instance::FromExports(exports) => {
321
+ self.instantiate_core_exports(exports.into_vec(), types, offset)?
322
+ }
323
+ };
324
+
325
+ self.core_instances.push(instance);
326
+
327
+ Ok(())
328
+ }
329
+
330
+ pub fn add_type(
331
+ components: &mut Vec<Self>,
332
+ ty: crate::ComponentType,
333
+ features: &WasmFeatures,
334
+ types: &mut TypeAlloc,
335
+ offset: usize,
336
+ check_limit: bool,
337
+ ) -> Result<()> {
338
+ assert!(!components.is_empty());
339
+ let ty = match ty {
340
+ crate::ComponentType::Defined(ty) => Type::Defined(
341
+ components
342
+ .last_mut()
343
+ .unwrap()
344
+ .create_defined_type(ty, types, offset)?,
345
+ ),
346
+ crate::ComponentType::Func(ty) => Type::ComponentFunc(
347
+ components
348
+ .last_mut()
349
+ .unwrap()
350
+ .create_function_type(ty, types, offset)?,
351
+ ),
352
+ crate::ComponentType::Component(decls) => Type::Component(Box::new(
353
+ Self::create_component_type(components, decls.into_vec(), features, types, offset)?,
354
+ )),
355
+ crate::ComponentType::Instance(decls) => Type::ComponentInstance(Box::new(
356
+ Self::create_instance_type(components, decls.into_vec(), features, types, offset)?,
357
+ )),
358
+ crate::ComponentType::Resource { rep, dtor } => {
359
+ let component = components.last_mut().unwrap();
360
+
361
+ // Resource types cannot be declared in a type context, only
362
+ // within a component context.
363
+ if component.kind != ComponentKind::Component {
364
+ bail!(
365
+ offset,
366
+ "resources can only be defined within a concrete component"
367
+ );
368
+ }
369
+
370
+ // Current MVP restriction of the component model.
371
+ if rep != ValType::I32 {
372
+ bail!(offset, "resources can only be represented by `i32`");
373
+ }
374
+
375
+ // If specified validate that the destructor is both a valid
376
+ // function and has the correct signature.
377
+ if let Some(dtor) = dtor {
378
+ let ty = component.core_function_at(dtor, offset)?;
379
+ let ty = types[ty].unwrap_func();
380
+ if ty.params() != [rep] || ty.results() != [] {
381
+ bail!(
382
+ offset,
383
+ "core function {dtor} has wrong signature for a destructor"
384
+ );
385
+ }
386
+ }
387
+
388
+ // As this is the introduction of a resource create a fresh new
389
+ // identifier for the resource. This is then added into the
390
+ // list of defined resources for this component, notably with a
391
+ // rep listed to enable getting access to various intrinsics
392
+ // such as `resource.rep`.
393
+ let id = types.alloc_resource_id();
394
+ component.defined_resources.insert(id, Some(rep));
395
+ Type::Resource(id)
396
+ }
397
+ };
398
+
399
+ let current = components.last_mut().unwrap();
400
+ if check_limit {
401
+ check_max(current.type_count(), 1, MAX_WASM_TYPES, "types", offset)?;
402
+ }
403
+
404
+ let id = types.push_ty(ty);
405
+ current.types.push(id);
406
+
407
+ Ok(())
408
+ }
409
+
410
+ pub fn add_import(
411
+ &mut self,
412
+ import: crate::ComponentImport,
413
+ features: &WasmFeatures,
414
+ types: &mut TypeAlloc,
415
+ offset: usize,
416
+ ) -> Result<()> {
417
+ let mut entity = self.check_type_ref(&import.ty, features, types, offset)?;
418
+ self.add_entity(
419
+ &mut entity,
420
+ Some((import.name.as_str(), ExternKind::Import)),
421
+ features,
422
+ types,
423
+ offset,
424
+ )?;
425
+ self.toplevel_imported_resources.validate_extern(
426
+ import.name,
427
+ "import",
428
+ &entity,
429
+ types,
430
+ offset,
431
+ &mut self.kebab_named_externs,
432
+ &mut self.imports,
433
+ &mut self.type_info,
434
+ )?;
435
+ Ok(())
436
+ }
437
+
438
+ fn add_entity(
439
+ &mut self,
440
+ ty: &mut ComponentEntityType,
441
+ name_and_kind: Option<(&str, ExternKind)>,
442
+ features: &WasmFeatures,
443
+ types: &mut TypeAlloc,
444
+ offset: usize,
445
+ ) -> Result<()> {
446
+ let kind = name_and_kind.map(|(_, k)| k);
447
+ let (len, max, desc) = match ty {
448
+ ComponentEntityType::Module(id) => {
449
+ self.core_modules.push(*id);
450
+ (self.core_modules.len(), MAX_WASM_MODULES, "modules")
451
+ }
452
+ ComponentEntityType::Component(id) => {
453
+ self.components.push(*id);
454
+ (self.components.len(), MAX_WASM_COMPONENTS, "components")
455
+ }
456
+ ComponentEntityType::Instance(id) => {
457
+ match kind {
458
+ Some(ExternKind::Import) => self.prepare_instance_import(id, types),
459
+ Some(ExternKind::Export) => self.prepare_instance_export(id, types),
460
+ None => {}
461
+ }
462
+ self.instances.push(*id);
463
+ (self.instance_count(), MAX_WASM_INSTANCES, "instances")
464
+ }
465
+ ComponentEntityType::Func(id) => {
466
+ self.funcs.push(*id);
467
+ (self.function_count(), MAX_WASM_FUNCTIONS, "functions")
468
+ }
469
+ ComponentEntityType::Value(ty) => {
470
+ self.check_value_support(features, offset)?;
471
+ let value_used = match kind {
472
+ Some(ExternKind::Import) | None => false,
473
+ Some(ExternKind::Export) => true,
474
+ };
475
+ self.values.push((*ty, value_used));
476
+ (self.values.len(), MAX_WASM_VALUES, "values")
477
+ }
478
+ ComponentEntityType::Type {
479
+ created,
480
+ referenced,
481
+ } => {
482
+ self.types.push(*created);
483
+
484
+ // Extra logic here for resources being imported and exported.
485
+ // Note that if `created` is the same as `referenced` then this
486
+ // is the original introduction of the resource which is where
487
+ // `self.{imported,defined}_resources` are updated.
488
+ if let Type::Resource(id) = types[*created] {
489
+ match kind {
490
+ Some(ExternKind::Import) => {
491
+ // A fresh new resource is being imported into a
492
+ // component. This arises from the import section of
493
+ // a component or from the import declaration in a
494
+ // component type. In both cases a new imported
495
+ // resource is injected with a fresh new identifier
496
+ // into our state.
497
+ if created == referenced {
498
+ self.imported_resources.insert(id, vec![self.imports.len()]);
499
+ }
500
+ }
501
+
502
+ Some(ExternKind::Export) => {
503
+ // A fresh resource is being exported from this
504
+ // component. This arises as part of the
505
+ // declaration of a component type, for example. In
506
+ // this situation brand new resource identifier is
507
+ // allocated and a definition is added, unlike the
508
+ // import case where an imported resource is added.
509
+ // Notably the representation of this new resource
510
+ // is unknown so it's listed as `None`.
511
+ if created == referenced {
512
+ self.defined_resources.insert(id, None);
513
+ }
514
+
515
+ // If this is a type export of a resource type then
516
+ // update the `explicit_resources` list. A new
517
+ // export path is about to be created for this
518
+ // resource and this keeps track of that.
519
+ self.explicit_resources.insert(id, vec![self.exports.len()]);
520
+ }
521
+
522
+ None => {}
523
+ }
524
+ }
525
+ (self.types.len(), MAX_WASM_TYPES, "types")
526
+ }
527
+ };
528
+
529
+ check_max(len, 0, max, desc, offset)?;
530
+
531
+ // Before returning perform the final validation of the type of the item
532
+ // being imported/exported. This will ensure that everything is
533
+ // appropriately named with respect to type definitions, resources, etc.
534
+ if let Some((name, kind)) = name_and_kind {
535
+ if !self.validate_and_register_named_types(Some(name), kind, ty, types) {
536
+ bail!(
537
+ offset,
538
+ "{} not valid to be used as {}",
539
+ ty.desc(),
540
+ kind.desc()
541
+ );
542
+ }
543
+ }
544
+ Ok(())
545
+ }
546
+
547
+ /// Validates that the `ty` referenced only refers to named types internally
548
+ /// and then inserts anything necessary, if applicable, to the defined sets
549
+ /// within this component.
550
+ ///
551
+ /// This function will validate that `ty` only refers to named types. For
552
+ /// example if it's a record then all of its fields must refer to named
553
+ /// types. This consults either `self.imported_types` or
554
+ /// `self.exported_types` as specified by `kind`. Note that this is not
555
+ /// inherently recursive itself but it ends up being recursive since if
556
+ /// recursive members were named then all their components must also be
557
+ /// named. Consequently this check stops at the "one layer deep" position,
558
+ /// or more accurately the position where types must be named (e.g. tuples
559
+ /// aren't required to be named).
560
+ fn validate_and_register_named_types(
561
+ &mut self,
562
+ toplevel_name: Option<&str>,
563
+ kind: ExternKind,
564
+ ty: &ComponentEntityType,
565
+ types: &TypeAlloc,
566
+ ) -> bool {
567
+ if let ComponentEntityType::Type { created, .. } = ty {
568
+ // If this is a top-level resource then register it in the
569
+ // appropriate context so later validation of method-like-names
570
+ // works out.
571
+ if let Some(name) = toplevel_name {
572
+ if let Type::Resource(_) = types[*created] {
573
+ let cx = match kind {
574
+ ExternKind::Import => &mut self.toplevel_imported_resources,
575
+ ExternKind::Export => &mut self.toplevel_exported_resources,
576
+ };
577
+ cx.register(name, *created);
578
+ }
579
+ }
580
+ }
581
+
582
+ match self.kind {
583
+ ComponentKind::Component | ComponentKind::ComponentType => {}
584
+ ComponentKind::InstanceType => return true,
585
+ }
586
+ let set = match kind {
587
+ ExternKind::Import => &self.imported_types,
588
+ ExternKind::Export => &self.exported_types,
589
+ };
590
+ match ty {
591
+ // When a type is imported or exported than any recursive type
592
+ // referred to by that import/export must additionally be exported
593
+ // or imported. Here this walks the "first layer" of the type which
594
+ // delegates to `TypeAlloc::type_named_type_id` to determine whether
595
+ // the components of the type being named here are indeed all they
596
+ // themselves named.
597
+ ComponentEntityType::Type {
598
+ created,
599
+ referenced,
600
+ } => {
601
+ if !self.all_valtypes_named(types, *referenced, set) {
602
+ return false;
603
+ }
604
+ match kind {
605
+ // Imported types are both valid for import and valid for
606
+ // export.
607
+ ExternKind::Import => {
608
+ self.imported_types.insert(*created);
609
+ self.exported_types.insert(*created);
610
+ }
611
+ ExternKind::Export => {
612
+ self.exported_types.insert(*created);
613
+ }
614
+ }
615
+
616
+ true
617
+ }
618
+
619
+ // Instances are slightly nuanced here. The general idea is that if
620
+ // an instance is imported, then any type exported by the instance
621
+ // is then also exported. Additionally for exports. To get this to
622
+ // work out this arm will recursively call
623
+ // `validate_and_register_named_types` which means that types are
624
+ // inserted into `self.{imported,exported}_types` as-we-go rather
625
+ // than all at once.
626
+ //
627
+ // This then recursively validates that all items in the instance
628
+ // itself are valid to import/export, recursive instances are
629
+ // captured, and everything is appropriately added to the right
630
+ // imported/exported set.
631
+ ComponentEntityType::Instance(i) => {
632
+ let ty = types[*i].unwrap_component_instance();
633
+ ty.exports
634
+ .values()
635
+ .all(|ty| self.validate_and_register_named_types(None, kind, ty, types))
636
+ }
637
+
638
+ // All types referred to by a function must be named.
639
+ ComponentEntityType::Func(id) => self.all_valtypes_named(types, *id, set),
640
+
641
+ ComponentEntityType::Value(ty) => types.type_named_valtype(ty, set),
642
+
643
+ // Components/modules are always "closed" or "standalone" and don't
644
+ // need validation with respect to their named types.
645
+ ComponentEntityType::Component(_) | ComponentEntityType::Module(_) => true,
646
+ }
647
+ }
648
+ fn all_valtypes_named(&self, types: &TypeAlloc, id: TypeId, set: &HashSet<TypeId>) -> bool {
649
+ match &types[id] {
650
+ Type::Defined(i) => match i {
651
+ // These types do not contain anything which must be
652
+ // named.
653
+ ComponentDefinedType::Primitive(_)
654
+ | ComponentDefinedType::Flags(_)
655
+ | ComponentDefinedType::Enum(_) => true,
656
+
657
+ // Referenced types of all these aggregates must all be
658
+ // named.
659
+ ComponentDefinedType::Record(r) => {
660
+ r.fields.values().all(|t| types.type_named_valtype(t, set))
661
+ }
662
+ ComponentDefinedType::Tuple(r) => {
663
+ r.types.iter().all(|t| types.type_named_valtype(t, set))
664
+ }
665
+ ComponentDefinedType::Union(r) => {
666
+ r.types.iter().all(|t| types.type_named_valtype(t, set))
667
+ }
668
+ ComponentDefinedType::Variant(r) => r
669
+ .cases
670
+ .values()
671
+ .filter_map(|t| t.ty.as_ref())
672
+ .all(|t| types.type_named_valtype(t, set)),
673
+ ComponentDefinedType::Result { ok, err } => {
674
+ ok.as_ref()
675
+ .map(|t| types.type_named_valtype(t, set))
676
+ .unwrap_or(true)
677
+ && err
678
+ .as_ref()
679
+ .map(|t| types.type_named_valtype(t, set))
680
+ .unwrap_or(true)
681
+ }
682
+ ComponentDefinedType::List(ty) | ComponentDefinedType::Option(ty) => {
683
+ types.type_named_valtype(ty, set)
684
+ }
685
+
686
+ // The resource referred to by own/borrow must be named.
687
+ ComponentDefinedType::Own(id) | ComponentDefinedType::Borrow(id) => {
688
+ set.contains(id)
689
+ }
690
+ },
691
+
692
+ // Core wasm constructs are always valid with respect to
693
+ // exported types, since they have none.
694
+ Type::Module(_) | Type::Instance(_) | Type::Sub(_) => true,
695
+
696
+ // Resource types, in isolation, are always valid to import
697
+ // or export since they're either attached to an import or
698
+ // being exported.
699
+ //
700
+ // Note that further validation of this happens in `finish`,
701
+ // too.
702
+ Type::Resource(_) => true,
703
+
704
+ // Component types are validated as they are constructed,
705
+ // so all component types are valid to export if they've
706
+ // already been constructed.
707
+ Type::Component(_) => true,
708
+
709
+ // Function types must have all their parameters/results named.
710
+ Type::ComponentFunc(ty) => ty
711
+ .params
712
+ .iter()
713
+ .map(|(_, ty)| ty)
714
+ .chain(ty.results.iter().map(|(_, ty)| ty))
715
+ .all(|ty| types.type_named_valtype(ty, set)),
716
+
717
+ // Instances must recursively have all referenced types named.
718
+ Type::ComponentInstance(ty) => ty.exports.values().all(|ty| {
719
+ let id = match ty {
720
+ ComponentEntityType::Module(id)
721
+ | ComponentEntityType::Func(id)
722
+ | ComponentEntityType::Value(ComponentValType::Type(id))
723
+ | ComponentEntityType::Type { created: id, .. }
724
+ | ComponentEntityType::Instance(id)
725
+ | ComponentEntityType::Component(id) => *id,
726
+ ComponentEntityType::Value(ComponentValType::Primitive(_)) => return true,
727
+ };
728
+ self.all_valtypes_named(types, id, set)
729
+ }),
730
+ }
731
+ }
732
+
733
+ /// Updates the type `id` specified, an identifier for a component instance
734
+ /// type, to be imported into this component.
735
+ ///
736
+ /// Importing an instance type into a component specially handles the
737
+ /// defined resources registered in the instance type. Notably all
738
+ /// defined resources are "freshened" into brand new type variables and
739
+ /// these new variables are substituted within the type. This is what
740
+ /// creates a new `TypeId` and may update the `id` specified.
741
+ ///
742
+ /// One side effect of this operation, for example, is that if an instance
743
+ /// type is used twice to import two different instances then the instances
744
+ /// do not share resource types despite sharing the same original instance
745
+ /// type.
746
+ fn prepare_instance_import(&mut self, id: &mut TypeId, types: &mut TypeAlloc) {
747
+ let ty = types[*id].unwrap_component_instance();
748
+
749
+ // No special treatment for imports of instances which themselves have
750
+ // no defined resources
751
+ if ty.defined_resources.is_empty() {
752
+ return;
753
+ }
754
+
755
+ let mut new_ty = ComponentInstanceType {
756
+ // Copied from the input verbatim
757
+ info: ty.info,
758
+
759
+ // Copied over as temporary storage for now, and both of these are
760
+ // filled out and expanded below.
761
+ exports: ty.exports.clone(),
762
+ explicit_resources: ty.explicit_resources.clone(),
763
+
764
+ // Explicitly discard this field since the
765
+ // defined resources are lifted into `self`
766
+ defined_resources: Default::default(),
767
+ };
768
+
769
+ // Create brand new resources for all defined ones in the instance.
770
+ let resources = (0..ty.defined_resources.len())
771
+ .map(|_| types.alloc_resource_id())
772
+ .collect::<IndexSet<_>>();
773
+
774
+ // Build a map from the defined resources in `ty` to those in `new_ty`.
775
+ //
776
+ // As part of this same loop the new resources, which were previously
777
+ // defined in `ty`, now become imported variables in `self`. Their
778
+ // path for where they're imported is updated as well with
779
+ // `self.next_import_index` as the import-to-be soon.
780
+ let mut mapping = Remapping::default();
781
+ let ty = types[*id].unwrap_component_instance();
782
+ for (old, new) in ty.defined_resources.iter().zip(&resources) {
783
+ let prev = mapping.resources.insert(*old, *new);
784
+ assert!(prev.is_none());
785
+
786
+ let mut base = vec![self.imports.len()];
787
+ base.extend(ty.explicit_resources[old].iter().copied());
788
+ self.imported_resources.insert(*new, base);
789
+ }
790
+
791
+ // Using the old-to-new resource mapping perform a substitution on
792
+ // the `exports` and `explicit_resources` fields of `new_ty`
793
+ for ty in new_ty.exports.values_mut() {
794
+ types.remap_component_entity(ty, &mut mapping);
795
+ }
796
+ for (id, path) in mem::take(&mut new_ty.explicit_resources) {
797
+ let id = *mapping.resources.get(&id).unwrap_or(&id);
798
+ new_ty.explicit_resources.insert(id, path);
799
+ }
800
+
801
+ // Now that `new_ty` is complete finish its registration and then
802
+ // update `id` on the way out.
803
+ *id = types.push_ty(Type::ComponentInstance(Box::new(new_ty)));
804
+ }
805
+
806
+ /// Prepares an instance type, pointed to `id`, for being exported as a
807
+ /// concrete instance from `self`.
808
+ ///
809
+ /// This will internally perform any resource "freshening" as required and
810
+ /// then additionally update metadata within `self` about resources being
811
+ /// exported or defined.
812
+ fn prepare_instance_export(&mut self, id: &mut TypeId, types: &mut TypeAlloc) {
813
+ // Exports of an instance mean that the enclosing context
814
+ // is inheriting the resources that the instance
815
+ // encapsulates. This means that the instance type
816
+ // recorded for this export will itself have no
817
+ // defined resources.
818
+ let ty = types[*id].unwrap_component_instance();
819
+
820
+ // Check to see if `defined_resources` is non-empty, and if so then
821
+ // "freshen" all the resources and inherit them to our own defined
822
+ // resources, updating `id` in the process.
823
+ //
824
+ // Note though that this specifically is not rewriting the resources of
825
+ // exported instances. The `defined_resources` set on instance types is
826
+ // a little subtle (see its documentation for more info), but the
827
+ // general idea is that for a concrete instance it's always empty. Only
828
+ // for instance type definitions does it ever have elements in it.
829
+ //
830
+ // That means that if this set is non-empty then what's happening is
831
+ // that we're in a type context an exporting an instance of a previously
832
+ // specified type. In this case all resources are required to be
833
+ // "freshened" to ensure that multiple exports of the same type all
834
+ // export different types of resources.
835
+ //
836
+ // And finally note that this operation empties out the
837
+ // `defined_resources` set of the type that is registered for the
838
+ // instance, as this export is modeled as producing a concrete instance.
839
+ if !ty.defined_resources.is_empty() {
840
+ let mut new_ty = ty.clone();
841
+ let mut mapping = Remapping::default();
842
+ for old in mem::take(&mut new_ty.defined_resources) {
843
+ let new = types.alloc_resource_id();
844
+ mapping.resources.insert(old, new);
845
+ self.defined_resources.insert(new, None);
846
+ }
847
+ for ty in new_ty.exports.values_mut() {
848
+ types.remap_component_entity(ty, &mut mapping);
849
+ }
850
+ for (id, path) in mem::take(&mut new_ty.explicit_resources) {
851
+ let id = mapping.resources.get(&id).copied().unwrap_or(id);
852
+ new_ty.explicit_resources.insert(id, path);
853
+ }
854
+ *id = types.push_ty(Type::ComponentInstance(Box::new(new_ty)));
855
+ }
856
+
857
+ // Any explicit resources in the instance are now additionally explicit
858
+ // in this component since it's exported.
859
+ //
860
+ // The path to each explicit resources gets one element prepended which
861
+ // is `self.next_export_index`, the index of the export about to be
862
+ // generated.
863
+ let ty = types[*id].unwrap_component_instance();
864
+ for (id, path) in ty.explicit_resources.iter() {
865
+ let mut new_path = vec![self.exports.len()];
866
+ new_path.extend(path);
867
+ self.explicit_resources.insert(*id, new_path);
868
+ }
869
+ }
870
+
871
+ pub fn add_export(
872
+ &mut self,
873
+ name: ComponentExternName<'_>,
874
+ mut ty: ComponentEntityType,
875
+ features: &WasmFeatures,
876
+ types: &mut TypeAlloc,
877
+ offset: usize,
878
+ check_limit: bool,
879
+ ) -> Result<()> {
880
+ if check_limit {
881
+ check_max(self.exports.len(), 1, MAX_WASM_EXPORTS, "exports", offset)?;
882
+ }
883
+ self.add_entity(
884
+ &mut ty,
885
+ Some((name.as_str(), ExternKind::Export)),
886
+ features,
887
+ types,
888
+ offset,
889
+ )?;
890
+ self.toplevel_exported_resources.validate_extern(
891
+ name.into(),
892
+ "export",
893
+ &ty,
894
+ types,
895
+ offset,
896
+ &mut self.kebab_named_externs,
897
+ &mut self.exports,
898
+ &mut self.type_info,
899
+ )?;
900
+ Ok(())
901
+ }
902
+
903
+ pub fn lift_function(
904
+ &mut self,
905
+ core_func_index: u32,
906
+ type_index: u32,
907
+ options: Vec<CanonicalOption>,
908
+ types: &TypeList,
909
+ offset: usize,
910
+ ) -> Result<()> {
911
+ let ty = self.function_type_at(type_index, types, offset)?;
912
+ let core_ty = types[self.core_function_at(core_func_index, offset)?].unwrap_func();
913
+
914
+ // Lifting a function is for an export, so match the expected canonical ABI
915
+ // export signature
916
+ let info = ty.lower(types, false);
917
+ self.check_options(Some(core_ty), &info, &options, types, offset)?;
918
+
919
+ if core_ty.params() != info.params.as_slice() {
920
+ bail!(
921
+ offset,
922
+ "lowered parameter types `{:?}` do not match parameter types \
923
+ `{:?}` of core function {core_func_index}",
924
+ info.params.as_slice(),
925
+ core_ty.params(),
926
+ );
927
+ }
928
+
929
+ if core_ty.results() != info.results.as_slice() {
930
+ bail!(
931
+ offset,
932
+ "lowered result types `{:?}` do not match result types \
933
+ `{:?}` of core function {core_func_index}",
934
+ info.results.as_slice(),
935
+ core_ty.results()
936
+ );
937
+ }
938
+
939
+ self.funcs.push(self.types[type_index as usize]);
940
+
941
+ Ok(())
942
+ }
943
+
944
+ pub fn lower_function(
945
+ &mut self,
946
+ func_index: u32,
947
+ options: Vec<CanonicalOption>,
948
+ types: &mut TypeAlloc,
949
+ offset: usize,
950
+ ) -> Result<()> {
951
+ let ty = types[self.function_at(func_index, offset)?].unwrap_component_func();
952
+
953
+ // Lowering a function is for an import, so use a function type that matches
954
+ // the expected canonical ABI import signature.
955
+ let info = ty.lower(types, true);
956
+
957
+ self.check_options(None, &info, &options, types, offset)?;
958
+
959
+ let lowered_ty = Type::Sub(SubType {
960
+ is_final: false,
961
+ supertype_idx: None,
962
+ structural_type: StructuralType::Func(info.into_func_type()),
963
+ });
964
+
965
+ let id = types.push_ty(lowered_ty);
966
+ self.core_funcs.push(id);
967
+
968
+ Ok(())
969
+ }
970
+
971
+ pub fn resource_new(
972
+ &mut self,
973
+ resource: u32,
974
+ types: &mut TypeAlloc,
975
+ offset: usize,
976
+ ) -> Result<()> {
977
+ let rep = self.check_local_resource(resource, types, offset)?;
978
+ let core_ty = Type::Sub(SubType {
979
+ is_final: false,
980
+ supertype_idx: None,
981
+ structural_type: StructuralType::Func(FuncType::new([rep], [ValType::I32])),
982
+ });
983
+ self.core_funcs.push(types.push_ty(core_ty));
984
+ Ok(())
985
+ }
986
+
987
+ pub fn resource_drop(
988
+ &mut self,
989
+ resource: u32,
990
+ types: &mut TypeAlloc,
991
+ offset: usize,
992
+ ) -> Result<()> {
993
+ self.resource_at(resource, types, offset)?;
994
+ let core_ty = Type::Sub(SubType {
995
+ is_final: false,
996
+ supertype_idx: None,
997
+ structural_type: StructuralType::Func(FuncType::new([ValType::I32], [])),
998
+ });
999
+ self.core_funcs.push(types.push_ty(core_ty));
1000
+ Ok(())
1001
+ }
1002
+
1003
+ pub fn resource_rep(
1004
+ &mut self,
1005
+ resource: u32,
1006
+ types: &mut TypeAlloc,
1007
+ offset: usize,
1008
+ ) -> Result<()> {
1009
+ let rep = self.check_local_resource(resource, types, offset)?;
1010
+ let core_ty = Type::Sub(SubType {
1011
+ is_final: false,
1012
+ supertype_idx: None,
1013
+ structural_type: StructuralType::Func(FuncType::new([ValType::I32], [rep])),
1014
+ });
1015
+ self.core_funcs.push(types.push_ty(core_ty));
1016
+ Ok(())
1017
+ }
1018
+
1019
+ fn check_local_resource(&self, idx: u32, types: &TypeList, offset: usize) -> Result<ValType> {
1020
+ let id = self.resource_at(idx, types, offset)?;
1021
+ let resource = types[id].unwrap_resource();
1022
+ match self.defined_resources.get(&resource).and_then(|rep| *rep) {
1023
+ Some(ty) => Ok(ty),
1024
+ None => bail!(offset, "type {idx} is not a local resource"),
1025
+ }
1026
+ }
1027
+
1028
+ fn resource_at<'a>(&self, idx: u32, types: &'a TypeList, offset: usize) -> Result<TypeId> {
1029
+ let id = self.type_at(idx, false, offset)?;
1030
+ match &types[id] {
1031
+ Type::Resource(_) => Ok(id),
1032
+ _ => bail!(offset, "type index {} is not a resource type", idx),
1033
+ }
1034
+ }
1035
+
1036
+ pub fn add_component(&mut self, component: ComponentType, types: &mut TypeAlloc) -> Result<()> {
1037
+ let ty = Type::Component(Box::new(component));
1038
+ let id = types.push_ty(ty);
1039
+ self.components.push(id);
1040
+ Ok(())
1041
+ }
1042
+
1043
+ pub fn add_instance(
1044
+ &mut self,
1045
+ instance: crate::ComponentInstance,
1046
+ features: &WasmFeatures,
1047
+ types: &mut TypeAlloc,
1048
+ offset: usize,
1049
+ ) -> Result<()> {
1050
+ let instance = match instance {
1051
+ crate::ComponentInstance::Instantiate {
1052
+ component_index,
1053
+ args,
1054
+ } => self.instantiate_component(
1055
+ component_index,
1056
+ args.into_vec(),
1057
+ features,
1058
+ types,
1059
+ offset,
1060
+ )?,
1061
+ crate::ComponentInstance::FromExports(exports) => {
1062
+ self.instantiate_exports(exports.into_vec(), features, types, offset)?
1063
+ }
1064
+ };
1065
+
1066
+ self.instances.push(instance);
1067
+
1068
+ Ok(())
1069
+ }
1070
+
1071
+ pub fn add_alias(
1072
+ components: &mut [Self],
1073
+ alias: crate::ComponentAlias,
1074
+ features: &WasmFeatures,
1075
+ types: &mut TypeAlloc,
1076
+ offset: usize,
1077
+ ) -> Result<()> {
1078
+ match alias {
1079
+ crate::ComponentAlias::InstanceExport {
1080
+ instance_index,
1081
+ kind,
1082
+ name,
1083
+ } => components.last_mut().unwrap().alias_instance_export(
1084
+ instance_index,
1085
+ kind,
1086
+ name,
1087
+ features,
1088
+ types,
1089
+ offset,
1090
+ ),
1091
+ crate::ComponentAlias::CoreInstanceExport {
1092
+ instance_index,
1093
+ kind,
1094
+ name,
1095
+ } => components.last_mut().unwrap().alias_core_instance_export(
1096
+ instance_index,
1097
+ kind,
1098
+ name,
1099
+ types,
1100
+ offset,
1101
+ ),
1102
+ crate::ComponentAlias::Outer { kind, count, index } => match kind {
1103
+ ComponentOuterAliasKind::CoreModule => {
1104
+ Self::alias_module(components, count, index, offset)
1105
+ }
1106
+ ComponentOuterAliasKind::CoreType => {
1107
+ Self::alias_core_type(components, count, index, offset)
1108
+ }
1109
+ ComponentOuterAliasKind::Type => {
1110
+ Self::alias_type(components, count, index, types, offset)
1111
+ }
1112
+ ComponentOuterAliasKind::Component => {
1113
+ Self::alias_component(components, count, index, offset)
1114
+ }
1115
+ },
1116
+ }
1117
+ }
1118
+
1119
+ pub fn add_start(
1120
+ &mut self,
1121
+ func_index: u32,
1122
+ args: &[u32],
1123
+ results: u32,
1124
+ features: &WasmFeatures,
1125
+ types: &TypeList,
1126
+ offset: usize,
1127
+ ) -> Result<()> {
1128
+ if !features.component_model_values {
1129
+ bail!(
1130
+ offset,
1131
+ "support for component model `value`s is not enabled"
1132
+ );
1133
+ }
1134
+ if self.has_start {
1135
+ return Err(BinaryReaderError::new(
1136
+ "component cannot have more than one start function",
1137
+ offset,
1138
+ ));
1139
+ }
1140
+
1141
+ let ft = types[self.function_at(func_index, offset)?].unwrap_component_func();
1142
+
1143
+ if ft.params.len() != args.len() {
1144
+ bail!(
1145
+ offset,
1146
+ "component start function requires {} arguments but was given {}",
1147
+ ft.params.len(),
1148
+ args.len()
1149
+ );
1150
+ }
1151
+
1152
+ if ft.results.len() as u32 != results {
1153
+ bail!(
1154
+ offset,
1155
+ "component start function has a result count of {results} \
1156
+ but the function type has a result count of {type_results}",
1157
+ type_results = ft.results.len(),
1158
+ );
1159
+ }
1160
+
1161
+ let cx = SubtypeCx::new(types, types);
1162
+ for (i, ((_, ty), arg)) in ft.params.iter().zip(args).enumerate() {
1163
+ // Ensure the value's type is a subtype of the parameter type
1164
+ cx.component_val_type(self.value_at(*arg, offset)?, ty, offset)
1165
+ .with_context(|| {
1166
+ format!("value type mismatch for component start function argument {i}")
1167
+ })?;
1168
+ }
1169
+
1170
+ for (_, ty) in ft.results.iter() {
1171
+ self.values.push((*ty, false));
1172
+ }
1173
+
1174
+ self.has_start = true;
1175
+
1176
+ Ok(())
1177
+ }
1178
+
1179
+ fn check_options(
1180
+ &self,
1181
+ core_ty: Option<&FuncType>,
1182
+ info: &LoweringInfo,
1183
+ options: &[CanonicalOption],
1184
+ types: &TypeList,
1185
+ offset: usize,
1186
+ ) -> Result<()> {
1187
+ fn display(option: CanonicalOption) -> &'static str {
1188
+ match option {
1189
+ CanonicalOption::UTF8 => "utf8",
1190
+ CanonicalOption::UTF16 => "utf16",
1191
+ CanonicalOption::CompactUTF16 => "latin1-utf16",
1192
+ CanonicalOption::Memory(_) => "memory",
1193
+ CanonicalOption::Realloc(_) => "realloc",
1194
+ CanonicalOption::PostReturn(_) => "post-return",
1195
+ }
1196
+ }
1197
+
1198
+ let mut encoding = None;
1199
+ let mut memory = None;
1200
+ let mut realloc = None;
1201
+ let mut post_return = None;
1202
+
1203
+ for option in options {
1204
+ match option {
1205
+ CanonicalOption::UTF8 | CanonicalOption::UTF16 | CanonicalOption::CompactUTF16 => {
1206
+ match encoding {
1207
+ Some(existing) => {
1208
+ bail!(
1209
+ offset,
1210
+ "canonical encoding option `{}` conflicts with option `{}`",
1211
+ display(existing),
1212
+ display(*option),
1213
+ )
1214
+ }
1215
+ None => encoding = Some(*option),
1216
+ }
1217
+ }
1218
+ CanonicalOption::Memory(idx) => {
1219
+ memory = match memory {
1220
+ None => {
1221
+ self.memory_at(*idx, offset)?;
1222
+ Some(*idx)
1223
+ }
1224
+ Some(_) => {
1225
+ return Err(BinaryReaderError::new(
1226
+ "canonical option `memory` is specified more than once",
1227
+ offset,
1228
+ ))
1229
+ }
1230
+ }
1231
+ }
1232
+ CanonicalOption::Realloc(idx) => {
1233
+ realloc = match realloc {
1234
+ None => {
1235
+ let ty = types[self.core_function_at(*idx, offset)?].unwrap_func();
1236
+ if ty.params()
1237
+ != [ValType::I32, ValType::I32, ValType::I32, ValType::I32]
1238
+ || ty.results() != [ValType::I32]
1239
+ {
1240
+ return Err(BinaryReaderError::new(
1241
+ "canonical option `realloc` uses a core function with an incorrect signature",
1242
+ offset,
1243
+ ));
1244
+ }
1245
+ Some(*idx)
1246
+ }
1247
+ Some(_) => {
1248
+ return Err(BinaryReaderError::new(
1249
+ "canonical option `realloc` is specified more than once",
1250
+ offset,
1251
+ ))
1252
+ }
1253
+ }
1254
+ }
1255
+ CanonicalOption::PostReturn(idx) => {
1256
+ post_return = match post_return {
1257
+ None => {
1258
+ let core_ty = core_ty.ok_or_else(|| {
1259
+ BinaryReaderError::new(
1260
+ "canonical option `post-return` cannot be specified for lowerings",
1261
+ offset,
1262
+ )
1263
+ })?;
1264
+
1265
+ let ty = types[self.core_function_at(*idx, offset)?].unwrap_func();
1266
+
1267
+ if ty.params() != core_ty.results() || !ty.results().is_empty() {
1268
+ return Err(BinaryReaderError::new(
1269
+ "canonical option `post-return` uses a core function with an incorrect signature",
1270
+ offset,
1271
+ ));
1272
+ }
1273
+ Some(*idx)
1274
+ }
1275
+ Some(_) => {
1276
+ return Err(BinaryReaderError::new(
1277
+ "canonical option `post-return` is specified more than once",
1278
+ offset,
1279
+ ))
1280
+ }
1281
+ }
1282
+ }
1283
+ }
1284
+ }
1285
+
1286
+ if info.requires_memory && memory.is_none() {
1287
+ return Err(BinaryReaderError::new(
1288
+ "canonical option `memory` is required",
1289
+ offset,
1290
+ ));
1291
+ }
1292
+
1293
+ if info.requires_realloc && realloc.is_none() {
1294
+ return Err(BinaryReaderError::new(
1295
+ "canonical option `realloc` is required",
1296
+ offset,
1297
+ ));
1298
+ }
1299
+
1300
+ Ok(())
1301
+ }
1302
+
1303
+ fn check_type_ref(
1304
+ &mut self,
1305
+ ty: &ComponentTypeRef,
1306
+ features: &WasmFeatures,
1307
+ types: &mut TypeAlloc,
1308
+ offset: usize,
1309
+ ) -> Result<ComponentEntityType> {
1310
+ Ok(match ty {
1311
+ ComponentTypeRef::Module(index) => {
1312
+ let id = self.type_at(*index, true, offset)?;
1313
+ match &types[id] {
1314
+ Type::Module(_) => {}
1315
+ _ => bail!(offset, "core type index {index} is not a module type"),
1316
+ }
1317
+ ComponentEntityType::Module(id)
1318
+ }
1319
+ ComponentTypeRef::Func(index) => {
1320
+ let id = self.type_at(*index, false, offset)?;
1321
+ match &types[id] {
1322
+ Type::ComponentFunc(_) => {}
1323
+ _ => bail!(offset, "type index {index} is not a function type"),
1324
+ }
1325
+ ComponentEntityType::Func(id)
1326
+ }
1327
+ ComponentTypeRef::Value(ty) => {
1328
+ self.check_value_support(features, offset)?;
1329
+ let ty = match ty {
1330
+ crate::ComponentValType::Primitive(ty) => ComponentValType::Primitive(*ty),
1331
+ crate::ComponentValType::Type(index) => {
1332
+ ComponentValType::Type(self.defined_type_at(*index, types, offset)?)
1333
+ }
1334
+ };
1335
+ ComponentEntityType::Value(ty)
1336
+ }
1337
+ ComponentTypeRef::Type(TypeBounds::Eq(index)) => {
1338
+ let referenced = self.type_at(*index, false, offset)?;
1339
+ let created = types.with_unique(referenced);
1340
+ ComponentEntityType::Type {
1341
+ referenced,
1342
+ created,
1343
+ }
1344
+ }
1345
+ ComponentTypeRef::Type(TypeBounds::SubResource) => {
1346
+ let id = types.alloc_resource_id();
1347
+ let id = types.push_ty(Type::Resource(id));
1348
+ ComponentEntityType::Type {
1349
+ referenced: id,
1350
+ created: id,
1351
+ }
1352
+ }
1353
+ ComponentTypeRef::Instance(index) => {
1354
+ let id = self.type_at(*index, false, offset)?;
1355
+ match &types[id] {
1356
+ Type::ComponentInstance(_) => {}
1357
+ _ => bail!(offset, "type index {index} is not an instance type"),
1358
+ }
1359
+ ComponentEntityType::Instance(id)
1360
+ }
1361
+ ComponentTypeRef::Component(index) => {
1362
+ let id = self.type_at(*index, false, offset)?;
1363
+ match &types[id] {
1364
+ Type::Component(_) => {}
1365
+ _ => bail!(offset, "type index {index} is not a component type"),
1366
+ }
1367
+ ComponentEntityType::Component(id)
1368
+ }
1369
+ })
1370
+ }
1371
+
1372
+ pub fn export_to_entity_type(
1373
+ &mut self,
1374
+ export: &crate::ComponentExport,
1375
+ features: &WasmFeatures,
1376
+ types: &mut TypeAlloc,
1377
+ offset: usize,
1378
+ ) -> Result<ComponentEntityType> {
1379
+ let actual = match export.kind {
1380
+ ComponentExternalKind::Module => {
1381
+ ComponentEntityType::Module(self.module_at(export.index, offset)?)
1382
+ }
1383
+ ComponentExternalKind::Func => {
1384
+ ComponentEntityType::Func(self.function_at(export.index, offset)?)
1385
+ }
1386
+ ComponentExternalKind::Value => {
1387
+ self.check_value_support(features, offset)?;
1388
+ ComponentEntityType::Value(*self.value_at(export.index, offset)?)
1389
+ }
1390
+ ComponentExternalKind::Type => {
1391
+ let referenced = self.type_at(export.index, false, offset)?;
1392
+ let created = types.with_unique(referenced);
1393
+ ComponentEntityType::Type {
1394
+ referenced,
1395
+ created,
1396
+ }
1397
+ }
1398
+ ComponentExternalKind::Instance => {
1399
+ ComponentEntityType::Instance(self.instance_at(export.index, offset)?)
1400
+ }
1401
+ ComponentExternalKind::Component => {
1402
+ ComponentEntityType::Component(self.component_at(export.index, offset)?)
1403
+ }
1404
+ };
1405
+
1406
+ let ascribed = match &export.ty {
1407
+ Some(ty) => self.check_type_ref(ty, features, types, offset)?,
1408
+ None => return Ok(actual),
1409
+ };
1410
+
1411
+ SubtypeCx::new(types, types)
1412
+ .component_entity_type(&actual, &ascribed, offset)
1413
+ .with_context(|| "ascribed type of export is not compatible with item's type")?;
1414
+
1415
+ Ok(ascribed)
1416
+ }
1417
+
1418
+ fn create_module_type(
1419
+ components: &[Self],
1420
+ decls: Vec<crate::ModuleTypeDeclaration>,
1421
+ features: &WasmFeatures,
1422
+ types: &mut TypeAlloc,
1423
+ offset: usize,
1424
+ ) -> Result<ModuleType> {
1425
+ let mut state = Module::default();
1426
+
1427
+ for decl in decls {
1428
+ match decl {
1429
+ crate::ModuleTypeDeclaration::Type(ty) => {
1430
+ state.add_type(ty, features, types, offset, true)?;
1431
+ }
1432
+ crate::ModuleTypeDeclaration::Export { name, ty } => {
1433
+ let ty = state.check_type_ref(&ty, features, types, offset)?;
1434
+ state.add_export(name, ty, features, offset, true)?;
1435
+ }
1436
+ crate::ModuleTypeDeclaration::OuterAlias { kind, count, index } => {
1437
+ if count > 1 {
1438
+ return Err(BinaryReaderError::new(
1439
+ "outer type aliases in module type declarations are limited to a maximum count of 1",
1440
+ offset,
1441
+ ));
1442
+ }
1443
+ match kind {
1444
+ crate::OuterAliasKind::Type => {
1445
+ let ty = if count == 0 {
1446
+ // Local alias, check the local module state
1447
+ state.type_id_at(index, offset)?
1448
+ } else {
1449
+ // Otherwise, check the enclosing component state
1450
+ let component =
1451
+ Self::check_alias_count(components, count - 1, offset)?;
1452
+ component.type_at(index, true, offset)?
1453
+ };
1454
+
1455
+ check_max(state.types.len(), 1, MAX_WASM_TYPES, "types", offset)?;
1456
+
1457
+ state.types.push(ty);
1458
+ }
1459
+ }
1460
+ }
1461
+ crate::ModuleTypeDeclaration::Import(import) => {
1462
+ state.add_import(import, features, types, offset)?;
1463
+ }
1464
+ }
1465
+ }
1466
+
1467
+ let imports = state.imports_for_module_type(offset)?;
1468
+
1469
+ Ok(ModuleType {
1470
+ info: TypeInfo::core(state.type_size),
1471
+ imports,
1472
+ exports: state.exports,
1473
+ })
1474
+ }
1475
+
1476
+ fn create_component_type(
1477
+ components: &mut Vec<Self>,
1478
+ decls: Vec<crate::ComponentTypeDeclaration>,
1479
+ features: &WasmFeatures,
1480
+ types: &mut TypeAlloc,
1481
+ offset: usize,
1482
+ ) -> Result<ComponentType> {
1483
+ components.push(ComponentState::new(ComponentKind::ComponentType));
1484
+
1485
+ for decl in decls {
1486
+ match decl {
1487
+ crate::ComponentTypeDeclaration::CoreType(ty) => {
1488
+ Self::add_core_type(components, ty, features, types, offset, true)?;
1489
+ }
1490
+ crate::ComponentTypeDeclaration::Type(ty) => {
1491
+ Self::add_type(components, ty, features, types, offset, true)?;
1492
+ }
1493
+ crate::ComponentTypeDeclaration::Export { name, ty } => {
1494
+ let current = components.last_mut().unwrap();
1495
+ let ty = current.check_type_ref(&ty, features, types, offset)?;
1496
+ current.add_export(name, ty, features, types, offset, true)?;
1497
+ }
1498
+ crate::ComponentTypeDeclaration::Import(import) => {
1499
+ components
1500
+ .last_mut()
1501
+ .unwrap()
1502
+ .add_import(import, features, types, offset)?;
1503
+ }
1504
+ crate::ComponentTypeDeclaration::Alias(alias) => {
1505
+ Self::add_alias(components, alias, features, types, offset)?;
1506
+ }
1507
+ };
1508
+ }
1509
+
1510
+ components.pop().unwrap().finish(types, offset)
1511
+ }
1512
+
1513
+ fn create_instance_type(
1514
+ components: &mut Vec<Self>,
1515
+ decls: Vec<crate::InstanceTypeDeclaration>,
1516
+ features: &WasmFeatures,
1517
+ types: &mut TypeAlloc,
1518
+ offset: usize,
1519
+ ) -> Result<ComponentInstanceType> {
1520
+ components.push(ComponentState::new(ComponentKind::InstanceType));
1521
+
1522
+ for decl in decls {
1523
+ match decl {
1524
+ crate::InstanceTypeDeclaration::CoreType(ty) => {
1525
+ Self::add_core_type(components, ty, features, types, offset, true)?;
1526
+ }
1527
+ crate::InstanceTypeDeclaration::Type(ty) => {
1528
+ Self::add_type(components, ty, features, types, offset, true)?;
1529
+ }
1530
+ crate::InstanceTypeDeclaration::Export { name, ty } => {
1531
+ let current = components.last_mut().unwrap();
1532
+ let ty = current.check_type_ref(&ty, features, types, offset)?;
1533
+ current.add_export(name, ty, features, types, offset, true)?;
1534
+ }
1535
+ crate::InstanceTypeDeclaration::Alias(alias) => {
1536
+ Self::add_alias(components, alias, features, types, offset)?;
1537
+ }
1538
+ };
1539
+ }
1540
+
1541
+ let mut state = components.pop().unwrap();
1542
+
1543
+ assert!(state.imported_resources.is_empty());
1544
+
1545
+ Ok(ComponentInstanceType {
1546
+ info: state.type_info,
1547
+
1548
+ // The defined resources for this instance type are those listed on
1549
+ // the component state. The path to each defined resource is
1550
+ // guaranteed to live within the `explicit_resources` map since,
1551
+ // when in the type context, the introduction of any defined
1552
+ // resource must have been done with `(export "x" (type (sub
1553
+ // resource)))` which, in a sense, "fuses" the introduction of the
1554
+ // variable with the export. This means that all defined resources,
1555
+ // if any, should be guaranteed to have an `explicit_resources` path
1556
+ // listed.
1557
+ defined_resources: mem::take(&mut state.defined_resources)
1558
+ .into_iter()
1559
+ .map(|(id, rep)| {
1560
+ assert!(rep.is_none());
1561
+ id
1562
+ })
1563
+ .collect(),
1564
+
1565
+ // The map of what resources are explicitly exported and where
1566
+ // they're exported is plumbed through as-is.
1567
+ explicit_resources: mem::take(&mut state.explicit_resources),
1568
+
1569
+ exports: mem::take(&mut state.exports),
1570
+ })
1571
+ }
1572
+
1573
+ fn create_function_type(
1574
+ &self,
1575
+ ty: crate::ComponentFuncType,
1576
+ types: &TypeList,
1577
+ offset: usize,
1578
+ ) -> Result<ComponentFuncType> {
1579
+ let mut info = TypeInfo::new();
1580
+
1581
+ let mut set =
1582
+ HashSet::with_capacity(std::cmp::max(ty.params.len(), ty.results.type_count()));
1583
+
1584
+ let params = ty
1585
+ .params
1586
+ .iter()
1587
+ .map(|(name, ty)| {
1588
+ let name = to_kebab_str(name, "function parameter", offset)?;
1589
+ if !set.insert(name) {
1590
+ bail!(
1591
+ offset,
1592
+ "function parameter name `{name}` conflicts with previous parameter name `{prev}`",
1593
+ prev = set.get(&name).unwrap(),
1594
+ );
1595
+ }
1596
+
1597
+ let ty = self.create_component_val_type(*ty, types, offset)?;
1598
+ info.combine(ty.info(),offset)?;
1599
+ Ok((name.to_owned(), ty))
1600
+ })
1601
+ .collect::<Result<_>>()?;
1602
+
1603
+ set.clear();
1604
+
1605
+ let results = ty
1606
+ .results
1607
+ .iter()
1608
+ .map(|(name, ty)| {
1609
+ let name = name
1610
+ .map(|name| {
1611
+ let name = to_kebab_str(name, "function result", offset)?;
1612
+ if !set.insert(name) {
1613
+ bail!(
1614
+ offset,
1615
+ "function result name `{name}` conflicts with previous result name `{prev}`",
1616
+ prev = set.get(name).unwrap(),
1617
+ );
1618
+ }
1619
+
1620
+ Ok(name.to_owned())
1621
+ })
1622
+ .transpose()?;
1623
+
1624
+ let ty = self.create_component_val_type(*ty, types, offset)?;
1625
+ let ty_info = ty.info();
1626
+ if ty_info.contains_borrow() {
1627
+ bail!(offset, "function result cannot contain a `borrow` type");
1628
+ }
1629
+ info.combine(ty.info(), offset)?;
1630
+ Ok((name, ty))
1631
+ })
1632
+ .collect::<Result<_>>()?;
1633
+
1634
+ Ok(ComponentFuncType {
1635
+ info,
1636
+ params,
1637
+ results,
1638
+ })
1639
+ }
1640
+
1641
+ fn instantiate_module(
1642
+ &self,
1643
+ module_index: u32,
1644
+ module_args: Vec<crate::InstantiationArg>,
1645
+ types: &mut TypeAlloc,
1646
+ offset: usize,
1647
+ ) -> Result<TypeId> {
1648
+ fn insert_arg<'a>(
1649
+ name: &'a str,
1650
+ arg: &'a InstanceType,
1651
+ args: &mut IndexMap<&'a str, &'a InstanceType>,
1652
+ offset: usize,
1653
+ ) -> Result<()> {
1654
+ if args.insert(name, arg).is_some() {
1655
+ bail!(
1656
+ offset,
1657
+ "duplicate module instantiation argument named `{name}`"
1658
+ );
1659
+ }
1660
+
1661
+ Ok(())
1662
+ }
1663
+
1664
+ let module_type_id = self.module_at(module_index, offset)?;
1665
+ let mut args = IndexMap::new();
1666
+
1667
+ // Populate the arguments
1668
+ for module_arg in module_args {
1669
+ match module_arg.kind {
1670
+ InstantiationArgKind::Instance => {
1671
+ let instance_type =
1672
+ types[self.core_instance_at(module_arg.index, offset)?].unwrap_instance();
1673
+ insert_arg(module_arg.name, instance_type, &mut args, offset)?;
1674
+ }
1675
+ }
1676
+ }
1677
+
1678
+ // Validate the arguments
1679
+ let module_type = types[module_type_id].unwrap_module();
1680
+ let cx = SubtypeCx::new(types, types);
1681
+ for ((module, name), expected) in module_type.imports.iter() {
1682
+ let instance = args.get(module.as_str()).ok_or_else(|| {
1683
+ format_err!(
1684
+ offset,
1685
+ "missing module instantiation argument named `{module}`"
1686
+ )
1687
+ })?;
1688
+
1689
+ let arg = instance
1690
+ .internal_exports(types)
1691
+ .get(name.as_str())
1692
+ .ok_or_else(|| {
1693
+ format_err!(
1694
+ offset,
1695
+ "module instantiation argument `{module}` does not \
1696
+ export an item named `{name}`",
1697
+ )
1698
+ })?;
1699
+
1700
+ cx.entity_type(arg, expected, offset).with_context(|| {
1701
+ format!(
1702
+ "type mismatch for export `{name}` of module \
1703
+ instantiation argument `{module}`"
1704
+ )
1705
+ })?;
1706
+ }
1707
+
1708
+ let mut info = TypeInfo::new();
1709
+ for (_, ty) in module_type.exports.iter() {
1710
+ info.combine(ty.info(), offset)?;
1711
+ }
1712
+
1713
+ let ty = Type::Instance(Box::new(InstanceType {
1714
+ info,
1715
+ kind: InstanceTypeKind::Instantiated(module_type_id),
1716
+ }));
1717
+
1718
+ Ok(types.push_ty(ty))
1719
+ }
1720
+
1721
+ fn instantiate_component(
1722
+ &mut self,
1723
+ component_index: u32,
1724
+ component_args: Vec<crate::ComponentInstantiationArg>,
1725
+ features: &WasmFeatures,
1726
+ types: &mut TypeAlloc,
1727
+ offset: usize,
1728
+ ) -> Result<TypeId> {
1729
+ let component_type_id = self.component_at(component_index, offset)?;
1730
+ let mut args = IndexMap::new();
1731
+
1732
+ // Populate the arguments
1733
+ for component_arg in component_args {
1734
+ let ty = match component_arg.kind {
1735
+ ComponentExternalKind::Module => {
1736
+ ComponentEntityType::Module(self.module_at(component_arg.index, offset)?)
1737
+ }
1738
+ ComponentExternalKind::Component => {
1739
+ ComponentEntityType::Component(self.component_at(component_arg.index, offset)?)
1740
+ }
1741
+ ComponentExternalKind::Instance => {
1742
+ ComponentEntityType::Instance(self.instance_at(component_arg.index, offset)?)
1743
+ }
1744
+ ComponentExternalKind::Func => {
1745
+ ComponentEntityType::Func(self.function_at(component_arg.index, offset)?)
1746
+ }
1747
+ ComponentExternalKind::Value => {
1748
+ self.check_value_support(features, offset)?;
1749
+ ComponentEntityType::Value(*self.value_at(component_arg.index, offset)?)
1750
+ }
1751
+ ComponentExternalKind::Type => {
1752
+ let ty = self.type_at(component_arg.index, false, offset)?;
1753
+ ComponentEntityType::Type {
1754
+ referenced: ty,
1755
+ created: ty,
1756
+ }
1757
+ }
1758
+ };
1759
+ match args.entry(component_arg.name.to_string()) {
1760
+ Entry::Occupied(e) => {
1761
+ bail!(
1762
+ offset,
1763
+ "instantiation argument `{name}` conflicts with previous argument `{prev}`",
1764
+ prev = e.key(),
1765
+ name = component_arg.name
1766
+ );
1767
+ }
1768
+ Entry::Vacant(e) => {
1769
+ e.insert(ty);
1770
+ }
1771
+ }
1772
+ }
1773
+
1774
+ // Here comes the fun part of the component model, we're instantiating
1775
+ // the component with type `component_type_id` with the `args`
1776
+ // specified. Easy enough!
1777
+ //
1778
+ // This operation, however, is one of the lynchpins of safety in the
1779
+ // component model. Additionally what this ends up implementing ranges
1780
+ // from "well just check the types are equal" to "let's have a
1781
+ // full-blown ML-style module type system in the component model". There
1782
+ // are primarily two major tricky pieces to the component model which
1783
+ // make this operation, instantiating components, hard:
1784
+ //
1785
+ // 1. Components can import and exports other components. This means
1786
+ // that arguments to instantiation are along the lines of functions
1787
+ // being passed to functions or similar. Effectively this means that
1788
+ // the term "variance" comes into play with either contravariance
1789
+ // or covariance depending on where you are in typechecking. This is
1790
+ // one of the main rationales, however, that this check below is a
1791
+ // check for subtyping as opposed to exact type equivalence. For
1792
+ // example an instance that exports something is a subtype of an
1793
+ // instance that exports nothing. Components get a bit trick since
1794
+ // they both have imports and exports. My way of thinking about it
1795
+ // is "who's asking for what". If you're asking for imports then
1796
+ // I need to at least supply those imports, but I can possibly
1797
+ // supply more. If you're asking for a thing which you'll give a set
1798
+ // of imports, then I can give you something which takes less imports
1799
+ // because what you give still suffices. (things like that). The
1800
+ // real complication with components, however, comes with...
1801
+ //
1802
+ // 2. Resources. Resources in the component model are akin to "abstract
1803
+ // types". They're not abstract in the sense that they have no
1804
+ // representation, they're always backed by a 32-bit integer right
1805
+ // now. Instead they're abstract in the sense that some components
1806
+ // aren't allowed to understand the representation of a resource.
1807
+ // For example if you import a resource you can't get the underlying
1808
+ // internals of it. Furthermore the resource is strictly tracked
1809
+ // within the component with `own` and `borrow` runtime semantics.
1810
+ // The hardest part about resources, though, is handling them as
1811
+ // part of instantiation and subtyping.
1812
+ //
1813
+ // For example one major aspect of resources is that if a component
1814
+ // exports a resource then each instantiation of the component
1815
+ // produces a fresh resource type. This means that the type recorded
1816
+ // for the instantiation here can't simply be "I instantiated
1817
+ // component X" since in such a situation the type of all
1818
+ // instantiations would be the same, which they aren't.
1819
+ //
1820
+ // This sort of subtelty comes up quite frequently for resources.
1821
+ // This file contains references to `imported_resources` and
1822
+ // `defined_resources` for example which refer to the formal
1823
+ // nature of components and their abstract variables. Specifically
1824
+ // for instantiation though we're eventually faced with the problem
1825
+ // of subtype checks where resource subtyping is defined as "does
1826
+ // your id equal mine". Naively implemented that means anything with
1827
+ // resources isn't subtypes of anything else since resource ids are
1828
+ // unique between components. Instead what actually needs to happen
1829
+ // is types need to be substituted.
1830
+ //
1831
+ // Much of the complexity here is not actually apparent here in this
1832
+ // literal one function. Instead it's spread out across validation
1833
+ // in this file and type-checking in the `types.rs` module. Note that
1834
+ // the "spread out" nature isn't because we're bad maintainers
1835
+ // (hopefully), but rather it's quite infectious how many parts need
1836
+ // to handle resources and account for defined/imported variables.
1837
+ //
1838
+ // For example only one subtyping method is called here where `args` is
1839
+ // passed in. This method is quite recursive in its nature though and
1840
+ // will internally touch all the fields that this file maintains to
1841
+ // end up putting into various bits and pieces of type information.
1842
+ //
1843
+ // Unfortunately there's probably not really a succinct way to read
1844
+ // this method and understand everything. If you've written ML module
1845
+ // type systems this will probably look quite familiar, but otherwise
1846
+ // the whole system is not really easily approachable at this time. It's
1847
+ // hoped in the future that there's a formalism to refer to which will
1848
+ // make things more clear as the code would be able to reference this
1849
+ // hypothetical formalism. Until that's the case, though, these
1850
+ // comments are hopefully enough when augmented with communication with
1851
+ // the authors.
1852
+
1853
+ let component_type = types[component_type_id].unwrap_component();
1854
+ let mut exports = component_type.exports.clone();
1855
+ let mut info = TypeInfo::new();
1856
+ for (_, ty) in component_type.exports.iter() {
1857
+ info.combine(ty.info(), offset)?;
1858
+ }
1859
+
1860
+ // Perform the subtype check that `args` matches the imports of
1861
+ // `component_type_id`. The result of this subtype check is the
1862
+ // production of a mapping of resource types from the imports to the
1863
+ // arguments provided. This is a substitution map which is then used
1864
+ // below to perform a substitution into the exports of the instance
1865
+ // since the types of the exports are now in terms of whatever was
1866
+ // supplied as imports.
1867
+ let mut mapping = SubtypeCx::new(types, types).open_instance_type(
1868
+ &args,
1869
+ component_type_id,
1870
+ ExternKind::Import,
1871
+ offset,
1872
+ )?;
1873
+
1874
+ // Part of the instantiation of a component is that all of its
1875
+ // defined resources become "fresh" on each instantiation. This
1876
+ // means that each instantiation of a component gets brand new type
1877
+ // variables representing its defined resources, modeling that each
1878
+ // instantiation produces distinct types. The freshening is performed
1879
+ // here by allocating new ids and inserting them into `mapping`.
1880
+ //
1881
+ // Note that technically the `mapping` from subtyping should be applied
1882
+ // first and then the mapping for freshening should be applied
1883
+ // afterwards. The keys of the map from subtyping are the imported
1884
+ // resources from this component which are disjoint from its defined
1885
+ // resources. That means it should be possible to place everything
1886
+ // into one large map which maps from:
1887
+ //
1888
+ // * the component's imported resources go to whatever was explicitly
1889
+ // supplied in the import map
1890
+ // * the component's defined resources go to fresh new resources
1891
+ //
1892
+ // These two remapping operations can then get folded into one by
1893
+ // placing everything in the same `mapping` and using that for a remap
1894
+ // only once.
1895
+ let fresh_defined_resources = (0..component_type.defined_resources.len())
1896
+ .map(|_| types.alloc_resource_id())
1897
+ .collect::<IndexSet<_>>();
1898
+ let component_type = types[component_type_id].unwrap_component();
1899
+ for ((old, _path), new) in component_type
1900
+ .defined_resources
1901
+ .iter()
1902
+ .zip(&fresh_defined_resources)
1903
+ {
1904
+ let prev = mapping.resources.insert(*old, *new);
1905
+ assert!(prev.is_none());
1906
+ }
1907
+
1908
+ // Perform the remapping operation over all the exports that will be
1909
+ // listed for the final instance type. Note that this is performed
1910
+ // both for all the export types in addition to the explicitly exported
1911
+ // resources list.
1912
+ //
1913
+ // Note that this is a crucial step of the instantiation process which
1914
+ // is intentionally transforming the type of a component based on the
1915
+ // variables provided by imports and additionally ensuring that all
1916
+ // references to the component's defined resources are rebound to the
1917
+ // fresh ones introduced just above.
1918
+ for entity in exports.values_mut() {
1919
+ types.remap_component_entity(entity, &mut mapping);
1920
+ }
1921
+ let component_type = types[component_type_id].unwrap_component();
1922
+ let explicit_resources = component_type
1923
+ .explicit_resources
1924
+ .iter()
1925
+ .map(|(id, path)| {
1926
+ (
1927
+ mapping.resources.get(id).copied().unwrap_or(*id),
1928
+ path.clone(),
1929
+ )
1930
+ })
1931
+ .collect::<IndexMap<_, _>>();
1932
+
1933
+ // Technically in the last formalism that was consulted in writing this
1934
+ // implementation there are two further steps that are part of the
1935
+ // instantiation process:
1936
+ //
1937
+ // 1. The set of defined resources from the instance created, which are
1938
+ // added to the outer component, is the subset of the instance's
1939
+ // original defined resources and the free variables of the exports.
1940
+ //
1941
+ // 2. Each element of this subset is required to be "explicit in" the
1942
+ // instance, or otherwise explicitly exported somewhere within the
1943
+ // instance.
1944
+ //
1945
+ // With the syntactic structure of the component model, however, neither
1946
+ // of these conditions should be necessary. The main reason for this is
1947
+ // that this function is specifically dealing with instantiation of
1948
+ // components which should already have these properties validated
1949
+ // about them. Subsequently we shouldn't have to re-check them.
1950
+ //
1951
+ // In debug mode, however, do a sanity check.
1952
+ if cfg!(debug_assertions) {
1953
+ let mut free = IndexSet::new();
1954
+ for ty in exports.values() {
1955
+ types.free_variables_component_entity(ty, &mut free);
1956
+ }
1957
+ assert!(fresh_defined_resources.is_subset(&free));
1958
+ for resource in fresh_defined_resources.iter() {
1959
+ assert!(explicit_resources.contains_key(resource));
1960
+ }
1961
+ }
1962
+
1963
+ // And as the final step of the instantiation process all of the
1964
+ // new defined resources from this component instantiation are moved
1965
+ // onto `self`. Note that concrete instances never have defined
1966
+ // resources (see more comments in `instantiate_exports`) so the
1967
+ // `defined_resources` listing in the final type is always empty. This
1968
+ // represents how by having a concrete instance the definitions
1969
+ // referred to in that instance are now problems for the outer
1970
+ // component rather than the inner instance since the instance is bound
1971
+ // to the component.
1972
+ //
1973
+ // All defined resources here have no known representation, so they're
1974
+ // all listed with `None`. Also note that none of the resources were
1975
+ // exported yet so `self.explicit_resources` is not updated yet. If
1976
+ // this instance is exported, however, it'll consult the type's
1977
+ // `explicit_resources` array and use that appropriately.
1978
+ for resource in fresh_defined_resources {
1979
+ self.defined_resources.insert(resource, None);
1980
+ }
1981
+
1982
+ let ty = Type::ComponentInstance(Box::new(ComponentInstanceType {
1983
+ info,
1984
+ defined_resources: Default::default(),
1985
+ explicit_resources,
1986
+ exports,
1987
+ }));
1988
+ Ok(types.push_ty(ty))
1989
+ }
1990
+
1991
+ fn instantiate_exports(
1992
+ &mut self,
1993
+ exports: Vec<crate::ComponentExport>,
1994
+ features: &WasmFeatures,
1995
+ types: &mut TypeAlloc,
1996
+ offset: usize,
1997
+ ) -> Result<TypeId> {
1998
+ let mut info = TypeInfo::new();
1999
+ let mut inst_exports = IndexMap::new();
2000
+ let mut explicit_resources = IndexMap::new();
2001
+ let mut kebab_names = IndexSet::new();
2002
+
2003
+ // NB: It's intentional that this context is empty since no indices are
2004
+ // introduced in the bag-of-exports construct which means there's no
2005
+ // way syntactically to register something inside of this.
2006
+ let names = KebabNameContext::default();
2007
+
2008
+ for export in exports {
2009
+ assert!(export.ty.is_none());
2010
+ let ty = match export.kind {
2011
+ ComponentExternalKind::Module => {
2012
+ ComponentEntityType::Module(self.module_at(export.index, offset)?)
2013
+ }
2014
+ ComponentExternalKind::Component => {
2015
+ ComponentEntityType::Component(self.component_at(export.index, offset)?)
2016
+ }
2017
+ ComponentExternalKind::Instance => {
2018
+ let ty = self.instance_at(export.index, offset)?;
2019
+
2020
+ // When an instance is exported from an instance then
2021
+ // all explicitly exported resources on the sub-instance are
2022
+ // now also listed as exported resources on the outer
2023
+ // instance, just with one more element in their path.
2024
+ explicit_resources.extend(
2025
+ types[ty]
2026
+ .unwrap_component_instance()
2027
+ .explicit_resources
2028
+ .iter()
2029
+ .map(|(id, path)| {
2030
+ let mut new_path = vec![inst_exports.len()];
2031
+ new_path.extend(path);
2032
+ (*id, new_path)
2033
+ }),
2034
+ );
2035
+ ComponentEntityType::Instance(ty)
2036
+ }
2037
+ ComponentExternalKind::Func => {
2038
+ ComponentEntityType::Func(self.function_at(export.index, offset)?)
2039
+ }
2040
+ ComponentExternalKind::Value => {
2041
+ self.check_value_support(features, offset)?;
2042
+ ComponentEntityType::Value(*self.value_at(export.index, offset)?)
2043
+ }
2044
+ ComponentExternalKind::Type => {
2045
+ let ty = self.type_at(export.index, false, offset)?;
2046
+ // If this is an export of a resource type be sure to
2047
+ // record that in the explicit list with the appropriate
2048
+ // path because if this instance ends up getting used
2049
+ // it'll count towards the "explicit in" check.
2050
+ if let Type::Resource(id) = &types[ty] {
2051
+ explicit_resources.insert(*id, vec![inst_exports.len()]);
2052
+ }
2053
+ ComponentEntityType::Type {
2054
+ referenced: ty,
2055
+ // The created type index here isn't used anywhere
2056
+ // in index spaces because a "bag of exports"
2057
+ // doesn't build up its own index spaces. Just fill
2058
+ // in the same index here in this case as what's
2059
+ // referenced.
2060
+ created: ty,
2061
+ }
2062
+ }
2063
+ };
2064
+
2065
+ names.validate_extern(
2066
+ export.name.into(),
2067
+ "instance export",
2068
+ &ty,
2069
+ types,
2070
+ offset,
2071
+ &mut kebab_names,
2072
+ &mut inst_exports,
2073
+ &mut info,
2074
+ )?;
2075
+ }
2076
+
2077
+ let ty = Type::ComponentInstance(Box::new(ComponentInstanceType {
2078
+ info,
2079
+ explicit_resources,
2080
+ exports: inst_exports,
2081
+
2082
+ // NB: the list of defined resources for this instance itself
2083
+ // is always empty. Even if this instance exports resources,
2084
+ // it's empty.
2085
+ //
2086
+ // The reason for this is a bit subtle. The general idea, though, is
2087
+ // that the defined resources list here is only used for instance
2088
+ // types that are sort of "floating around" and haven't actually
2089
+ // been attached to something yet. For example when an instance type
2090
+ // is simply declared it can have defined resources introduced
2091
+ // through `(export "name" (type (sub resource)))`. These
2092
+ // definitions, however, are local to the instance itself and aren't
2093
+ // defined elsewhere.
2094
+ //
2095
+ // Here, though, no new definitions were introduced. The instance
2096
+ // created here is a "bag of exports" which could only refer to
2097
+ // preexisting items. This means that inherently no new resources
2098
+ // were created so there's nothing to put in this list. Any
2099
+ // resources referenced by the instance must be bound by the outer
2100
+ // component context or further above.
2101
+ //
2102
+ // Furthermore, however, actual instances of instances, which this
2103
+ // is, aren't allowed to have defined resources. Instead the
2104
+ // resources would have to be injected into the outer component
2105
+ // enclosing the instance. That means that even if bag-of-exports
2106
+ // could declare a new resource then the resource would be moved
2107
+ // from here to `self.defined_resources`. This doesn't exist at this
2108
+ // time, though, so this still remains empty and
2109
+ // `self.defined_resources` remains unperturbed.
2110
+ defined_resources: Default::default(),
2111
+ }));
2112
+
2113
+ Ok(types.push_ty(ty))
2114
+ }
2115
+
2116
+ fn instantiate_core_exports(
2117
+ &mut self,
2118
+ exports: Vec<crate::Export>,
2119
+ types: &mut TypeAlloc,
2120
+ offset: usize,
2121
+ ) -> Result<TypeId> {
2122
+ fn insert_export(
2123
+ name: &str,
2124
+ export: EntityType,
2125
+ exports: &mut IndexMap<String, EntityType>,
2126
+ info: &mut TypeInfo,
2127
+ offset: usize,
2128
+ ) -> Result<()> {
2129
+ info.combine(export.info(), offset)?;
2130
+
2131
+ if exports.insert(name.to_string(), export).is_some() {
2132
+ bail!(
2133
+ offset,
2134
+ "duplicate instantiation export name `{name}` already defined",
2135
+ )
2136
+ }
2137
+
2138
+ Ok(())
2139
+ }
2140
+
2141
+ let mut info = TypeInfo::new();
2142
+ let mut inst_exports = IndexMap::new();
2143
+ for export in exports {
2144
+ match export.kind {
2145
+ ExternalKind::Func => {
2146
+ insert_export(
2147
+ export.name,
2148
+ EntityType::Func(self.core_function_at(export.index, offset)?),
2149
+ &mut inst_exports,
2150
+ &mut info,
2151
+ offset,
2152
+ )?;
2153
+ }
2154
+ ExternalKind::Table => insert_export(
2155
+ export.name,
2156
+ EntityType::Table(*self.table_at(export.index, offset)?),
2157
+ &mut inst_exports,
2158
+ &mut info,
2159
+ offset,
2160
+ )?,
2161
+ ExternalKind::Memory => insert_export(
2162
+ export.name,
2163
+ EntityType::Memory(*self.memory_at(export.index, offset)?),
2164
+ &mut inst_exports,
2165
+ &mut info,
2166
+ offset,
2167
+ )?,
2168
+ ExternalKind::Global => {
2169
+ insert_export(
2170
+ export.name,
2171
+ EntityType::Global(*self.global_at(export.index, offset)?),
2172
+ &mut inst_exports,
2173
+ &mut info,
2174
+ offset,
2175
+ )?;
2176
+ }
2177
+ ExternalKind::Tag => insert_export(
2178
+ export.name,
2179
+ EntityType::Tag(self.core_function_at(export.index, offset)?),
2180
+ &mut inst_exports,
2181
+ &mut info,
2182
+ offset,
2183
+ )?,
2184
+ }
2185
+ }
2186
+
2187
+ let ty = Type::Instance(Box::new(InstanceType {
2188
+ info,
2189
+ kind: InstanceTypeKind::Exports(inst_exports),
2190
+ }));
2191
+
2192
+ Ok(types.push_ty(ty))
2193
+ }
2194
+
2195
+ fn alias_core_instance_export(
2196
+ &mut self,
2197
+ instance_index: u32,
2198
+ kind: ExternalKind,
2199
+ name: &str,
2200
+ types: &TypeList,
2201
+ offset: usize,
2202
+ ) -> Result<()> {
2203
+ macro_rules! push_module_export {
2204
+ ($expected:path, $collection:ident, $ty:literal) => {{
2205
+ match self.core_instance_export(instance_index, name, types, offset)? {
2206
+ $expected(ty) => {
2207
+ self.$collection.push(*ty);
2208
+ Ok(())
2209
+ }
2210
+ _ => {
2211
+ bail!(
2212
+ offset,
2213
+ "export `{name}` for core instance {instance_index} is not a {}",
2214
+ $ty
2215
+ )
2216
+ }
2217
+ }
2218
+ }};
2219
+ }
2220
+
2221
+ match kind {
2222
+ ExternalKind::Func => {
2223
+ check_max(
2224
+ self.function_count(),
2225
+ 1,
2226
+ MAX_WASM_FUNCTIONS,
2227
+ "functions",
2228
+ offset,
2229
+ )?;
2230
+ push_module_export!(EntityType::Func, core_funcs, "function")
2231
+ }
2232
+ ExternalKind::Table => {
2233
+ check_max(self.core_tables.len(), 1, MAX_WASM_TABLES, "tables", offset)?;
2234
+ push_module_export!(EntityType::Table, core_tables, "table")
2235
+ }
2236
+ ExternalKind::Memory => {
2237
+ check_max(
2238
+ self.core_memories.len(),
2239
+ 1,
2240
+ MAX_WASM_MEMORIES,
2241
+ "memories",
2242
+ offset,
2243
+ )?;
2244
+ push_module_export!(EntityType::Memory, core_memories, "memory")
2245
+ }
2246
+ ExternalKind::Global => {
2247
+ check_max(
2248
+ self.core_globals.len(),
2249
+ 1,
2250
+ MAX_WASM_GLOBALS,
2251
+ "globals",
2252
+ offset,
2253
+ )?;
2254
+ push_module_export!(EntityType::Global, core_globals, "global")
2255
+ }
2256
+ ExternalKind::Tag => {
2257
+ check_max(self.core_tags.len(), 1, MAX_WASM_TAGS, "tags", offset)?;
2258
+ push_module_export!(EntityType::Tag, core_tags, "tag")
2259
+ }
2260
+ }
2261
+ }
2262
+
2263
+ fn alias_instance_export(
2264
+ &mut self,
2265
+ instance_index: u32,
2266
+ kind: ComponentExternalKind,
2267
+ name: &str,
2268
+ features: &WasmFeatures,
2269
+ types: &mut TypeAlloc,
2270
+ offset: usize,
2271
+ ) -> Result<()> {
2272
+ if let ComponentExternalKind::Value = kind {
2273
+ self.check_value_support(features, offset)?;
2274
+ }
2275
+ let mut ty = match types[self.instance_at(instance_index, offset)?]
2276
+ .unwrap_component_instance()
2277
+ .exports
2278
+ .get(name)
2279
+ {
2280
+ Some(ty) => *ty,
2281
+ None => bail!(
2282
+ offset,
2283
+ "instance {instance_index} has no export named `{name}`"
2284
+ ),
2285
+ };
2286
+
2287
+ let ok = match (&ty, kind) {
2288
+ (ComponentEntityType::Module(_), ComponentExternalKind::Module) => true,
2289
+ (ComponentEntityType::Module(_), _) => false,
2290
+ (ComponentEntityType::Component(_), ComponentExternalKind::Component) => true,
2291
+ (ComponentEntityType::Component(_), _) => false,
2292
+ (ComponentEntityType::Func(_), ComponentExternalKind::Func) => true,
2293
+ (ComponentEntityType::Func(_), _) => false,
2294
+ (ComponentEntityType::Instance(_), ComponentExternalKind::Instance) => true,
2295
+ (ComponentEntityType::Instance(_), _) => false,
2296
+ (ComponentEntityType::Value(_), ComponentExternalKind::Value) => true,
2297
+ (ComponentEntityType::Value(_), _) => false,
2298
+ (ComponentEntityType::Type { .. }, ComponentExternalKind::Type) => true,
2299
+ (ComponentEntityType::Type { .. }, _) => false,
2300
+ };
2301
+ if !ok {
2302
+ bail!(
2303
+ offset,
2304
+ "export `{name}` for instance {instance_index} is not a {}",
2305
+ kind.desc(),
2306
+ );
2307
+ }
2308
+
2309
+ self.add_entity(&mut ty, None, features, types, offset)?;
2310
+ Ok(())
2311
+ }
2312
+
2313
+ fn alias_module(components: &mut [Self], count: u32, index: u32, offset: usize) -> Result<()> {
2314
+ let component = Self::check_alias_count(components, count, offset)?;
2315
+ let ty = component.module_at(index, offset)?;
2316
+
2317
+ let current = components.last_mut().unwrap();
2318
+ check_max(
2319
+ current.core_modules.len(),
2320
+ 1,
2321
+ MAX_WASM_MODULES,
2322
+ "modules",
2323
+ offset,
2324
+ )?;
2325
+
2326
+ current.core_modules.push(ty);
2327
+ Ok(())
2328
+ }
2329
+
2330
+ fn alias_component(
2331
+ components: &mut [Self],
2332
+ count: u32,
2333
+ index: u32,
2334
+ offset: usize,
2335
+ ) -> Result<()> {
2336
+ let component = Self::check_alias_count(components, count, offset)?;
2337
+ let ty = component.component_at(index, offset)?;
2338
+
2339
+ let current = components.last_mut().unwrap();
2340
+ check_max(
2341
+ current.components.len(),
2342
+ 1,
2343
+ MAX_WASM_COMPONENTS,
2344
+ "components",
2345
+ offset,
2346
+ )?;
2347
+
2348
+ current.components.push(ty);
2349
+ Ok(())
2350
+ }
2351
+
2352
+ fn alias_core_type(
2353
+ components: &mut [Self],
2354
+ count: u32,
2355
+ index: u32,
2356
+ offset: usize,
2357
+ ) -> Result<()> {
2358
+ let component = Self::check_alias_count(components, count, offset)?;
2359
+ let ty = component.type_at(index, true, offset)?;
2360
+
2361
+ let current = components.last_mut().unwrap();
2362
+ check_max(current.type_count(), 1, MAX_WASM_TYPES, "types", offset)?;
2363
+
2364
+ current.core_types.push(ty);
2365
+
2366
+ Ok(())
2367
+ }
2368
+
2369
+ fn alias_type(
2370
+ components: &mut [Self],
2371
+ count: u32,
2372
+ index: u32,
2373
+ types: &mut TypeAlloc,
2374
+ offset: usize,
2375
+ ) -> Result<()> {
2376
+ let component = Self::check_alias_count(components, count, offset)?;
2377
+ let ty = component.type_at(index, false, offset)?;
2378
+
2379
+ // If `count` "crossed a component boundary", meaning that it went from
2380
+ // one component to another, then this must additionally verify that
2381
+ // `ty` has no free variables with respect to resources. This is
2382
+ // intended to preserve the property for components where each component
2383
+ // is an isolated unit that can theoretically be extracted from other
2384
+ // components. If resources from other components were allowed to leak
2385
+ // in then it would prevent that.
2386
+ //
2387
+ // This check is done by calculating the `pos` within `components` that
2388
+ // our target `component` above was selected at. Once this is acquired
2389
+ // the component to the "right" is checked, and if that's a component
2390
+ // then it's considered as crossing a component boundary meaning the
2391
+ // free variables check runs.
2392
+ //
2393
+ // The reason this works is that in the list of `ComponentState` types
2394
+ // it's guaranteed that any `is_type` components are contiguous at the
2395
+ // end of the array. This means that if state one level deeper than the
2396
+ // target of this alias is a `!is_type` component, then the target must
2397
+ // be a component as well. If the one-level deeper state `is_type` then
2398
+ // the target is either a type or a component, both of which are valid
2399
+ // (as aliases can reach the enclosing component and have as many free
2400
+ // variables as they want).
2401
+ let pos_after_component = components.len() - (count as usize);
2402
+ if let Some(component) = components.get(pos_after_component) {
2403
+ if component.kind == ComponentKind::Component {
2404
+ let mut free = IndexSet::new();
2405
+ types.free_variables_type_id(ty, &mut free);
2406
+ if !free.is_empty() {
2407
+ bail!(
2408
+ offset,
2409
+ "cannot alias outer type which transitively refers \
2410
+ to resources not defined in the current component"
2411
+ );
2412
+ }
2413
+ }
2414
+ }
2415
+
2416
+ let current = components.last_mut().unwrap();
2417
+ check_max(current.type_count(), 1, MAX_WASM_TYPES, "types", offset)?;
2418
+
2419
+ current.types.push(ty);
2420
+
2421
+ Ok(())
2422
+ }
2423
+
2424
+ fn check_alias_count(components: &[Self], count: u32, offset: usize) -> Result<&Self> {
2425
+ let count = count as usize;
2426
+ if count >= components.len() {
2427
+ bail!(offset, "invalid outer alias count of {count}");
2428
+ }
2429
+
2430
+ Ok(&components[components.len() - count - 1])
2431
+ }
2432
+
2433
+ fn create_defined_type(
2434
+ &self,
2435
+ ty: crate::ComponentDefinedType,
2436
+ types: &TypeList,
2437
+ offset: usize,
2438
+ ) -> Result<ComponentDefinedType> {
2439
+ match ty {
2440
+ crate::ComponentDefinedType::Primitive(ty) => Ok(ComponentDefinedType::Primitive(ty)),
2441
+ crate::ComponentDefinedType::Record(fields) => {
2442
+ self.create_record_type(fields.as_ref(), types, offset)
2443
+ }
2444
+ crate::ComponentDefinedType::Variant(cases) => {
2445
+ self.create_variant_type(cases.as_ref(), types, offset)
2446
+ }
2447
+ crate::ComponentDefinedType::List(ty) => Ok(ComponentDefinedType::List(
2448
+ self.create_component_val_type(ty, types, offset)?,
2449
+ )),
2450
+ crate::ComponentDefinedType::Tuple(tys) => {
2451
+ self.create_tuple_type(tys.as_ref(), types, offset)
2452
+ }
2453
+ crate::ComponentDefinedType::Flags(names) => {
2454
+ self.create_flags_type(names.as_ref(), offset)
2455
+ }
2456
+ crate::ComponentDefinedType::Enum(cases) => {
2457
+ self.create_enum_type(cases.as_ref(), offset)
2458
+ }
2459
+ crate::ComponentDefinedType::Union(tys) => {
2460
+ self.create_union_type(tys.as_ref(), types, offset)
2461
+ }
2462
+ crate::ComponentDefinedType::Option(ty) => Ok(ComponentDefinedType::Option(
2463
+ self.create_component_val_type(ty, types, offset)?,
2464
+ )),
2465
+ crate::ComponentDefinedType::Result { ok, err } => Ok(ComponentDefinedType::Result {
2466
+ ok: ok
2467
+ .map(|ty| self.create_component_val_type(ty, types, offset))
2468
+ .transpose()?,
2469
+ err: err
2470
+ .map(|ty| self.create_component_val_type(ty, types, offset))
2471
+ .transpose()?,
2472
+ }),
2473
+ crate::ComponentDefinedType::Own(idx) => Ok(ComponentDefinedType::Own(
2474
+ self.resource_at(idx, types, offset)?,
2475
+ )),
2476
+ crate::ComponentDefinedType::Borrow(idx) => Ok(ComponentDefinedType::Borrow(
2477
+ self.resource_at(idx, types, offset)?,
2478
+ )),
2479
+ }
2480
+ }
2481
+
2482
+ fn create_record_type(
2483
+ &self,
2484
+ fields: &[(&str, crate::ComponentValType)],
2485
+ types: &TypeList,
2486
+ offset: usize,
2487
+ ) -> Result<ComponentDefinedType> {
2488
+ let mut info = TypeInfo::new();
2489
+ let mut field_map = IndexMap::with_capacity(fields.len());
2490
+
2491
+ if fields.is_empty() {
2492
+ bail!(offset, "record type must have at least one field");
2493
+ }
2494
+
2495
+ for (name, ty) in fields {
2496
+ let name = to_kebab_str(name, "record field", offset)?;
2497
+ let ty = self.create_component_val_type(*ty, types, offset)?;
2498
+
2499
+ match field_map.entry(name.to_owned()) {
2500
+ Entry::Occupied(e) => bail!(
2501
+ offset,
2502
+ "record field name `{name}` conflicts with previous field name `{prev}`",
2503
+ prev = e.key()
2504
+ ),
2505
+ Entry::Vacant(e) => {
2506
+ info.combine(ty.info(), offset)?;
2507
+ e.insert(ty);
2508
+ }
2509
+ }
2510
+ }
2511
+
2512
+ Ok(ComponentDefinedType::Record(RecordType {
2513
+ info,
2514
+ fields: field_map,
2515
+ }))
2516
+ }
2517
+
2518
+ fn create_variant_type(
2519
+ &self,
2520
+ cases: &[crate::VariantCase],
2521
+ types: &TypeList,
2522
+ offset: usize,
2523
+ ) -> Result<ComponentDefinedType> {
2524
+ let mut info = TypeInfo::new();
2525
+ let mut case_map: IndexMap<KebabString, VariantCase> = IndexMap::with_capacity(cases.len());
2526
+
2527
+ if cases.is_empty() {
2528
+ bail!(offset, "variant type must have at least one case");
2529
+ }
2530
+
2531
+ if cases.len() > u32::MAX as usize {
2532
+ return Err(BinaryReaderError::new(
2533
+ "variant type cannot be represented with a 32-bit discriminant value",
2534
+ offset,
2535
+ ));
2536
+ }
2537
+
2538
+ for (i, case) in cases.iter().enumerate() {
2539
+ if let Some(refines) = case.refines {
2540
+ if refines >= i as u32 {
2541
+ return Err(BinaryReaderError::new(
2542
+ "variant case can only refine a previously defined case",
2543
+ offset,
2544
+ ));
2545
+ }
2546
+ }
2547
+
2548
+ let name = to_kebab_str(case.name, "variant case", offset)?;
2549
+
2550
+ let ty = case
2551
+ .ty
2552
+ .map(|ty| self.create_component_val_type(ty, types, offset))
2553
+ .transpose()?;
2554
+
2555
+ match case_map.entry(name.to_owned()) {
2556
+ Entry::Occupied(e) => bail!(
2557
+ offset,
2558
+ "variant case name `{name}` conflicts with previous case name `{prev}`",
2559
+ name = case.name,
2560
+ prev = e.key()
2561
+ ),
2562
+ Entry::Vacant(e) => {
2563
+ if let Some(ty) = ty {
2564
+ info.combine(ty.info(), offset)?;
2565
+ }
2566
+
2567
+ // Safety: the use of `KebabStr::new_unchecked` here is safe because the string
2568
+ // was already verified to be kebab case.
2569
+ e.insert(VariantCase {
2570
+ ty,
2571
+ refines: case
2572
+ .refines
2573
+ .map(|i| KebabStr::new_unchecked(cases[i as usize].name).to_owned()),
2574
+ });
2575
+ }
2576
+ }
2577
+ }
2578
+
2579
+ Ok(ComponentDefinedType::Variant(VariantType {
2580
+ info,
2581
+ cases: case_map,
2582
+ }))
2583
+ }
2584
+
2585
+ fn create_tuple_type(
2586
+ &self,
2587
+ tys: &[crate::ComponentValType],
2588
+ types: &TypeList,
2589
+ offset: usize,
2590
+ ) -> Result<ComponentDefinedType> {
2591
+ let mut info = TypeInfo::new();
2592
+ if tys.is_empty() {
2593
+ bail!(offset, "tuple type must have at least one type");
2594
+ }
2595
+ let types = tys
2596
+ .iter()
2597
+ .map(|ty| {
2598
+ let ty = self.create_component_val_type(*ty, types, offset)?;
2599
+ info.combine(ty.info(), offset)?;
2600
+ Ok(ty)
2601
+ })
2602
+ .collect::<Result<_>>()?;
2603
+
2604
+ Ok(ComponentDefinedType::Tuple(TupleType { info, types }))
2605
+ }
2606
+
2607
+ fn create_flags_type(&self, names: &[&str], offset: usize) -> Result<ComponentDefinedType> {
2608
+ let mut names_set = IndexSet::with_capacity(names.len());
2609
+
2610
+ if names.is_empty() {
2611
+ bail!(offset, "flags must have at least one entry");
2612
+ }
2613
+
2614
+ for name in names {
2615
+ let name = to_kebab_str(name, "flag", offset)?;
2616
+ if !names_set.insert(name.to_owned()) {
2617
+ bail!(
2618
+ offset,
2619
+ "flag name `{name}` conflicts with previous flag name `{prev}`",
2620
+ prev = names_set.get(name).unwrap()
2621
+ );
2622
+ }
2623
+ }
2624
+
2625
+ Ok(ComponentDefinedType::Flags(names_set))
2626
+ }
2627
+
2628
+ fn create_enum_type(&self, cases: &[&str], offset: usize) -> Result<ComponentDefinedType> {
2629
+ if cases.len() > u32::MAX as usize {
2630
+ return Err(BinaryReaderError::new(
2631
+ "enumeration type cannot be represented with a 32-bit discriminant value",
2632
+ offset,
2633
+ ));
2634
+ }
2635
+
2636
+ if cases.is_empty() {
2637
+ bail!(offset, "enum type must have at least one variant");
2638
+ }
2639
+
2640
+ let mut tags = IndexSet::with_capacity(cases.len());
2641
+
2642
+ for tag in cases {
2643
+ let tag = to_kebab_str(tag, "enum tag", offset)?;
2644
+ if !tags.insert(tag.to_owned()) {
2645
+ bail!(
2646
+ offset,
2647
+ "enum tag name `{tag}` conflicts with previous tag name `{prev}`",
2648
+ prev = tags.get(tag).unwrap()
2649
+ );
2650
+ }
2651
+ }
2652
+
2653
+ Ok(ComponentDefinedType::Enum(tags))
2654
+ }
2655
+
2656
+ fn create_union_type(
2657
+ &self,
2658
+ tys: &[crate::ComponentValType],
2659
+ types: &TypeList,
2660
+ offset: usize,
2661
+ ) -> Result<ComponentDefinedType> {
2662
+ let mut info = TypeInfo::new();
2663
+ if tys.is_empty() {
2664
+ bail!(offset, "union type must have at least one case");
2665
+ }
2666
+ let types = tys
2667
+ .iter()
2668
+ .map(|ty| {
2669
+ let ty = self.create_component_val_type(*ty, types, offset)?;
2670
+ info.combine(ty.info(), offset)?;
2671
+ Ok(ty)
2672
+ })
2673
+ .collect::<Result<_>>()?;
2674
+
2675
+ Ok(ComponentDefinedType::Union(UnionType { info, types }))
2676
+ }
2677
+
2678
+ fn create_component_val_type(
2679
+ &self,
2680
+ ty: crate::ComponentValType,
2681
+ types: &TypeList,
2682
+ offset: usize,
2683
+ ) -> Result<ComponentValType> {
2684
+ Ok(match ty {
2685
+ crate::ComponentValType::Primitive(pt) => ComponentValType::Primitive(pt),
2686
+ crate::ComponentValType::Type(idx) => {
2687
+ ComponentValType::Type(self.defined_type_at(idx, types, offset)?)
2688
+ }
2689
+ })
2690
+ }
2691
+
2692
+ pub fn type_at(&self, idx: u32, core: bool, offset: usize) -> Result<TypeId> {
2693
+ let types = if core { &self.core_types } else { &self.types };
2694
+ types
2695
+ .get(idx as usize)
2696
+ .copied()
2697
+ .ok_or_else(|| format_err!(offset, "unknown type {idx}: type index out of bounds"))
2698
+ }
2699
+
2700
+ fn function_type_at<'a>(
2701
+ &self,
2702
+ idx: u32,
2703
+ types: &'a TypeList,
2704
+ offset: usize,
2705
+ ) -> Result<&'a ComponentFuncType> {
2706
+ match &types[self.type_at(idx, false, offset)?] {
2707
+ Type::ComponentFunc(f) => Ok(f),
2708
+ _ => bail!(offset, "type index {idx} is not a function type"),
2709
+ }
2710
+ }
2711
+
2712
+ fn function_at(&self, idx: u32, offset: usize) -> Result<TypeId> {
2713
+ self.funcs.get(idx as usize).copied().ok_or_else(|| {
2714
+ format_err!(
2715
+ offset,
2716
+ "unknown function {idx}: function index out of bounds"
2717
+ )
2718
+ })
2719
+ }
2720
+
2721
+ fn component_at(&self, idx: u32, offset: usize) -> Result<TypeId> {
2722
+ self.components.get(idx as usize).copied().ok_or_else(|| {
2723
+ format_err!(
2724
+ offset,
2725
+ "unknown component {idx}: component index out of bounds"
2726
+ )
2727
+ })
2728
+ }
2729
+
2730
+ fn instance_at(&self, idx: u32, offset: usize) -> Result<TypeId> {
2731
+ self.instances.get(idx as usize).copied().ok_or_else(|| {
2732
+ format_err!(
2733
+ offset,
2734
+ "unknown instance {idx}: instance index out of bounds"
2735
+ )
2736
+ })
2737
+ }
2738
+
2739
+ fn value_at(&mut self, idx: u32, offset: usize) -> Result<&ComponentValType> {
2740
+ match self.values.get_mut(idx as usize) {
2741
+ Some((ty, used)) if !*used => {
2742
+ *used = true;
2743
+ Ok(ty)
2744
+ }
2745
+ Some(_) => bail!(offset, "value {idx} cannot be used more than once"),
2746
+ None => bail!(offset, "unknown value {idx}: value index out of bounds"),
2747
+ }
2748
+ }
2749
+
2750
+ fn defined_type_at(&self, idx: u32, types: &TypeList, offset: usize) -> Result<TypeId> {
2751
+ let id = self.type_at(idx, false, offset)?;
2752
+ match &types[id] {
2753
+ Type::Defined(_) => Ok(id),
2754
+ _ => bail!(offset, "type index {} is not a defined type", idx),
2755
+ }
2756
+ }
2757
+
2758
+ fn core_function_at(&self, idx: u32, offset: usize) -> Result<TypeId> {
2759
+ match self.core_funcs.get(idx as usize) {
2760
+ Some(id) => Ok(*id),
2761
+ None => bail!(
2762
+ offset,
2763
+ "unknown core function {idx}: function index out of bounds"
2764
+ ),
2765
+ }
2766
+ }
2767
+
2768
+ fn module_at(&self, idx: u32, offset: usize) -> Result<TypeId> {
2769
+ match self.core_modules.get(idx as usize) {
2770
+ Some(id) => Ok(*id),
2771
+ None => bail!(offset, "unknown module {idx}: module index out of bounds"),
2772
+ }
2773
+ }
2774
+
2775
+ fn core_instance_at(&self, idx: u32, offset: usize) -> Result<TypeId> {
2776
+ match self.core_instances.get(idx as usize) {
2777
+ Some(id) => Ok(*id),
2778
+ None => bail!(
2779
+ offset,
2780
+ "unknown core instance {idx}: instance index out of bounds"
2781
+ ),
2782
+ }
2783
+ }
2784
+
2785
+ fn core_instance_export<'a>(
2786
+ &self,
2787
+ instance_index: u32,
2788
+ name: &str,
2789
+ types: &'a TypeList,
2790
+ offset: usize,
2791
+ ) -> Result<&'a EntityType> {
2792
+ match types[self.core_instance_at(instance_index, offset)?]
2793
+ .unwrap_instance()
2794
+ .internal_exports(types)
2795
+ .get(name)
2796
+ {
2797
+ Some(export) => Ok(export),
2798
+ None => bail!(
2799
+ offset,
2800
+ "core instance {instance_index} has no export named `{name}`"
2801
+ ),
2802
+ }
2803
+ }
2804
+
2805
+ fn global_at(&self, idx: u32, offset: usize) -> Result<&GlobalType> {
2806
+ match self.core_globals.get(idx as usize) {
2807
+ Some(t) => Ok(t),
2808
+ None => bail!(offset, "unknown global {idx}: global index out of bounds"),
2809
+ }
2810
+ }
2811
+
2812
+ fn table_at(&self, idx: u32, offset: usize) -> Result<&TableType> {
2813
+ match self.core_tables.get(idx as usize) {
2814
+ Some(t) => Ok(t),
2815
+ None => bail!(offset, "unknown table {idx}: table index out of bounds"),
2816
+ }
2817
+ }
2818
+
2819
+ fn memory_at(&self, idx: u32, offset: usize) -> Result<&MemoryType> {
2820
+ match self.core_memories.get(idx as usize) {
2821
+ Some(t) => Ok(t),
2822
+ None => bail!(offset, "unknown memory {idx}: memory index out of bounds"),
2823
+ }
2824
+ }
2825
+
2826
+ /// Completes the translation of this component, performing final
2827
+ /// validation of its structure.
2828
+ ///
2829
+ /// This method is required to be called for translating all components.
2830
+ /// Internally this will convert local data structures into a
2831
+ /// `ComponentType` which is suitable to use to describe the type of this
2832
+ /// component.
2833
+ pub fn finish(&mut self, types: &TypeAlloc, offset: usize) -> Result<ComponentType> {
2834
+ let mut ty = ComponentType {
2835
+ // Inherit some fields based on translation of the component.
2836
+ info: self.type_info,
2837
+ imports: self.imports.clone(),
2838
+ exports: self.exports.clone(),
2839
+
2840
+ // This is filled in as a subset of `self.defined_resources`
2841
+ // depending on what's actually used by the exports. See the
2842
+ // bottom of this function.
2843
+ defined_resources: Default::default(),
2844
+
2845
+ // These are inherited directly from what was calculated for this
2846
+ // component.
2847
+ imported_resources: mem::take(&mut self.imported_resources)
2848
+ .into_iter()
2849
+ .collect(),
2850
+ explicit_resources: mem::take(&mut self.explicit_resources),
2851
+ };
2852
+
2853
+ // Collect all "free variables", or resources, from the imports of this
2854
+ // component. None of the resources defined within this component can
2855
+ // be used as part of the exports. This set is then used to reject any
2856
+ // of `self.defined_resources` which show up.
2857
+ let mut free = IndexSet::default();
2858
+ for ty in ty.imports.values() {
2859
+ types.free_variables_component_entity(ty, &mut free);
2860
+ }
2861
+ for (resource, _path) in self.defined_resources.iter() {
2862
+ // FIXME: this error message is quite opaque and doesn't indicate
2863
+ // more contextual information such as:
2864
+ //
2865
+ // * what was the exported resource found in the imports
2866
+ // * which import was the resource found within
2867
+ //
2868
+ // These are possible to calculate here if necessary, however.
2869
+ if free.contains(resource) {
2870
+ bail!(offset, "local resource type found in imports");
2871
+ }
2872
+ }
2873
+
2874
+ // The next step in validation a component, with respect to resources,
2875
+ // is to minimize the set of defined resources to only those that
2876
+ // are actually used by the exports. This weeds out resources that are
2877
+ // defined, used within a component, and never exported, for example.
2878
+ //
2879
+ // The free variables of all exports are inserted into the `free` set
2880
+ // (which is reused from the imports after clearing it). The defined
2881
+ // resources calculated for this component are then inserted into this
2882
+ // type's list of defined resources if it's contained somewhere in
2883
+ // the free variables.
2884
+ //
2885
+ // Note that at the same time all defined resources must be exported,
2886
+ // somehow, transitively from this component. The `explicit_resources`
2887
+ // map is consulted for this purpose which lists all explicitly
2888
+ // exported resources in the component, regardless from whence they
2889
+ // came. If not present in this map then it's not exported and an error
2890
+ // is returned.
2891
+ //
2892
+ // NB: the "types are exported" check is probably sufficient nowadays
2893
+ // that the check of the `explicit_resources` map is probably not
2894
+ // necessary, but it's left here for completeness and out of an
2895
+ // abundance of caution.
2896
+ free.clear();
2897
+ for ty in ty.exports.values() {
2898
+ types.free_variables_component_entity(ty, &mut free);
2899
+ }
2900
+ for (id, _rep) in mem::take(&mut self.defined_resources) {
2901
+ if !free.contains(&id) {
2902
+ continue;
2903
+ }
2904
+
2905
+ let path = match ty.explicit_resources.get(&id).cloned() {
2906
+ Some(path) => path,
2907
+ // FIXME: this error message is quite opaque and doesn't
2908
+ // indicate more contextual information such as:
2909
+ //
2910
+ // * which resource wasn't found in an export
2911
+ // * which export has a reference to the resource
2912
+ //
2913
+ // These are possible to calculate here if necessary, however.
2914
+ None => bail!(
2915
+ offset,
2916
+ "local resource type found in export but not exported itself"
2917
+ ),
2918
+ };
2919
+
2920
+ ty.defined_resources.push((id, path));
2921
+ }
2922
+
2923
+ Ok(ty)
2924
+ }
2925
+
2926
+ fn check_value_support(&self, features: &WasmFeatures, offset: usize) -> Result<()> {
2927
+ if !features.component_model_values {
2928
+ bail!(
2929
+ offset,
2930
+ "support for component model `value`s is not enabled"
2931
+ );
2932
+ }
2933
+ Ok(())
2934
+ }
2935
+ }
2936
+
2937
+ impl KebabNameContext {
2938
+ /// Registers that the resource `id` is named `name` within this context.
2939
+ fn register(&mut self, name: &str, id: TypeId) {
2940
+ let idx = self.all_resource_names.len();
2941
+ let prev = self.resource_name_map.insert(id, idx);
2942
+ assert!(prev.is_none());
2943
+ self.all_resource_names.insert(name.to_string());
2944
+ }
2945
+
2946
+ fn validate_extern(
2947
+ &self,
2948
+ name: ComponentExternName<'_>,
2949
+ desc: &str,
2950
+ ty: &ComponentEntityType,
2951
+ types: &TypeAlloc,
2952
+ offset: usize,
2953
+ kebab_names: &mut IndexSet<KebabName>,
2954
+ items: &mut IndexMap<String, ComponentEntityType>,
2955
+ info: &mut TypeInfo,
2956
+ ) -> Result<()> {
2957
+ // First validate that `name` is even a valid kebab name, meaning it's
2958
+ // in kebab-case, is an ID, etc.
2959
+ let kebab = KebabName::new(name, offset).with_context(|| {
2960
+ format!("{desc} name `{}` is not a valid extern name", name.as_str())
2961
+ })?;
2962
+
2963
+ // Validate that the kebab name, if it has structure such as
2964
+ // `[method]a.b`, is indeed valid with respect to known resources.
2965
+ self.validate(&kebab, ty, types, offset)
2966
+ .with_context(|| format!("{desc} name `{kebab}` is not valid"))?;
2967
+
2968
+ // Top-level kebab-names must all be unique, even between both imports
2969
+ // and exports ot a component. For those names consult the `kebab_names`
2970
+ // set.
2971
+ if let ComponentExternName::Kebab(_) = name {
2972
+ if let Some(prev) = kebab_names.replace(kebab.clone()) {
2973
+ bail!(
2974
+ offset,
2975
+ "{desc} name `{kebab}` conflicts with previous name `{prev}`",
2976
+ );
2977
+ }
2978
+ }
2979
+
2980
+ // Otherwise all strings must be unique, regardless of their name, so
2981
+ // consult the `items` set to ensure that we're not for example
2982
+ // importing the same interface ID twice.
2983
+ match items.entry(kebab.into()) {
2984
+ Entry::Occupied(e) => {
2985
+ bail!(
2986
+ offset,
2987
+ "{desc} name `{name}` conflicts with previous name `{prev}`",
2988
+ name = name.as_str(),
2989
+ prev = e.key(),
2990
+ );
2991
+ }
2992
+ Entry::Vacant(e) => {
2993
+ e.insert(*ty);
2994
+ info.combine(ty.info(), offset)?;
2995
+ }
2996
+ }
2997
+ Ok(())
2998
+ }
2999
+
3000
+ /// Validates that the `name` provided is allowed to have the type `ty`.
3001
+ fn validate(
3002
+ &self,
3003
+ name: &KebabName,
3004
+ ty: &ComponentEntityType,
3005
+ types: &TypeAlloc,
3006
+ offset: usize,
3007
+ ) -> Result<()> {
3008
+ let func = || {
3009
+ let id = match ty {
3010
+ ComponentEntityType::Func(id) => *id,
3011
+ _ => bail!(offset, "item is not a func"),
3012
+ };
3013
+ Ok(types[id].unwrap_component_func())
3014
+ };
3015
+ match name.kind() {
3016
+ // Normal kebab name or id? No validation necessary.
3017
+ KebabNameKind::Normal(_) | KebabNameKind::Id { .. } => {}
3018
+
3019
+ // Constructors must return `(own $resource)` and the `$resource`
3020
+ // must be named within this context to match `rname`
3021
+ KebabNameKind::Constructor(rname) => {
3022
+ let ty = func()?;
3023
+ if ty.results.len() != 1 {
3024
+ bail!(offset, "function should return one value");
3025
+ }
3026
+ let ty = ty.results[0].1;
3027
+ let resource = match ty {
3028
+ ComponentValType::Primitive(_) => None,
3029
+ ComponentValType::Type(ty) => match &types[ty] {
3030
+ Type::Defined(ComponentDefinedType::Own(id)) => Some(id),
3031
+ _ => None,
3032
+ },
3033
+ };
3034
+ let resource = match resource {
3035
+ Some(id) => id,
3036
+ None => bail!(offset, "function should return `(own $T)`"),
3037
+ };
3038
+ self.validate_resource_name(*resource, rname, offset)?;
3039
+ }
3040
+
3041
+ // Methods must take `(param "self" (borrow $resource))` as the
3042
+ // first argument where `$resources` matches the name `resource` as
3043
+ // named in this context.
3044
+ KebabNameKind::Method { resource, .. } => {
3045
+ let ty = func()?;
3046
+ if ty.params.len() == 0 {
3047
+ bail!(offset, "function should have at least one argument");
3048
+ }
3049
+ let (pname, pty) = &ty.params[0];
3050
+ if pname.as_str() != "self" {
3051
+ bail!(
3052
+ offset,
3053
+ "function should have a first argument called `self`",
3054
+ );
3055
+ }
3056
+ let id = match pty {
3057
+ ComponentValType::Primitive(_) => None,
3058
+ ComponentValType::Type(ty) => match &types[*ty] {
3059
+ Type::Defined(ComponentDefinedType::Borrow(id)) => Some(id),
3060
+ _ => None,
3061
+ },
3062
+ };
3063
+ let id = match id {
3064
+ Some(id) => id,
3065
+ None => bail!(
3066
+ offset,
3067
+ "function should take a first argument of `(borrow $T)`"
3068
+ ),
3069
+ };
3070
+ self.validate_resource_name(*id, resource, offset)?;
3071
+ }
3072
+
3073
+ // Static methods don't have much validation beyond that they must
3074
+ // be a function and the resource name referred to must already be
3075
+ // in this context.
3076
+ KebabNameKind::Static { resource, .. } => {
3077
+ func()?;
3078
+ if !self.all_resource_names.contains(resource.as_str()) {
3079
+ bail!(offset, "static resource name is not known in this context");
3080
+ }
3081
+ }
3082
+ }
3083
+
3084
+ Ok(())
3085
+ }
3086
+
3087
+ fn validate_resource_name(&self, id: TypeId, name: &KebabStr, offset: usize) -> Result<()> {
3088
+ let expected_name_idx = match self.resource_name_map.get(&id) {
3089
+ Some(idx) => *idx,
3090
+ None => {
3091
+ bail!(
3092
+ offset,
3093
+ "resource used in function does not have a name in this context"
3094
+ )
3095
+ }
3096
+ };
3097
+ let expected_name = &self.all_resource_names[expected_name_idx];
3098
+ if name.as_str() != expected_name {
3099
+ bail!(
3100
+ offset,
3101
+ "function does not match expected \
3102
+ resource name `{expected_name}`"
3103
+ );
3104
+ }
3105
+ Ok(())
3106
+ }
3107
+ }
3108
+
3109
+ use self::append_only::*;
3110
+
3111
+ mod append_only {
3112
+ use indexmap::IndexMap;
3113
+ use std::hash::Hash;
3114
+ use std::ops::Deref;
3115
+
3116
+ pub struct IndexMapAppendOnly<K, V>(IndexMap<K, V>);
3117
+
3118
+ impl<K, V> IndexMapAppendOnly<K, V>
3119
+ where
3120
+ K: Hash + Eq + PartialEq,
3121
+ {
3122
+ pub fn insert(&mut self, key: K, value: V) {
3123
+ let prev = self.0.insert(key, value);
3124
+ assert!(prev.is_none());
3125
+ }
3126
+ }
3127
+
3128
+ impl<K, V> Deref for IndexMapAppendOnly<K, V> {
3129
+ type Target = IndexMap<K, V>;
3130
+ fn deref(&self) -> &IndexMap<K, V> {
3131
+ &self.0
3132
+ }
3133
+ }
3134
+
3135
+ impl<K, V> Default for IndexMapAppendOnly<K, V> {
3136
+ fn default() -> Self {
3137
+ Self(Default::default())
3138
+ }
3139
+ }
3140
+
3141
+ impl<K, V> IntoIterator for IndexMapAppendOnly<K, V> {
3142
+ type IntoIter = <IndexMap<K, V> as IntoIterator>::IntoIter;
3143
+ type Item = <IndexMap<K, V> as IntoIterator>::Item;
3144
+ fn into_iter(self) -> Self::IntoIter {
3145
+ self.0.into_iter()
3146
+ }
3147
+ }
3148
+ }