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