wasmtime 19.0.2 → 20.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 (2232) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +116 -120
  3. data/ext/Cargo.toml +6 -6
  4. data/ext/cargo-vendor/anyhow-1.0.83/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/anyhow-1.0.83/Cargo.toml +130 -0
  6. data/ext/cargo-vendor/anyhow-1.0.83/README.md +181 -0
  7. data/ext/cargo-vendor/anyhow-1.0.83/build.rs +179 -0
  8. data/ext/cargo-vendor/anyhow-1.0.83/src/backtrace.rs +406 -0
  9. data/ext/cargo-vendor/anyhow-1.0.83/src/chain.rs +102 -0
  10. data/ext/cargo-vendor/anyhow-1.0.83/src/fmt.rs +158 -0
  11. data/ext/cargo-vendor/anyhow-1.0.83/src/kind.rs +121 -0
  12. data/ext/cargo-vendor/anyhow-1.0.83/src/lib.rs +702 -0
  13. data/ext/cargo-vendor/anyhow-1.0.83/src/macros.rs +241 -0
  14. data/ext/cargo-vendor/anyhow-1.0.83/src/wrapper.rs +84 -0
  15. data/ext/cargo-vendor/anyhow-1.0.83/tests/test_ensure.rs +724 -0
  16. data/ext/cargo-vendor/anyhow-1.0.83/tests/test_macros.rs +81 -0
  17. data/ext/cargo-vendor/anyhow-1.0.83/tests/test_repr.rs +30 -0
  18. data/ext/cargo-vendor/anyhow-1.0.83/tests/ui/no-impl.stderr +32 -0
  19. data/ext/cargo-vendor/cranelift-bforest-0.107.2/.cargo-checksum.json +1 -0
  20. data/ext/cargo-vendor/cranelift-bforest-0.107.2/Cargo.toml +40 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.107.2/.cargo-checksum.json +1 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.107.2/Cargo.toml +178 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.107.2/build.rs +396 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/alias_analysis.rs +403 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/binemit/mod.rs +171 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/bitset.rs +187 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/context.rs +386 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph/elaborate.rs +835 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/egraph.rs +838 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/inst_predicates.rs +236 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/constant.rs +462 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/dfg.rs +1777 -0
  33. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/entities.rs +562 -0
  34. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/function.rs +490 -0
  35. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/instructions.rs +1019 -0
  36. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/memflags.rs +452 -0
  37. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/mod.rs +108 -0
  38. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/trapcode.rs +149 -0
  39. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/ir/types.rs +629 -0
  40. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/abi.rs +1707 -0
  41. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/emit.rs +3932 -0
  42. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst/mod.rs +3083 -0
  43. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/inst.isle +4218 -0
  44. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/lower/isle.rs +884 -0
  45. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/lower.isle +2933 -0
  46. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/mod.rs +242 -0
  47. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/aarch64/pcc.rs +565 -0
  48. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/call_conv.rs +127 -0
  49. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/abi.rs +1109 -0
  50. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/args.rs +1968 -0
  51. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/emit.rs +3466 -0
  52. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst/encode.rs +654 -0
  53. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/inst.isle +2944 -0
  54. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower/isle.rs +625 -0
  55. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/riscv64/lower.isle +2872 -0
  56. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/abi.rs +1047 -0
  57. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/args.rs +347 -0
  58. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst/emit.rs +3646 -0
  59. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/inst.isle +5033 -0
  60. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/s390x/lower.isle +3995 -0
  61. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/abi.rs +1369 -0
  62. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/encoding/evex.rs +748 -0
  63. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/encoding/rex.rs +596 -0
  64. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/encoding/vex.rs +491 -0
  65. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/args.rs +2289 -0
  66. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit.rs +4383 -0
  67. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/emit_state.rs +74 -0
  68. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst/mod.rs +2798 -0
  69. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/inst.isle +5304 -0
  70. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower/isle.rs +1066 -0
  71. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.isle +4809 -0
  72. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/lower.rs +339 -0
  73. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/mod.rs +234 -0
  74. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/isa/x64/pcc.rs +1003 -0
  75. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/legalizer/mod.rs +348 -0
  76. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/abi.rs +2594 -0
  77. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/buffer.rs +2512 -0
  78. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/inst_common.rs +75 -0
  79. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/isle.rs +914 -0
  80. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/lower.rs +1452 -0
  81. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/mod.rs +555 -0
  82. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/pcc.rs +169 -0
  83. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/machinst/vcode.rs +1807 -0
  84. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/nan_canonicalization.rs +110 -0
  85. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/cprop.isle +281 -0
  86. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts/spectre.isle +14 -0
  87. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/opts.rs +295 -0
  88. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/prelude.isle +646 -0
  89. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/result.rs +111 -0
  90. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/settings.rs +591 -0
  91. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/verifier/mod.rs +1957 -0
  92. data/ext/cargo-vendor/cranelift-codegen-0.107.2/src/write.rs +631 -0
  93. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/.cargo-checksum.json +1 -0
  94. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/Cargo.toml +35 -0
  95. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/shared/entities.rs +101 -0
  96. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/shared/formats.rs +205 -0
  97. data/ext/cargo-vendor/cranelift-codegen-meta-0.107.2/src/shared/instructions.rs +3791 -0
  98. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/.cargo-checksum.json +1 -0
  99. data/ext/cargo-vendor/cranelift-codegen-shared-0.107.2/Cargo.toml +22 -0
  100. data/ext/cargo-vendor/cranelift-control-0.107.2/.cargo-checksum.json +1 -0
  101. data/ext/cargo-vendor/cranelift-control-0.107.2/Cargo.toml +30 -0
  102. data/ext/cargo-vendor/cranelift-entity-0.107.2/.cargo-checksum.json +1 -0
  103. data/ext/cargo-vendor/cranelift-entity-0.107.2/Cargo.toml +50 -0
  104. data/ext/cargo-vendor/cranelift-frontend-0.107.2/.cargo-checksum.json +1 -0
  105. data/ext/cargo-vendor/cranelift-frontend-0.107.2/Cargo.toml +69 -0
  106. data/ext/cargo-vendor/cranelift-isle-0.107.2/.cargo-checksum.json +1 -0
  107. data/ext/cargo-vendor/cranelift-isle-0.107.2/Cargo.toml +46 -0
  108. data/ext/cargo-vendor/cranelift-native-0.107.2/.cargo-checksum.json +1 -0
  109. data/ext/cargo-vendor/cranelift-native-0.107.2/Cargo.toml +45 -0
  110. data/ext/cargo-vendor/cranelift-wasm-0.107.2/.cargo-checksum.json +1 -0
  111. data/ext/cargo-vendor/cranelift-wasm-0.107.2/Cargo.toml +107 -0
  112. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/code_translator.rs +3683 -0
  113. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/dummy.rs +912 -0
  114. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/mod.rs +8 -0
  115. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/environ/spec.rs +945 -0
  116. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/func_translator.rs +296 -0
  117. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/lib.rs +58 -0
  118. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/state.rs +522 -0
  119. data/ext/cargo-vendor/cranelift-wasm-0.107.2/src/table.rs +104 -0
  120. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/.cargo-checksum.json +1 -0
  121. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.21/Cargo.toml +48 -0
  122. data/ext/cargo-vendor/mach2-0.4.2/.cargo-checksum.json +1 -0
  123. data/ext/cargo-vendor/mach2-0.4.2/Cargo.toml +49 -0
  124. data/ext/cargo-vendor/mach2-0.4.2/LICENSE-APACHE +176 -0
  125. data/ext/cargo-vendor/mach2-0.4.2/LICENSE-BSD +23 -0
  126. data/ext/cargo-vendor/mach2-0.4.2/LICENSE-MIT +25 -0
  127. data/ext/cargo-vendor/mach2-0.4.2/README.md +116 -0
  128. data/ext/cargo-vendor/mach2-0.4.2/src/exc.rs +73 -0
  129. data/ext/cargo-vendor/mach2-0.4.2/src/kern_return.rs +59 -0
  130. data/ext/cargo-vendor/mach2-0.4.2/src/lib.rs +59 -0
  131. data/ext/cargo-vendor/mach2-0.4.2/src/mach_port.rs +50 -0
  132. data/ext/cargo-vendor/mach2-0.4.2/src/message.rs +345 -0
  133. data/ext/cargo-vendor/mach2-0.4.2/src/ndr.rs +19 -0
  134. data/ext/cargo-vendor/mach2-0.4.2/src/port.rs +67 -0
  135. data/ext/cargo-vendor/mach2-0.4.2/src/semaphore.rs +22 -0
  136. data/ext/cargo-vendor/mach2-0.4.2/src/structs.rs +66 -0
  137. data/ext/cargo-vendor/mach2-0.4.2/src/sync_policy.rs +9 -0
  138. data/ext/cargo-vendor/mach2-0.4.2/src/task.rs +46 -0
  139. data/ext/cargo-vendor/mach2-0.4.2/src/task_info.rs +49 -0
  140. data/ext/cargo-vendor/mach2-0.4.2/src/thread_act.rs +36 -0
  141. data/ext/cargo-vendor/mach2-0.4.2/src/thread_policy.rs +121 -0
  142. data/ext/cargo-vendor/mach2-0.4.2/src/thread_status.rs +53 -0
  143. data/ext/cargo-vendor/mach2-0.4.2/src/traps.rs +37 -0
  144. data/ext/cargo-vendor/mach2-0.4.2/src/vm.rs +248 -0
  145. data/ext/cargo-vendor/mach2-0.4.2/src/vm_attributes.rs +18 -0
  146. data/ext/cargo-vendor/mach2-0.4.2/src/vm_page_size.rs +40 -0
  147. data/ext/cargo-vendor/mach2-0.4.2/src/vm_prot.rs +13 -0
  148. data/ext/cargo-vendor/mach2-0.4.2/src/vm_purgable.rs +42 -0
  149. data/ext/cargo-vendor/mach2-0.4.2/src/vm_region.rs +238 -0
  150. data/ext/cargo-vendor/mach2-0.4.2/src/vm_statistics.rs +58 -0
  151. data/ext/cargo-vendor/mach2-0.4.2/src/vm_sync.rs +11 -0
  152. data/ext/cargo-vendor/mach2-0.4.2/src/vm_types.rs +19 -0
  153. data/ext/cargo-vendor/object-0.33.0/.cargo-checksum.json +1 -0
  154. data/ext/cargo-vendor/object-0.33.0/CHANGELOG.md +797 -0
  155. data/ext/cargo-vendor/object-0.33.0/Cargo.toml +179 -0
  156. data/ext/cargo-vendor/object-0.33.0/LICENSE-APACHE +201 -0
  157. data/ext/cargo-vendor/object-0.33.0/LICENSE-MIT +25 -0
  158. data/ext/cargo-vendor/object-0.33.0/README.md +56 -0
  159. data/ext/cargo-vendor/object-0.33.0/src/archive.rs +91 -0
  160. data/ext/cargo-vendor/object-0.33.0/src/build/bytes.rs +141 -0
  161. data/ext/cargo-vendor/object-0.33.0/src/build/elf.rs +3033 -0
  162. data/ext/cargo-vendor/object-0.33.0/src/build/error.rs +41 -0
  163. data/ext/cargo-vendor/object-0.33.0/src/build/mod.rs +18 -0
  164. data/ext/cargo-vendor/object-0.33.0/src/build/table.rs +128 -0
  165. data/ext/cargo-vendor/object-0.33.0/src/common.rs +568 -0
  166. data/ext/cargo-vendor/object-0.33.0/src/elf.rs +6291 -0
  167. data/ext/cargo-vendor/object-0.33.0/src/endian.rs +831 -0
  168. data/ext/cargo-vendor/object-0.33.0/src/lib.rs +107 -0
  169. data/ext/cargo-vendor/object-0.33.0/src/macho.rs +3309 -0
  170. data/ext/cargo-vendor/object-0.33.0/src/pe.rs +3056 -0
  171. data/ext/cargo-vendor/object-0.33.0/src/pod.rs +239 -0
  172. data/ext/cargo-vendor/object-0.33.0/src/read/any.rs +1328 -0
  173. data/ext/cargo-vendor/object-0.33.0/src/read/archive.rs +759 -0
  174. data/ext/cargo-vendor/object-0.33.0/src/read/coff/comdat.rs +211 -0
  175. data/ext/cargo-vendor/object-0.33.0/src/read/coff/file.rs +383 -0
  176. data/ext/cargo-vendor/object-0.33.0/src/read/coff/import.rs +223 -0
  177. data/ext/cargo-vendor/object-0.33.0/src/read/coff/mod.rs +66 -0
  178. data/ext/cargo-vendor/object-0.33.0/src/read/coff/relocation.rs +108 -0
  179. data/ext/cargo-vendor/object-0.33.0/src/read/coff/section.rs +585 -0
  180. data/ext/cargo-vendor/object-0.33.0/src/read/coff/symbol.rs +635 -0
  181. data/ext/cargo-vendor/object-0.33.0/src/read/elf/attributes.rs +306 -0
  182. data/ext/cargo-vendor/object-0.33.0/src/read/elf/comdat.rs +162 -0
  183. data/ext/cargo-vendor/object-0.33.0/src/read/elf/compression.rs +56 -0
  184. data/ext/cargo-vendor/object-0.33.0/src/read/elf/dynamic.rs +117 -0
  185. data/ext/cargo-vendor/object-0.33.0/src/read/elf/file.rs +918 -0
  186. data/ext/cargo-vendor/object-0.33.0/src/read/elf/hash.rs +224 -0
  187. data/ext/cargo-vendor/object-0.33.0/src/read/elf/mod.rs +78 -0
  188. data/ext/cargo-vendor/object-0.33.0/src/read/elf/note.rs +271 -0
  189. data/ext/cargo-vendor/object-0.33.0/src/read/elf/relocation.rs +629 -0
  190. data/ext/cargo-vendor/object-0.33.0/src/read/elf/section.rs +1150 -0
  191. data/ext/cargo-vendor/object-0.33.0/src/read/elf/segment.rs +356 -0
  192. data/ext/cargo-vendor/object-0.33.0/src/read/elf/symbol.rs +595 -0
  193. data/ext/cargo-vendor/object-0.33.0/src/read/elf/version.rs +424 -0
  194. data/ext/cargo-vendor/object-0.33.0/src/read/macho/dyld_cache.rs +345 -0
  195. data/ext/cargo-vendor/object-0.33.0/src/read/macho/fat.rs +140 -0
  196. data/ext/cargo-vendor/object-0.33.0/src/read/macho/file.rs +783 -0
  197. data/ext/cargo-vendor/object-0.33.0/src/read/macho/load_command.rs +386 -0
  198. data/ext/cargo-vendor/object-0.33.0/src/read/macho/mod.rs +72 -0
  199. data/ext/cargo-vendor/object-0.33.0/src/read/macho/relocation.rs +149 -0
  200. data/ext/cargo-vendor/object-0.33.0/src/read/macho/section.rs +389 -0
  201. data/ext/cargo-vendor/object-0.33.0/src/read/macho/segment.rs +303 -0
  202. data/ext/cargo-vendor/object-0.33.0/src/read/macho/symbol.rs +492 -0
  203. data/ext/cargo-vendor/object-0.33.0/src/read/mod.rs +880 -0
  204. data/ext/cargo-vendor/object-0.33.0/src/read/pe/data_directory.rs +214 -0
  205. data/ext/cargo-vendor/object-0.33.0/src/read/pe/export.rs +334 -0
  206. data/ext/cargo-vendor/object-0.33.0/src/read/pe/file.rs +1053 -0
  207. data/ext/cargo-vendor/object-0.33.0/src/read/pe/import.rs +339 -0
  208. data/ext/cargo-vendor/object-0.33.0/src/read/pe/mod.rs +68 -0
  209. data/ext/cargo-vendor/object-0.33.0/src/read/pe/relocation.rs +92 -0
  210. data/ext/cargo-vendor/object-0.33.0/src/read/pe/resource.rs +210 -0
  211. data/ext/cargo-vendor/object-0.33.0/src/read/pe/rich.rs +92 -0
  212. data/ext/cargo-vendor/object-0.33.0/src/read/pe/section.rs +440 -0
  213. data/ext/cargo-vendor/object-0.33.0/src/read/read_cache.rs +213 -0
  214. data/ext/cargo-vendor/object-0.33.0/src/read/read_ref.rs +149 -0
  215. data/ext/cargo-vendor/object-0.33.0/src/read/traits.rs +551 -0
  216. data/ext/cargo-vendor/object-0.33.0/src/read/util.rs +425 -0
  217. data/ext/cargo-vendor/object-0.33.0/src/read/wasm.rs +966 -0
  218. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/comdat.rs +134 -0
  219. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/file.rs +697 -0
  220. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/mod.rs +63 -0
  221. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/relocation.rs +134 -0
  222. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/section.rs +433 -0
  223. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/segment.rs +117 -0
  224. data/ext/cargo-vendor/object-0.33.0/src/read/xcoff/symbol.rs +784 -0
  225. data/ext/cargo-vendor/object-0.33.0/src/write/coff/mod.rs +10 -0
  226. data/ext/cargo-vendor/object-0.33.0/src/write/coff/object.rs +678 -0
  227. data/ext/cargo-vendor/object-0.33.0/src/write/coff/writer.rs +518 -0
  228. data/ext/cargo-vendor/object-0.33.0/src/write/elf/mod.rs +9 -0
  229. data/ext/cargo-vendor/object-0.33.0/src/write/elf/object.rs +885 -0
  230. data/ext/cargo-vendor/object-0.33.0/src/write/elf/writer.rs +2309 -0
  231. data/ext/cargo-vendor/object-0.33.0/src/write/macho.rs +1107 -0
  232. data/ext/cargo-vendor/object-0.33.0/src/write/mod.rs +990 -0
  233. data/ext/cargo-vendor/object-0.33.0/src/write/pe.rs +847 -0
  234. data/ext/cargo-vendor/object-0.33.0/src/write/string.rs +186 -0
  235. data/ext/cargo-vendor/object-0.33.0/src/write/util.rs +261 -0
  236. data/ext/cargo-vendor/object-0.33.0/src/write/xcoff.rs +589 -0
  237. data/ext/cargo-vendor/object-0.33.0/src/xcoff.rs +905 -0
  238. data/ext/cargo-vendor/object-0.33.0/tests/integration.rs +2 -0
  239. data/ext/cargo-vendor/object-0.33.0/tests/parse_self.rs +25 -0
  240. data/ext/cargo-vendor/object-0.33.0/tests/read/coff.rs +23 -0
  241. data/ext/cargo-vendor/object-0.33.0/tests/read/elf.rs +47 -0
  242. data/ext/cargo-vendor/object-0.33.0/tests/read/mod.rs +4 -0
  243. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/bss.rs +255 -0
  244. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/coff.rs +58 -0
  245. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/comdat.rs +225 -0
  246. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/common.rs +245 -0
  247. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/elf.rs +289 -0
  248. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/macho.rs +64 -0
  249. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/mod.rs +704 -0
  250. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/section_flags.rs +90 -0
  251. data/ext/cargo-vendor/object-0.33.0/tests/round_trip/tls.rs +316 -0
  252. data/ext/cargo-vendor/wasi-common-20.0.0/.cargo-checksum.json +1 -0
  253. data/ext/cargo-vendor/wasi-common-20.0.0/Cargo.toml +220 -0
  254. data/ext/cargo-vendor/wasi-common-20.0.0/src/ctx.rs +128 -0
  255. data/ext/cargo-vendor/wasi-common-20.0.0/src/lib.rs +193 -0
  256. data/ext/cargo-vendor/wasi-common-20.0.0/src/snapshots/preview_1.rs +1497 -0
  257. data/ext/cargo-vendor/wasi-common-20.0.0/tests/all/async_.rs +293 -0
  258. data/ext/cargo-vendor/wasi-common-20.0.0/tests/all/sync.rs +279 -0
  259. data/ext/cargo-vendor/wasm-encoder-0.202.0/.cargo-checksum.json +1 -0
  260. data/ext/cargo-vendor/wasm-encoder-0.202.0/Cargo.toml +43 -0
  261. data/ext/cargo-vendor/wasm-encoder-0.202.0/src/component/types.rs +792 -0
  262. data/ext/cargo-vendor/wasm-encoder-0.208.1/.cargo-checksum.json +1 -0
  263. data/ext/cargo-vendor/wasm-encoder-0.208.1/Cargo.toml +46 -0
  264. data/ext/cargo-vendor/wasm-encoder-0.208.1/README.md +80 -0
  265. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/aliases.rs +160 -0
  266. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/builder.rs +455 -0
  267. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/canonicals.rs +159 -0
  268. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/components.rs +29 -0
  269. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/exports.rs +124 -0
  270. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/imports.rs +175 -0
  271. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/instances.rs +200 -0
  272. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/modules.rs +29 -0
  273. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/names.rs +149 -0
  274. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/start.rs +52 -0
  275. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component/types.rs +792 -0
  276. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/component.rs +168 -0
  277. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/code.rs +3595 -0
  278. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/custom.rs +73 -0
  279. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/data.rs +186 -0
  280. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/dump.rs +627 -0
  281. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/elements.rs +221 -0
  282. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/exports.rs +98 -0
  283. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/functions.rs +63 -0
  284. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/globals.rs +112 -0
  285. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/imports.rs +157 -0
  286. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/linking.rs +263 -0
  287. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/memories.rs +128 -0
  288. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/names.rs +298 -0
  289. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/producers.rs +181 -0
  290. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/start.rs +39 -0
  291. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/tables.rs +134 -0
  292. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/tags.rs +104 -0
  293. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core/types.rs +678 -0
  294. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/core.rs +168 -0
  295. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/lib.rs +215 -0
  296. data/ext/cargo-vendor/wasm-encoder-0.208.1/src/raw.rs +30 -0
  297. data/ext/cargo-vendor/wasmparser-0.202.0/.cargo-checksum.json +1 -0
  298. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.lock +744 -0
  299. data/ext/cargo-vendor/wasmparser-0.202.0/Cargo.toml +66 -0
  300. data/ext/cargo-vendor/wasmparser-0.202.0/src/readers/component/types.rs +549 -0
  301. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/operators.rs +4076 -0
  302. data/ext/cargo-vendor/wasmparser-0.202.0/src/validator/types.rs +4449 -0
  303. data/ext/cargo-vendor/wasmprinter-0.202.0/.cargo-checksum.json +1 -0
  304. data/ext/cargo-vendor/wasmprinter-0.202.0/Cargo.toml +45 -0
  305. data/ext/cargo-vendor/wasmprinter-0.202.0/src/lib.rs +3202 -0
  306. data/ext/cargo-vendor/wasmprinter-0.202.0/src/operator.rs +1131 -0
  307. data/ext/cargo-vendor/wasmprinter-0.202.0/tests/all.rs +279 -0
  308. data/ext/cargo-vendor/wasmtime-20.0.0/.cargo-checksum.json +1 -0
  309. data/ext/cargo-vendor/wasmtime-20.0.0/Cargo.toml +268 -0
  310. data/ext/cargo-vendor/wasmtime-20.0.0/src/compile/code_builder.rs +201 -0
  311. data/ext/cargo-vendor/wasmtime-20.0.0/src/compile/runtime.rs +175 -0
  312. data/ext/cargo-vendor/wasmtime-20.0.0/src/compile.rs +897 -0
  313. data/ext/cargo-vendor/wasmtime-20.0.0/src/config.rs +2695 -0
  314. data/ext/cargo-vendor/wasmtime-20.0.0/src/engine/serialization.rs +849 -0
  315. data/ext/cargo-vendor/wasmtime-20.0.0/src/engine.rs +741 -0
  316. data/ext/cargo-vendor/wasmtime-20.0.0/src/lib.rs +303 -0
  317. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/code_memory.rs +335 -0
  318. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/component.rs +661 -0
  319. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/func/host.rs +439 -0
  320. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/func/options.rs +554 -0
  321. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/func/typed.rs +2484 -0
  322. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/func.rs +747 -0
  323. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/instance.rs +804 -0
  324. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/linker.rs +786 -0
  325. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/matching.rs +217 -0
  326. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/mod.rs +756 -0
  327. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/resources.rs +1133 -0
  328. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/types.rs +892 -0
  329. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/component/values.rs +978 -0
  330. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/coredump.rs +336 -0
  331. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/externals/global.rs +300 -0
  332. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/externals/table.rs +480 -0
  333. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/func/typed.rs +898 -0
  334. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/func.rs +2633 -0
  335. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/disabled/anyref.rs +46 -0
  336. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/disabled/externref.rs +50 -0
  337. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/disabled/i31.rs +14 -0
  338. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/disabled/rooting.rs +222 -0
  339. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/disabled.rs +17 -0
  340. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/enabled/anyref.rs +472 -0
  341. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/enabled/externref.rs +644 -0
  342. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/enabled/i31.rs +345 -0
  343. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/enabled/rooting.rs +1543 -0
  344. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc/enabled.rs +12 -0
  345. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/gc.rs +87 -0
  346. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/instance.rs +992 -0
  347. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/instantiate.rs +345 -0
  348. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/linker.rs +1521 -0
  349. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/memory.rs +999 -0
  350. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/module/registry.rs +354 -0
  351. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/module.rs +1295 -0
  352. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/profiling.rs +224 -0
  353. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/store/data.rs +289 -0
  354. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/store.rs +2796 -0
  355. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/trampoline/func.rs +138 -0
  356. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/trampoline/global.rs +68 -0
  357. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/trampoline/memory.rs +286 -0
  358. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/trampoline/table.rs +34 -0
  359. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/trap.rs +641 -0
  360. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/type_registry.rs +632 -0
  361. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/types/matching.rs +367 -0
  362. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/types.rs +1378 -0
  363. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/v128.rs +131 -0
  364. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime/values.rs +945 -0
  365. data/ext/cargo-vendor/wasmtime-20.0.0/src/runtime.rs +112 -0
  366. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.0/.cargo-checksum.json +1 -0
  367. data/ext/cargo-vendor/wasmtime-asm-macros-20.0.0/Cargo.toml +22 -0
  368. data/ext/cargo-vendor/wasmtime-cache-20.0.0/.cargo-checksum.json +1 -0
  369. data/ext/cargo-vendor/wasmtime-cache-20.0.0/Cargo.toml +81 -0
  370. data/ext/cargo-vendor/wasmtime-component-macro-20.0.0/.cargo-checksum.json +1 -0
  371. data/ext/cargo-vendor/wasmtime-component-macro-20.0.0/Cargo.toml +67 -0
  372. data/ext/cargo-vendor/wasmtime-component-macro-20.0.0/src/component.rs +1295 -0
  373. data/ext/cargo-vendor/wasmtime-component-macro-20.0.0/tests/codegen/dead-code.wit +27 -0
  374. data/ext/cargo-vendor/wasmtime-component-macro-20.0.0/tests/codegen.rs +342 -0
  375. data/ext/cargo-vendor/wasmtime-component-util-20.0.0/.cargo-checksum.json +1 -0
  376. data/ext/cargo-vendor/wasmtime-component-util-20.0.0/Cargo.toml +25 -0
  377. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/.cargo-checksum.json +1 -0
  378. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/Cargo.toml +114 -0
  379. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/builder.rs +127 -0
  380. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/compiled_function.rs +225 -0
  381. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/compiler/component.rs +962 -0
  382. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/compiler.rs +1369 -0
  383. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/debug/transform/address_transform.rs +783 -0
  384. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/debug/transform/expression.rs +1252 -0
  385. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/func_environ.rs +2672 -0
  386. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/gc/disabled.rs +116 -0
  387. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/gc/enabled.rs +649 -0
  388. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/gc.rs +198 -0
  389. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/lib.rs +505 -0
  390. data/ext/cargo-vendor/wasmtime-cranelift-20.0.0/src/obj.rs +545 -0
  391. data/ext/cargo-vendor/wasmtime-environ-20.0.0/.cargo-checksum.json +1 -0
  392. data/ext/cargo-vendor/wasmtime-environ-20.0.0/Cargo.lock +782 -0
  393. data/ext/cargo-vendor/wasmtime-environ-20.0.0/Cargo.toml +144 -0
  394. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/address_map.rs +125 -0
  395. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/builtin.rs +184 -0
  396. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/compile/address_map.rs +72 -0
  397. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/compile/mod.rs +389 -0
  398. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/compile/module_artifacts.rs +300 -0
  399. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/compile/trap_encoding.rs +69 -0
  400. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/component/artifacts.rs +72 -0
  401. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/component/compiler.rs +19 -0
  402. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/component/info.rs +672 -0
  403. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/component/translate/adapt.rs +459 -0
  404. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/component/translate/inline.rs +1332 -0
  405. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/component/types.rs +1972 -0
  406. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/component.rs +103 -0
  407. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/fact/trampoline.rs +3233 -0
  408. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/fact/transcode.rs +89 -0
  409. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/fact.rs +711 -0
  410. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/gc.rs +60 -0
  411. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/lib.rs +70 -0
  412. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/module.rs +780 -0
  413. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/module_artifacts.rs +145 -0
  414. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/module_environ.rs +1288 -0
  415. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/obj.rs +173 -0
  416. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/trap_encoding.rs +188 -0
  417. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/tunables.rs +158 -0
  418. data/ext/cargo-vendor/wasmtime-environ-20.0.0/src/vmoffsets.rs +952 -0
  419. data/ext/cargo-vendor/wasmtime-fiber-20.0.0/.cargo-checksum.json +1 -0
  420. data/ext/cargo-vendor/wasmtime-fiber-20.0.0/Cargo.toml +63 -0
  421. data/ext/cargo-vendor/wasmtime-fiber-20.0.0/src/unix.rs +265 -0
  422. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.0/.cargo-checksum.json +1 -0
  423. data/ext/cargo-vendor/wasmtime-jit-debug-20.0.0/Cargo.toml +67 -0
  424. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.0/.cargo-checksum.json +1 -0
  425. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-20.0.0/Cargo.toml +47 -0
  426. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/.cargo-checksum.json +1 -0
  427. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/Cargo.toml +147 -0
  428. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/build.rs +24 -0
  429. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/arch/aarch64.rs +76 -0
  430. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/arch/riscv64.rs +41 -0
  431. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/arch/s390x.S +70 -0
  432. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/arch/s390x.rs +34 -0
  433. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/arch/x86_64.rs +41 -0
  434. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/async_yield.rs +35 -0
  435. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/component/libcalls.rs +571 -0
  436. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/component.rs +860 -0
  437. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/export.rs +108 -0
  438. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/disabled.rs +23 -0
  439. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/enabled/drc.rs +963 -0
  440. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/enabled/externref.rs +115 -0
  441. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/enabled/free_list.rs +767 -0
  442. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/enabled.rs +18 -0
  443. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/gc_ref.rs +486 -0
  444. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/gc_runtime.rs +503 -0
  445. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/host_data.rs +81 -0
  446. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc/i31.rs +86 -0
  447. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/gc.rs +244 -0
  448. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/instance/allocator/on_demand.rs +217 -0
  449. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/instance/allocator/pooling/gc_heap_pool.rs +92 -0
  450. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/instance/allocator/pooling/table_pool.rs +231 -0
  451. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/instance/allocator/pooling.rs +699 -0
  452. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/instance/allocator.rs +780 -0
  453. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/instance.rs +1566 -0
  454. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/lib.rs +289 -0
  455. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/libcalls.rs +777 -0
  456. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/memory.rs +751 -0
  457. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/send_sync_ptr.rs +106 -0
  458. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/sys/custom/mmap.rs +111 -0
  459. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/sys/custom/traphandlers.rs +55 -0
  460. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/sys/miri/mmap.rs +94 -0
  461. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/sys/unix/machports.rs +416 -0
  462. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/sys/unix/mmap.rs +151 -0
  463. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/sys/unix/signals.rs +401 -0
  464. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/sys/windows/traphandlers.rs +104 -0
  465. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/table.rs +851 -0
  466. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/threads/mod.rs +12 -0
  467. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/threads/shared_memory.rs +230 -0
  468. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/threads/shared_memory_disabled.rs +100 -0
  469. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/traphandlers/coredump_disabled.rs +16 -0
  470. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/traphandlers/coredump_enabled.rs +40 -0
  471. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/traphandlers.rs +785 -0
  472. data/ext/cargo-vendor/wasmtime-runtime-20.0.0/src/vmcontext.rs +1293 -0
  473. data/ext/cargo-vendor/wasmtime-slab-20.0.0/.cargo-checksum.json +1 -0
  474. data/ext/cargo-vendor/wasmtime-slab-20.0.0/Cargo.toml +21 -0
  475. data/ext/cargo-vendor/wasmtime-slab-20.0.0/src/lib.rs +493 -0
  476. data/ext/cargo-vendor/wasmtime-types-20.0.2/.cargo-checksum.json +1 -0
  477. data/ext/cargo-vendor/wasmtime-types-20.0.2/Cargo.toml +36 -0
  478. data/ext/cargo-vendor/wasmtime-types-20.0.2/src/lib.rs +832 -0
  479. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.0/.cargo-checksum.json +1 -0
  480. data/ext/cargo-vendor/wasmtime-versioned-export-macros-20.0.0/Cargo.toml +32 -0
  481. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/.cargo-checksum.json +1 -0
  482. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/Cargo.toml +194 -0
  483. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/bindings.rs +283 -0
  484. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/ctx.rs +659 -0
  485. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/filesystem.rs +433 -0
  486. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/host/filesystem/sync.rs +518 -0
  487. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/host/filesystem.rs +1079 -0
  488. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/host/io.rs +367 -0
  489. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/host/network.rs +539 -0
  490. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/host/tcp.rs +306 -0
  491. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/ip_name_lookup.rs +126 -0
  492. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/lib.rs +404 -0
  493. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/network.rs +107 -0
  494. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/pipe.rs +826 -0
  495. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/poll.rs +233 -0
  496. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/preview0.rs +879 -0
  497. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/preview1.rs +2601 -0
  498. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/runtime.rs +175 -0
  499. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/stdio/worker_thread_stdin.rs +177 -0
  500. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/stdio.rs +507 -0
  501. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/tcp.rs +847 -0
  502. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/udp.rs +125 -0
  503. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/src/write_stream.rs +203 -0
  504. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/tests/all/api.rs +194 -0
  505. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/tests/all/async_.rs +397 -0
  506. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/tests/all/main.rs +91 -0
  507. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/tests/all/preview1.rs +251 -0
  508. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/tests/all/sync.rs +333 -0
  509. data/ext/cargo-vendor/wasmtime-wasi-20.0.0/wit/deps/io/poll.wit +41 -0
  510. data/ext/cargo-vendor/wasmtime-winch-20.0.0/.cargo-checksum.json +1 -0
  511. data/ext/cargo-vendor/wasmtime-winch-20.0.0/Cargo.toml +81 -0
  512. data/ext/cargo-vendor/wasmtime-winch-20.0.0/src/builder.rs +85 -0
  513. data/ext/cargo-vendor/wasmtime-winch-20.0.0/src/compiler.rs +257 -0
  514. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.0/.cargo-checksum.json +1 -0
  515. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.0/Cargo.toml +41 -0
  516. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.0/src/lib.rs +2213 -0
  517. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.0/src/rust.rs +421 -0
  518. data/ext/cargo-vendor/wasmtime-wit-bindgen-20.0.0/src/types.rs +202 -0
  519. data/ext/cargo-vendor/wast-208.0.1/.cargo-checksum.json +1 -0
  520. data/ext/cargo-vendor/wast-208.0.1/Cargo.toml +60 -0
  521. data/ext/cargo-vendor/wast-208.0.1/src/component/binary.rs +1000 -0
  522. data/ext/cargo-vendor/wast-208.0.1/src/component/resolve.rs +1007 -0
  523. data/ext/cargo-vendor/wast-208.0.1/src/component/types.rs +999 -0
  524. data/ext/cargo-vendor/wast-208.0.1/src/component/wast.rs +160 -0
  525. data/ext/cargo-vendor/wast-208.0.1/src/core/binary.rs +1396 -0
  526. data/ext/cargo-vendor/wast-208.0.1/src/core/expr.rs +2016 -0
  527. data/ext/cargo-vendor/wast-208.0.1/src/core/func.rs +136 -0
  528. data/ext/cargo-vendor/wast-208.0.1/src/core/memory.rs +284 -0
  529. data/ext/cargo-vendor/wast-208.0.1/src/core/resolve/deinline_import_export.rs +235 -0
  530. data/ext/cargo-vendor/wast-208.0.1/src/core/resolve/names.rs +751 -0
  531. data/ext/cargo-vendor/wast-208.0.1/src/core/resolve/types.rs +267 -0
  532. data/ext/cargo-vendor/wast-208.0.1/src/core/table.rs +302 -0
  533. data/ext/cargo-vendor/wast-208.0.1/src/core/types.rs +901 -0
  534. data/ext/cargo-vendor/wast-208.0.1/src/core/wast.rs +256 -0
  535. data/ext/cargo-vendor/wast-208.0.1/src/lib.rs +551 -0
  536. data/ext/cargo-vendor/wast-208.0.1/src/names.rs +67 -0
  537. data/ext/cargo-vendor/wast-208.0.1/src/parser.rs +1377 -0
  538. data/ext/cargo-vendor/wast-208.0.1/src/token.rs +737 -0
  539. data/ext/cargo-vendor/wast-208.0.1/src/wast.rs +459 -0
  540. data/ext/cargo-vendor/wast-208.0.1/src/wat.rs +71 -0
  541. data/ext/cargo-vendor/wast-208.0.1/tests/annotations.rs +200 -0
  542. data/ext/cargo-vendor/wast-208.0.1/tests/parse-fail.rs +80 -0
  543. data/ext/cargo-vendor/wat-1.208.1/.cargo-checksum.json +1 -0
  544. data/ext/cargo-vendor/wat-1.208.1/Cargo.toml +34 -0
  545. data/ext/cargo-vendor/wiggle-20.0.0/.cargo-checksum.json +1 -0
  546. data/ext/cargo-vendor/wiggle-20.0.0/Cargo.toml +122 -0
  547. data/ext/cargo-vendor/wiggle-20.0.0/src/borrow.rs +113 -0
  548. data/ext/cargo-vendor/wiggle-20.0.0/src/guest_type.rs +237 -0
  549. data/ext/cargo-vendor/wiggle-20.0.0/src/lib.rs +1184 -0
  550. data/ext/cargo-vendor/wiggle-20.0.0/src/wasmtime.rs +97 -0
  551. data/ext/cargo-vendor/wiggle-generate-20.0.0/.cargo-checksum.json +1 -0
  552. data/ext/cargo-vendor/wiggle-generate-20.0.0/Cargo.toml +65 -0
  553. data/ext/cargo-vendor/wiggle-macro-20.0.0/.cargo-checksum.json +1 -0
  554. data/ext/cargo-vendor/wiggle-macro-20.0.0/Cargo.toml +55 -0
  555. data/ext/cargo-vendor/wiggle-macro-20.0.0/LICENSE +220 -0
  556. data/ext/cargo-vendor/winch-codegen-0.18.0/.cargo-checksum.json +1 -0
  557. data/ext/cargo-vendor/winch-codegen-0.18.0/Cargo.toml +81 -0
  558. data/ext/cargo-vendor/winch-codegen-0.18.0/src/abi/mod.rs +671 -0
  559. data/ext/cargo-vendor/winch-codegen-0.18.0/src/codegen/bounds.rs +220 -0
  560. data/ext/cargo-vendor/winch-codegen-0.18.0/src/codegen/builtin.rs +263 -0
  561. data/ext/cargo-vendor/winch-codegen-0.18.0/src/codegen/call.rs +413 -0
  562. data/ext/cargo-vendor/winch-codegen-0.18.0/src/codegen/env.rs +435 -0
  563. data/ext/cargo-vendor/winch-codegen-0.18.0/src/codegen/mod.rs +756 -0
  564. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/aarch64/abi.rs +291 -0
  565. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/aarch64/asm.rs +252 -0
  566. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/aarch64/masm.rs +573 -0
  567. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/aarch64/mod.rs +154 -0
  568. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/aarch64/regs.rs +149 -0
  569. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/mod.rs +223 -0
  570. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/x64/abi.rs +517 -0
  571. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/x64/asm.rs +1423 -0
  572. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/x64/masm.rs +1256 -0
  573. data/ext/cargo-vendor/winch-codegen-0.18.0/src/isa/x64/mod.rs +169 -0
  574. data/ext/cargo-vendor/winch-codegen-0.18.0/src/lib.rs +19 -0
  575. data/ext/cargo-vendor/winch-codegen-0.18.0/src/masm.rs +947 -0
  576. data/ext/cargo-vendor/winch-codegen-0.18.0/src/visitor.rs +2149 -0
  577. data/ext/cargo-vendor/wit-parser-0.202.0/.cargo-checksum.json +1 -0
  578. data/ext/cargo-vendor/wit-parser-0.202.0/Cargo.toml +101 -0
  579. data/ext/cargo-vendor/wit-parser-0.202.0/src/abi.rs +309 -0
  580. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast/lex.rs +747 -0
  581. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast/resolve.rs +1443 -0
  582. data/ext/cargo-vendor/wit-parser-0.202.0/src/ast.rs +1348 -0
  583. data/ext/cargo-vendor/wit-parser-0.202.0/src/decoding.rs +1764 -0
  584. data/ext/cargo-vendor/wit-parser-0.202.0/src/lib.rs +765 -0
  585. data/ext/cargo-vendor/wit-parser-0.202.0/src/resolve.rs +2240 -0
  586. data/ext/cargo-vendor/wit-parser-0.202.0/src/serde_.rs +108 -0
  587. data/ext/cargo-vendor/wit-parser-0.202.0/src/sizealign.rs +179 -0
  588. data/ext/cargo-vendor/wit-parser-0.202.0/tests/all.rs +153 -0
  589. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/functions.wit +14 -0
  590. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/functions.wit.json +166 -0
  591. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-multiple.wit +20 -0
  592. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/resources-multiple.wit.json +281 -0
  593. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/types.wit +60 -0
  594. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/types.wit.json +774 -0
  595. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/union-fuzz-2.wit +12 -0
  596. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/union-fuzz-2.wit.json +72 -0
  597. data/ext/cargo-vendor/wit-parser-0.202.0/tests/ui/wasi.wit +178 -0
  598. data/ext/src/ruby_api/convert.rs +15 -7
  599. data/ext/src/ruby_api/func.rs +2 -2
  600. data/ext/src/ruby_api/global.rs +2 -2
  601. data/ext/src/ruby_api/params.rs +5 -5
  602. data/ext/src/ruby_api/table.rs +3 -3
  603. data/lib/wasmtime/version.rb +1 -1
  604. metadata +1737 -1630
  605. data/ext/cargo-vendor/anyhow-1.0.79/.cargo-checksum.json +0 -1
  606. data/ext/cargo-vendor/anyhow-1.0.79/Cargo.toml +0 -67
  607. data/ext/cargo-vendor/anyhow-1.0.79/README.md +0 -179
  608. data/ext/cargo-vendor/anyhow-1.0.79/build.rs +0 -167
  609. data/ext/cargo-vendor/anyhow-1.0.79/src/backtrace.rs +0 -405
  610. data/ext/cargo-vendor/anyhow-1.0.79/src/chain.rs +0 -102
  611. data/ext/cargo-vendor/anyhow-1.0.79/src/fmt.rs +0 -156
  612. data/ext/cargo-vendor/anyhow-1.0.79/src/kind.rs +0 -119
  613. data/ext/cargo-vendor/anyhow-1.0.79/src/lib.rs +0 -698
  614. data/ext/cargo-vendor/anyhow-1.0.79/src/macros.rs +0 -231
  615. data/ext/cargo-vendor/anyhow-1.0.79/src/wrapper.rs +0 -81
  616. data/ext/cargo-vendor/anyhow-1.0.79/tests/test_ensure.rs +0 -722
  617. data/ext/cargo-vendor/anyhow-1.0.79/tests/test_macros.rs +0 -80
  618. data/ext/cargo-vendor/anyhow-1.0.79/tests/test_repr.rs +0 -31
  619. data/ext/cargo-vendor/anyhow-1.0.79/tests/ui/no-impl.stderr +0 -31
  620. data/ext/cargo-vendor/cranelift-bforest-0.106.2/.cargo-checksum.json +0 -1
  621. data/ext/cargo-vendor/cranelift-bforest-0.106.2/Cargo.toml +0 -40
  622. data/ext/cargo-vendor/cranelift-codegen-0.106.2/.cargo-checksum.json +0 -1
  623. data/ext/cargo-vendor/cranelift-codegen-0.106.2/Cargo.toml +0 -175
  624. data/ext/cargo-vendor/cranelift-codegen-0.106.2/build.rs +0 -395
  625. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/alias_analysis.rs +0 -409
  626. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/binemit/mod.rs +0 -171
  627. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/bitset.rs +0 -165
  628. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/context.rs +0 -384
  629. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/egraph/elaborate.rs +0 -836
  630. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/egraph.rs +0 -702
  631. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/inst_predicates.rs +0 -217
  632. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/constant.rs +0 -462
  633. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/dfg.rs +0 -1734
  634. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/entities.rs +0 -598
  635. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/function.rs +0 -500
  636. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/instructions.rs +0 -1000
  637. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/memflags.rs +0 -310
  638. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/mod.rs +0 -110
  639. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/table.rs +0 -40
  640. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/trapcode.rs +0 -144
  641. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/ir/types.rs +0 -629
  642. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/aarch64/abi.rs +0 -1707
  643. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/aarch64/inst/emit.rs +0 -3958
  644. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/aarch64/inst/mod.rs +0 -3082
  645. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/aarch64/inst.isle +0 -4197
  646. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/aarch64/lower/isle.rs +0 -879
  647. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/aarch64/lower.isle +0 -2917
  648. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/aarch64/mod.rs +0 -241
  649. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/aarch64/pcc.rs +0 -565
  650. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/call_conv.rs +0 -119
  651. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/riscv64/abi.rs +0 -1097
  652. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/riscv64/inst/args.rs +0 -1974
  653. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/riscv64/inst/emit.rs +0 -3485
  654. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/riscv64/inst/encode.rs +0 -654
  655. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/riscv64/inst.isle +0 -2928
  656. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/riscv64/lower/isle.rs +0 -620
  657. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/riscv64/lower.isle +0 -2864
  658. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/s390x/abi.rs +0 -1041
  659. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/s390x/inst/args.rs +0 -355
  660. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/s390x/inst/emit.rs +0 -3663
  661. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/s390x/inst.isle +0 -5031
  662. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/s390x/lower.isle +0 -3979
  663. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/abi.rs +0 -1303
  664. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/encoding/evex.rs +0 -749
  665. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/encoding/rex.rs +0 -598
  666. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/encoding/vex.rs +0 -492
  667. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/inst/args.rs +0 -2269
  668. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/inst/emit.rs +0 -4390
  669. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/inst/emit_state.rs +0 -72
  670. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/inst/mod.rs +0 -2852
  671. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/inst.isle +0 -5232
  672. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/lower/isle.rs +0 -1065
  673. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/lower.isle +0 -4770
  674. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/lower.rs +0 -353
  675. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/mod.rs +0 -233
  676. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/isa/x64/pcc.rs +0 -939
  677. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/legalizer/mod.rs +0 -356
  678. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/legalizer/table.rs +0 -114
  679. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/machinst/abi.rs +0 -2657
  680. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/machinst/buffer.rs +0 -2509
  681. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/machinst/inst_common.rs +0 -74
  682. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/machinst/isle.rs +0 -914
  683. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/machinst/lower.rs +0 -1443
  684. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/machinst/mod.rs +0 -558
  685. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/machinst/pcc.rs +0 -159
  686. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/machinst/vcode.rs +0 -1809
  687. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/nan_canonicalization.rs +0 -106
  688. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/opts/cprop.isle +0 -266
  689. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/opts.rs +0 -284
  690. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/prelude.isle +0 -641
  691. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/result.rs +0 -108
  692. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/settings.rs +0 -602
  693. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/verifier/mod.rs +0 -2033
  694. data/ext/cargo-vendor/cranelift-codegen-0.106.2/src/write.rs +0 -647
  695. data/ext/cargo-vendor/cranelift-codegen-meta-0.106.2/.cargo-checksum.json +0 -1
  696. data/ext/cargo-vendor/cranelift-codegen-meta-0.106.2/Cargo.toml +0 -35
  697. data/ext/cargo-vendor/cranelift-codegen-meta-0.106.2/src/shared/entities.rs +0 -106
  698. data/ext/cargo-vendor/cranelift-codegen-meta-0.106.2/src/shared/formats.rs +0 -213
  699. data/ext/cargo-vendor/cranelift-codegen-meta-0.106.2/src/shared/instructions.rs +0 -3810
  700. data/ext/cargo-vendor/cranelift-codegen-shared-0.106.2/.cargo-checksum.json +0 -1
  701. data/ext/cargo-vendor/cranelift-codegen-shared-0.106.2/Cargo.toml +0 -22
  702. data/ext/cargo-vendor/cranelift-control-0.106.2/.cargo-checksum.json +0 -1
  703. data/ext/cargo-vendor/cranelift-control-0.106.2/Cargo.toml +0 -30
  704. data/ext/cargo-vendor/cranelift-entity-0.106.2/.cargo-checksum.json +0 -1
  705. data/ext/cargo-vendor/cranelift-entity-0.106.2/Cargo.toml +0 -50
  706. data/ext/cargo-vendor/cranelift-frontend-0.106.2/.cargo-checksum.json +0 -1
  707. data/ext/cargo-vendor/cranelift-frontend-0.106.2/Cargo.toml +0 -68
  708. data/ext/cargo-vendor/cranelift-isle-0.106.2/.cargo-checksum.json +0 -1
  709. data/ext/cargo-vendor/cranelift-isle-0.106.2/Cargo.toml +0 -46
  710. data/ext/cargo-vendor/cranelift-native-0.106.2/.cargo-checksum.json +0 -1
  711. data/ext/cargo-vendor/cranelift-native-0.106.2/Cargo.toml +0 -43
  712. data/ext/cargo-vendor/cranelift-wasm-0.106.2/.cargo-checksum.json +0 -1
  713. data/ext/cargo-vendor/cranelift-wasm-0.106.2/Cargo.toml +0 -106
  714. data/ext/cargo-vendor/cranelift-wasm-0.106.2/src/code_translator.rs +0 -3680
  715. data/ext/cargo-vendor/cranelift-wasm-0.106.2/src/environ/dummy.rs +0 -952
  716. data/ext/cargo-vendor/cranelift-wasm-0.106.2/src/environ/mod.rs +0 -12
  717. data/ext/cargo-vendor/cranelift-wasm-0.106.2/src/environ/spec.rs +0 -952
  718. data/ext/cargo-vendor/cranelift-wasm-0.106.2/src/func_translator.rs +0 -432
  719. data/ext/cargo-vendor/cranelift-wasm-0.106.2/src/lib.rs +0 -62
  720. data/ext/cargo-vendor/cranelift-wasm-0.106.2/src/state.rs +0 -542
  721. data/ext/cargo-vendor/cranelift-wasm-0.106.2/tests/wasm_testsuite.rs +0 -153
  722. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/arith.wat +0 -13
  723. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/br_table.wat +0 -30
  724. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/call-simd.wat +0 -14
  725. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/call.wat +0 -10
  726. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/embenchen_fannkuch.wat +0 -12180
  727. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/embenchen_fasta.wat +0 -12056
  728. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/embenchen_ifs.wat +0 -11505
  729. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/embenchen_primes.wat +0 -11185
  730. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/fac-multi-value.wat +0 -19
  731. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/fibonacci.wat +0 -22
  732. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/globals.wat +0 -8
  733. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/icall-simd.wat +0 -7
  734. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/icall.wat +0 -7
  735. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-reachability-translation-0.wat +0 -12
  736. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-reachability-translation-1.wat +0 -12
  737. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-reachability-translation-2.wat +0 -12
  738. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-reachability-translation-3.wat +0 -12
  739. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-reachability-translation-4.wat +0 -12
  740. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-reachability-translation-5.wat +0 -14
  741. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-reachability-translation-6.wat +0 -14
  742. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-unreachable-else-params-2.wat +0 -18
  743. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/if-unreachable-else-params.wat +0 -41
  744. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  745. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/memory.wat +0 -11
  746. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-0.wat +0 -3
  747. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-1.wat +0 -6
  748. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-10.wat +0 -10
  749. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-11.wat +0 -7
  750. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-12.wat +0 -9
  751. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-13.wat +0 -10
  752. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-14.wat +0 -10
  753. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-15.wat +0 -22
  754. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-16.wat +0 -9
  755. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-17.wat +0 -26
  756. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-2.wat +0 -6
  757. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-3.wat +0 -13
  758. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-4.wat +0 -13
  759. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-5.wat +0 -11
  760. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-6.wat +0 -11
  761. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-7.wat +0 -9
  762. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-8.wat +0 -12
  763. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/multi-9.wat +0 -15
  764. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/nullref.wat +0 -11
  765. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/passive-data.wat +0 -12
  766. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/pr2303.wat +0 -15
  767. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/pr2559.wat +0 -51
  768. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/ref-func-0.wat +0 -12
  769. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/rust_fannkuch.wat +0 -1723
  770. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/select.wat +0 -19
  771. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/simd-store.wat +0 -83
  772. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/simd.wat +0 -29
  773. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/table-copy.wat +0 -22
  774. data/ext/cargo-vendor/cranelift-wasm-0.106.2/wasmtests/unreachable_code.wat +0 -77
  775. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.20/.cargo-checksum.json +0 -1
  776. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.20/Cargo.toml +0 -49
  777. data/ext/cargo-vendor/mach-0.3.2/.cargo-checksum.json +0 -1
  778. data/ext/cargo-vendor/mach-0.3.2/Cargo.toml +0 -46
  779. data/ext/cargo-vendor/mach-0.3.2/LICENSE.md +0 -23
  780. data/ext/cargo-vendor/mach-0.3.2/README.md +0 -55
  781. data/ext/cargo-vendor/mach-0.3.2/ci/build_fail.sh +0 -7
  782. data/ext/cargo-vendor/mach-0.3.2/ci/deploy_and_run_on_ios_simulator.rs +0 -175
  783. data/ext/cargo-vendor/mach-0.3.2/ci/run.sh +0 -57
  784. data/ext/cargo-vendor/mach-0.3.2/examples/dump_process_registers.rs +0 -136
  785. data/ext/cargo-vendor/mach-0.3.2/src/exc.rs +0 -44
  786. data/ext/cargo-vendor/mach-0.3.2/src/kern_return.rs +0 -58
  787. data/ext/cargo-vendor/mach-0.3.2/src/lib.rs +0 -60
  788. data/ext/cargo-vendor/mach-0.3.2/src/mach_port.rs +0 -29
  789. data/ext/cargo-vendor/mach-0.3.2/src/message.rs +0 -248
  790. data/ext/cargo-vendor/mach-0.3.2/src/port.rs +0 -26
  791. data/ext/cargo-vendor/mach-0.3.2/src/structs.rs +0 -62
  792. data/ext/cargo-vendor/mach-0.3.2/src/task.rs +0 -41
  793. data/ext/cargo-vendor/mach-0.3.2/src/task_info.rs +0 -44
  794. data/ext/cargo-vendor/mach-0.3.2/src/thread_act.rs +0 -23
  795. data/ext/cargo-vendor/mach-0.3.2/src/thread_status.rs +0 -23
  796. data/ext/cargo-vendor/mach-0.3.2/src/traps.rs +0 -35
  797. data/ext/cargo-vendor/mach-0.3.2/src/vm.rs +0 -247
  798. data/ext/cargo-vendor/mach-0.3.2/src/vm_attributes.rs +0 -18
  799. data/ext/cargo-vendor/mach-0.3.2/src/vm_page_size.rs +0 -33
  800. data/ext/cargo-vendor/mach-0.3.2/src/vm_prot.rs +0 -14
  801. data/ext/cargo-vendor/mach-0.3.2/src/vm_purgable.rs +0 -42
  802. data/ext/cargo-vendor/mach-0.3.2/src/vm_region.rs +0 -238
  803. data/ext/cargo-vendor/mach-0.3.2/src/vm_statistics.rs +0 -78
  804. data/ext/cargo-vendor/mach-0.3.2/src/vm_sync.rs +0 -11
  805. data/ext/cargo-vendor/mach-0.3.2/src/vm_types.rs +0 -19
  806. data/ext/cargo-vendor/wasi-common-19.0.2/.cargo-checksum.json +0 -1
  807. data/ext/cargo-vendor/wasi-common-19.0.2/Cargo.toml +0 -221
  808. data/ext/cargo-vendor/wasi-common-19.0.2/src/ctx.rs +0 -128
  809. data/ext/cargo-vendor/wasi-common-19.0.2/src/lib.rs +0 -189
  810. data/ext/cargo-vendor/wasi-common-19.0.2/src/snapshots/preview_1.rs +0 -1491
  811. data/ext/cargo-vendor/wasi-common-19.0.2/tests/all/async_.rs +0 -289
  812. data/ext/cargo-vendor/wasi-common-19.0.2/tests/all/sync.rs +0 -275
  813. data/ext/cargo-vendor/wasm-encoder-0.201.0/.cargo-checksum.json +0 -1
  814. data/ext/cargo-vendor/wasm-encoder-0.201.0/Cargo.toml +0 -43
  815. data/ext/cargo-vendor/wasm-encoder-0.201.0/src/component/types.rs +0 -792
  816. data/ext/cargo-vendor/wasmparser-0.201.0/.cargo-checksum.json +0 -1
  817. data/ext/cargo-vendor/wasmparser-0.201.0/Cargo.lock +0 -744
  818. data/ext/cargo-vendor/wasmparser-0.201.0/Cargo.toml +0 -66
  819. data/ext/cargo-vendor/wasmparser-0.201.0/src/readers/component/types.rs +0 -549
  820. data/ext/cargo-vendor/wasmparser-0.201.0/src/validator/operators.rs +0 -4074
  821. data/ext/cargo-vendor/wasmparser-0.201.0/src/validator/types.rs +0 -4449
  822. data/ext/cargo-vendor/wasmprinter-0.201.0/.cargo-checksum.json +0 -1
  823. data/ext/cargo-vendor/wasmprinter-0.201.0/Cargo.toml +0 -45
  824. data/ext/cargo-vendor/wasmprinter-0.201.0/src/lib.rs +0 -3143
  825. data/ext/cargo-vendor/wasmprinter-0.201.0/src/operator.rs +0 -1110
  826. data/ext/cargo-vendor/wasmprinter-0.201.0/tests/all.rs +0 -279
  827. data/ext/cargo-vendor/wasmtime-19.0.2/.cargo-checksum.json +0 -1
  828. data/ext/cargo-vendor/wasmtime-19.0.2/Cargo.toml +0 -261
  829. data/ext/cargo-vendor/wasmtime-19.0.2/src/compile.rs +0 -835
  830. data/ext/cargo-vendor/wasmtime-19.0.2/src/config.rs +0 -2649
  831. data/ext/cargo-vendor/wasmtime-19.0.2/src/engine/serialization.rs +0 -809
  832. data/ext/cargo-vendor/wasmtime-19.0.2/src/engine.rs +0 -735
  833. data/ext/cargo-vendor/wasmtime-19.0.2/src/lib.rs +0 -293
  834. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/code_memory.rs +0 -335
  835. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/component.rs +0 -586
  836. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/func/host.rs +0 -456
  837. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/func/options.rs +0 -541
  838. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/func/typed.rs +0 -2484
  839. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/func.rs +0 -752
  840. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/instance.rs +0 -818
  841. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/linker.rs +0 -788
  842. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/matching.rs +0 -212
  843. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/mod.rs +0 -678
  844. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/resources.rs +0 -1169
  845. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/types.rs +0 -961
  846. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/component/values.rs +0 -1388
  847. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/coredump.rs +0 -321
  848. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/externals/global.rs +0 -249
  849. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/externals/table.rs +0 -416
  850. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/func/typed.rs +0 -985
  851. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/func.rs +0 -2585
  852. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/instance.rs +0 -981
  853. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/instantiate.rs +0 -423
  854. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/linker.rs +0 -1518
  855. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/memory.rs +0 -997
  856. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/module/registry.rs +0 -360
  857. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/module.rs +0 -1367
  858. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/profiling.rs +0 -222
  859. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/ref/gc_ref.rs +0 -110
  860. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/ref/no_gc_ref.rs +0 -60
  861. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/ref.rs +0 -9
  862. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/store/data.rs +0 -289
  863. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/store.rs +0 -2445
  864. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/trampoline/func.rs +0 -144
  865. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/trampoline/global.rs +0 -70
  866. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/trampoline/memory.rs +0 -268
  867. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/trampoline/table.rs +0 -20
  868. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/trap.rs +0 -641
  869. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/type_registry.rs +0 -640
  870. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/types/matching.rs +0 -334
  871. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/types.rs +0 -1236
  872. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/v128.rs +0 -131
  873. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime/values.rs +0 -771
  874. data/ext/cargo-vendor/wasmtime-19.0.2/src/runtime.rs +0 -112
  875. data/ext/cargo-vendor/wasmtime-asm-macros-19.0.2/.cargo-checksum.json +0 -1
  876. data/ext/cargo-vendor/wasmtime-asm-macros-19.0.2/Cargo.toml +0 -22
  877. data/ext/cargo-vendor/wasmtime-cache-19.0.2/.cargo-checksum.json +0 -1
  878. data/ext/cargo-vendor/wasmtime-cache-19.0.2/Cargo.toml +0 -81
  879. data/ext/cargo-vendor/wasmtime-component-macro-19.0.2/.cargo-checksum.json +0 -1
  880. data/ext/cargo-vendor/wasmtime-component-macro-19.0.2/Cargo.toml +0 -67
  881. data/ext/cargo-vendor/wasmtime-component-macro-19.0.2/src/component.rs +0 -1295
  882. data/ext/cargo-vendor/wasmtime-component-macro-19.0.2/tests/codegen.rs +0 -191
  883. data/ext/cargo-vendor/wasmtime-component-util-19.0.2/.cargo-checksum.json +0 -1
  884. data/ext/cargo-vendor/wasmtime-component-util-19.0.2/Cargo.toml +0 -25
  885. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/.cargo-checksum.json +0 -1
  886. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/Cargo.toml +0 -114
  887. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/src/builder.rs +0 -127
  888. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/src/compiler/component.rs +0 -960
  889. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/src/compiler.rs +0 -1316
  890. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/src/debug/transform/address_transform.rs +0 -784
  891. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/src/debug/transform/expression.rs +0 -1252
  892. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/src/func_environ.rs +0 -2846
  893. data/ext/cargo-vendor/wasmtime-cranelift-19.0.2/src/lib.rs +0 -186
  894. data/ext/cargo-vendor/wasmtime-cranelift-shared-19.0.2/.cargo-checksum.json +0 -1
  895. data/ext/cargo-vendor/wasmtime-cranelift-shared-19.0.2/Cargo.toml +0 -71
  896. data/ext/cargo-vendor/wasmtime-cranelift-shared-19.0.2/src/compiled_function.rs +0 -231
  897. data/ext/cargo-vendor/wasmtime-cranelift-shared-19.0.2/src/lib.rs +0 -130
  898. data/ext/cargo-vendor/wasmtime-cranelift-shared-19.0.2/src/obj.rs +0 -564
  899. data/ext/cargo-vendor/wasmtime-environ-19.0.2/.cargo-checksum.json +0 -1
  900. data/ext/cargo-vendor/wasmtime-environ-19.0.2/Cargo.lock +0 -782
  901. data/ext/cargo-vendor/wasmtime-environ-19.0.2/Cargo.toml +0 -141
  902. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/address_map.rs +0 -191
  903. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/builtin.rs +0 -155
  904. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/compilation.rs +0 -402
  905. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/component/artifacts.rs +0 -45
  906. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/component/compiler.rs +0 -47
  907. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/component/info.rs +0 -594
  908. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/component/translate/adapt.rs +0 -457
  909. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/component/translate/inline.rs +0 -1332
  910. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/component/types.rs +0 -1933
  911. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/component.rs +0 -97
  912. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/fact/trampoline.rs +0 -3229
  913. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/fact/transcode.rs +0 -168
  914. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/fact.rs +0 -713
  915. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/lib.rs +0 -66
  916. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/module.rs +0 -1117
  917. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/module_artifacts.rs +0 -377
  918. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/module_environ.rs +0 -903
  919. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/obj.rs +0 -172
  920. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/trap_encoding.rs +0 -245
  921. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/tunables.rs +0 -154
  922. data/ext/cargo-vendor/wasmtime-environ-19.0.2/src/vmoffsets.rs +0 -918
  923. data/ext/cargo-vendor/wasmtime-fiber-19.0.2/.cargo-checksum.json +0 -1
  924. data/ext/cargo-vendor/wasmtime-fiber-19.0.2/Cargo.toml +0 -63
  925. data/ext/cargo-vendor/wasmtime-fiber-19.0.2/src/unix.rs +0 -265
  926. data/ext/cargo-vendor/wasmtime-jit-debug-19.0.2/.cargo-checksum.json +0 -1
  927. data/ext/cargo-vendor/wasmtime-jit-debug-19.0.2/Cargo.toml +0 -67
  928. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-19.0.2/.cargo-checksum.json +0 -1
  929. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-19.0.2/Cargo.toml +0 -46
  930. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/.cargo-checksum.json +0 -1
  931. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/Cargo.toml +0 -140
  932. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/build.rs +0 -28
  933. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/arch/aarch64.rs +0 -120
  934. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/arch/riscv64.rs +0 -88
  935. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/arch/s390x.S +0 -70
  936. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/arch/s390x.rs +0 -61
  937. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/arch/x86_64.rs +0 -104
  938. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/component/libcalls.rs +0 -572
  939. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/component.rs +0 -864
  940. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/export.rs +0 -105
  941. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/externref/gc.rs +0 -1058
  942. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/externref/no_gc.rs +0 -125
  943. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/externref.rs +0 -24
  944. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/instance/allocator/on_demand.rs +0 -196
  945. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/instance/allocator/pooling/table_pool.rs +0 -227
  946. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/instance/allocator/pooling.rs +0 -658
  947. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/instance/allocator.rs +0 -730
  948. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/instance.rs +0 -1527
  949. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/lib.rs +0 -264
  950. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/libcalls.rs +0 -776
  951. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/memory.rs +0 -972
  952. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/send_sync_ptr.rs +0 -93
  953. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/sys/custom/mmap.rs +0 -111
  954. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/sys/custom/traphandlers.rs +0 -51
  955. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/sys/miri/mmap.rs +0 -94
  956. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/sys/unix/machports.rs +0 -488
  957. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/sys/unix/mmap.rs +0 -151
  958. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/sys/unix/signals.rs +0 -402
  959. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/sys/windows/traphandlers.rs +0 -105
  960. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/table.rs +0 -643
  961. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/traphandlers/coredump.rs +0 -38
  962. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/traphandlers.rs +0 -736
  963. data/ext/cargo-vendor/wasmtime-runtime-19.0.2/src/vmcontext.rs +0 -1215
  964. data/ext/cargo-vendor/wasmtime-slab-19.0.2/.cargo-checksum.json +0 -1
  965. data/ext/cargo-vendor/wasmtime-slab-19.0.2/Cargo.toml +0 -21
  966. data/ext/cargo-vendor/wasmtime-slab-19.0.2/src/lib.rs +0 -450
  967. data/ext/cargo-vendor/wasmtime-types-19.0.2/.cargo-checksum.json +0 -1
  968. data/ext/cargo-vendor/wasmtime-types-19.0.2/Cargo.toml +0 -36
  969. data/ext/cargo-vendor/wasmtime-types-19.0.2/src/lib.rs +0 -640
  970. data/ext/cargo-vendor/wasmtime-versioned-export-macros-19.0.2/.cargo-checksum.json +0 -1
  971. data/ext/cargo-vendor/wasmtime-versioned-export-macros-19.0.2/Cargo.toml +0 -32
  972. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/.cargo-checksum.json +0 -1
  973. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/Cargo.toml +0 -194
  974. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/command.rs +0 -122
  975. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/ctx.rs +0 -353
  976. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/filesystem.rs +0 -373
  977. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/host/filesystem/sync.rs +0 -517
  978. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/host/filesystem.rs +0 -1081
  979. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/host/io.rs +0 -366
  980. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/host/network.rs +0 -519
  981. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/host/tcp.rs +0 -677
  982. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/ip_name_lookup.rs +0 -123
  983. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/lib.rs +0 -323
  984. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/network.rs +0 -108
  985. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/p1ctx.rs +0 -37
  986. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/pipe.rs +0 -826
  987. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/poll.rs +0 -179
  988. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/preview0.rs +0 -872
  989. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/preview1.rs +0 -2361
  990. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/stdio/worker_thread_stdin.rs +0 -173
  991. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/stdio.rs +0 -443
  992. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/tcp.rs +0 -350
  993. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/udp.rs +0 -125
  994. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/src/write_stream.rs +0 -203
  995. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/tests/all/api.rs +0 -210
  996. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/tests/all/async_.rs +0 -380
  997. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/tests/all/main.rs +0 -106
  998. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/tests/all/preview1.rs +0 -243
  999. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/tests/all/sync.rs +0 -315
  1000. data/ext/cargo-vendor/wasmtime-wasi-19.0.2/wit/deps/io/poll.wit +0 -42
  1001. data/ext/cargo-vendor/wasmtime-winch-19.0.2/.cargo-checksum.json +0 -1
  1002. data/ext/cargo-vendor/wasmtime-winch-19.0.2/Cargo.toml +0 -77
  1003. data/ext/cargo-vendor/wasmtime-winch-19.0.2/src/builder.rs +0 -65
  1004. data/ext/cargo-vendor/wasmtime-winch-19.0.2/src/compiler.rs +0 -283
  1005. data/ext/cargo-vendor/wasmtime-wit-bindgen-19.0.2/.cargo-checksum.json +0 -1
  1006. data/ext/cargo-vendor/wasmtime-wit-bindgen-19.0.2/Cargo.toml +0 -41
  1007. data/ext/cargo-vendor/wasmtime-wit-bindgen-19.0.2/src/lib.rs +0 -2104
  1008. data/ext/cargo-vendor/wasmtime-wit-bindgen-19.0.2/src/rust.rs +0 -421
  1009. data/ext/cargo-vendor/wasmtime-wit-bindgen-19.0.2/src/types.rs +0 -194
  1010. data/ext/cargo-vendor/wasmtime-wmemcheck-19.0.2/.cargo-checksum.json +0 -1
  1011. data/ext/cargo-vendor/wasmtime-wmemcheck-19.0.2/Cargo.toml +0 -29
  1012. data/ext/cargo-vendor/wasmtime-wmemcheck-19.0.2/src/lib.rs +0 -404
  1013. data/ext/cargo-vendor/wast-201.0.0/.cargo-checksum.json +0 -1
  1014. data/ext/cargo-vendor/wast-201.0.0/Cargo.toml +0 -59
  1015. data/ext/cargo-vendor/wast-201.0.0/src/component/binary.rs +0 -1004
  1016. data/ext/cargo-vendor/wast-201.0.0/src/component/resolve.rs +0 -1006
  1017. data/ext/cargo-vendor/wast-201.0.0/src/component/types.rs +0 -991
  1018. data/ext/cargo-vendor/wast-201.0.0/src/component/wast.rs +0 -160
  1019. data/ext/cargo-vendor/wast-201.0.0/src/core/binary.rs +0 -1365
  1020. data/ext/cargo-vendor/wast-201.0.0/src/core/expr.rs +0 -1993
  1021. data/ext/cargo-vendor/wast-201.0.0/src/core/func.rs +0 -136
  1022. data/ext/cargo-vendor/wast-201.0.0/src/core/memory.rs +0 -281
  1023. data/ext/cargo-vendor/wast-201.0.0/src/core/resolve/deinline_import_export.rs +0 -233
  1024. data/ext/cargo-vendor/wast-201.0.0/src/core/resolve/names.rs +0 -763
  1025. data/ext/cargo-vendor/wast-201.0.0/src/core/resolve/types.rs +0 -271
  1026. data/ext/cargo-vendor/wast-201.0.0/src/core/table.rs +0 -289
  1027. data/ext/cargo-vendor/wast-201.0.0/src/core/types.rs +0 -861
  1028. data/ext/cargo-vendor/wast-201.0.0/src/core/wast.rs +0 -256
  1029. data/ext/cargo-vendor/wast-201.0.0/src/lib.rs +0 -542
  1030. data/ext/cargo-vendor/wast-201.0.0/src/names.rs +0 -89
  1031. data/ext/cargo-vendor/wast-201.0.0/src/parser.rs +0 -1374
  1032. data/ext/cargo-vendor/wast-201.0.0/src/token.rs +0 -718
  1033. data/ext/cargo-vendor/wast-201.0.0/src/wast.rs +0 -420
  1034. data/ext/cargo-vendor/wast-201.0.0/src/wat.rs +0 -63
  1035. data/ext/cargo-vendor/wast-201.0.0/tests/annotations.rs +0 -200
  1036. data/ext/cargo-vendor/wast-201.0.0/tests/parse-fail.rs +0 -98
  1037. data/ext/cargo-vendor/wat-1.201.0/.cargo-checksum.json +0 -1
  1038. data/ext/cargo-vendor/wat-1.201.0/Cargo.toml +0 -33
  1039. data/ext/cargo-vendor/wiggle-19.0.2/.cargo-checksum.json +0 -1
  1040. data/ext/cargo-vendor/wiggle-19.0.2/Cargo.toml +0 -122
  1041. data/ext/cargo-vendor/wiggle-19.0.2/src/borrow.rs +0 -259
  1042. data/ext/cargo-vendor/wiggle-19.0.2/src/guest_type.rs +0 -237
  1043. data/ext/cargo-vendor/wiggle-19.0.2/src/lib.rs +0 -1199
  1044. data/ext/cargo-vendor/wiggle-19.0.2/src/wasmtime.rs +0 -101
  1045. data/ext/cargo-vendor/wiggle-generate-19.0.2/.cargo-checksum.json +0 -1
  1046. data/ext/cargo-vendor/wiggle-generate-19.0.2/Cargo.toml +0 -65
  1047. data/ext/cargo-vendor/wiggle-macro-19.0.2/.cargo-checksum.json +0 -1
  1048. data/ext/cargo-vendor/wiggle-macro-19.0.2/Cargo.toml +0 -55
  1049. data/ext/cargo-vendor/winch-codegen-0.17.2/.cargo-checksum.json +0 -1
  1050. data/ext/cargo-vendor/winch-codegen-0.17.2/Cargo.toml +0 -77
  1051. data/ext/cargo-vendor/winch-codegen-0.17.2/src/abi/mod.rs +0 -737
  1052. data/ext/cargo-vendor/winch-codegen-0.17.2/src/codegen/bounds.rs +0 -220
  1053. data/ext/cargo-vendor/winch-codegen-0.17.2/src/codegen/builtin.rs +0 -272
  1054. data/ext/cargo-vendor/winch-codegen-0.17.2/src/codegen/call.rs +0 -413
  1055. data/ext/cargo-vendor/winch-codegen-0.17.2/src/codegen/env.rs +0 -399
  1056. data/ext/cargo-vendor/winch-codegen-0.17.2/src/codegen/mod.rs +0 -672
  1057. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/aarch64/abi.rs +0 -309
  1058. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/aarch64/asm.rs +0 -247
  1059. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/aarch64/masm.rs +0 -557
  1060. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/aarch64/mod.rs +0 -152
  1061. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/aarch64/regs.rs +0 -183
  1062. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/mod.rs +0 -232
  1063. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/x64/abi.rs +0 -543
  1064. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/x64/asm.rs +0 -1418
  1065. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/x64/masm.rs +0 -1300
  1066. data/ext/cargo-vendor/winch-codegen-0.17.2/src/isa/x64/mod.rs +0 -192
  1067. data/ext/cargo-vendor/winch-codegen-0.17.2/src/lib.rs +0 -21
  1068. data/ext/cargo-vendor/winch-codegen-0.17.2/src/masm.rs +0 -955
  1069. data/ext/cargo-vendor/winch-codegen-0.17.2/src/trampoline.rs +0 -626
  1070. data/ext/cargo-vendor/winch-codegen-0.17.2/src/visitor.rs +0 -2101
  1071. data/ext/cargo-vendor/wit-parser-0.201.0/.cargo-checksum.json +0 -1
  1072. data/ext/cargo-vendor/wit-parser-0.201.0/Cargo.toml +0 -101
  1073. data/ext/cargo-vendor/wit-parser-0.201.0/src/abi.rs +0 -295
  1074. data/ext/cargo-vendor/wit-parser-0.201.0/src/ast/lex.rs +0 -747
  1075. data/ext/cargo-vendor/wit-parser-0.201.0/src/ast/resolve.rs +0 -1427
  1076. data/ext/cargo-vendor/wit-parser-0.201.0/src/ast.rs +0 -1348
  1077. data/ext/cargo-vendor/wit-parser-0.201.0/src/decoding.rs +0 -1764
  1078. data/ext/cargo-vendor/wit-parser-0.201.0/src/lib.rs +0 -747
  1079. data/ext/cargo-vendor/wit-parser-0.201.0/src/resolve.rs +0 -2239
  1080. data/ext/cargo-vendor/wit-parser-0.201.0/src/serde_.rs +0 -108
  1081. data/ext/cargo-vendor/wit-parser-0.201.0/src/sizealign.rs +0 -144
  1082. data/ext/cargo-vendor/wit-parser-0.201.0/tests/all.rs +0 -185
  1083. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/functions.wit +0 -14
  1084. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/functions.wit.json +0 -166
  1085. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/resources-multiple.wit +0 -20
  1086. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/resources-multiple.wit.json +0 -281
  1087. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/types.wit +0 -60
  1088. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/types.wit.json +0 -774
  1089. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/union-fuzz-2.wit +0 -12
  1090. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/union-fuzz-2.wit.json +0 -72
  1091. data/ext/cargo-vendor/wit-parser-0.201.0/tests/ui/wasi.wit +0 -178
  1092. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/LICENSE-APACHE +0 -0
  1093. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/LICENSE-MIT +0 -0
  1094. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/build/probe.rs +0 -0
  1095. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/rust-toolchain.toml +0 -0
  1096. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/src/context.rs +0 -0
  1097. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/src/ensure.rs +0 -0
  1098. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/src/error.rs +0 -0
  1099. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/src/ptr.rs +0 -0
  1100. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/common/mod.rs +0 -0
  1101. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/compiletest.rs +0 -0
  1102. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/drop/mod.rs +0 -0
  1103. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_autotrait.rs +0 -0
  1104. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_backtrace.rs +0 -0
  1105. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_boxed.rs +0 -0
  1106. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_chain.rs +0 -0
  1107. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_context.rs +0 -0
  1108. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_convert.rs +0 -0
  1109. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_downcast.rs +0 -0
  1110. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_ffi.rs +0 -0
  1111. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_fmt.rs +0 -0
  1112. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/test_source.rs +0 -0
  1113. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/chained-comparison.rs +0 -0
  1114. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/chained-comparison.stderr +0 -0
  1115. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/empty-ensure.rs +0 -0
  1116. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/empty-ensure.stderr +0 -0
  1117. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/must-use.rs +0 -0
  1118. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/must-use.stderr +0 -0
  1119. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/no-impl.rs +0 -0
  1120. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/temporary-value.rs +0 -0
  1121. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/temporary-value.stderr +0 -0
  1122. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/wrong-interpolation.rs +0 -0
  1123. /data/ext/cargo-vendor/{anyhow-1.0.79 → anyhow-1.0.83}/tests/ui/wrong-interpolation.stderr +0 -0
  1124. /data/ext/cargo-vendor/{cranelift-bforest-0.106.2 → cranelift-bforest-0.107.2}/LICENSE +0 -0
  1125. /data/ext/cargo-vendor/{cranelift-bforest-0.106.2 → cranelift-bforest-0.107.2}/README.md +0 -0
  1126. /data/ext/cargo-vendor/{cranelift-bforest-0.106.2 → cranelift-bforest-0.107.2}/src/lib.rs +0 -0
  1127. /data/ext/cargo-vendor/{cranelift-bforest-0.106.2 → cranelift-bforest-0.107.2}/src/map.rs +0 -0
  1128. /data/ext/cargo-vendor/{cranelift-bforest-0.106.2 → cranelift-bforest-0.107.2}/src/node.rs +0 -0
  1129. /data/ext/cargo-vendor/{cranelift-bforest-0.106.2 → cranelift-bforest-0.107.2}/src/path.rs +0 -0
  1130. /data/ext/cargo-vendor/{cranelift-bforest-0.106.2 → cranelift-bforest-0.107.2}/src/pool.rs +0 -0
  1131. /data/ext/cargo-vendor/{cranelift-bforest-0.106.2 → cranelift-bforest-0.107.2}/src/set.rs +0 -0
  1132. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/LICENSE +0 -0
  1133. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/README.md +0 -0
  1134. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/benches/x64-evex-encoding.rs +0 -0
  1135. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/binemit/stack_map.rs +0 -0
  1136. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/cfg_printer.rs +0 -0
  1137. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/constant_hash.rs +0 -0
  1138. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ctxhash.rs +0 -0
  1139. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/cursor.rs +0 -0
  1140. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/data_value.rs +0 -0
  1141. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/dbg.rs +0 -0
  1142. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/dce.rs +0 -0
  1143. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/dominator_tree.rs +0 -0
  1144. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/egraph/cost.rs +0 -0
  1145. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/flowgraph.rs +0 -0
  1146. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/fx.rs +0 -0
  1147. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/incremental_cache.rs +0 -0
  1148. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/atomic_rmw_op.rs +0 -0
  1149. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/builder.rs +0 -0
  1150. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/condcodes.rs +0 -0
  1151. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/dynamic_type.rs +0 -0
  1152. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/extfunc.rs +0 -0
  1153. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/extname.rs +0 -0
  1154. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/globalvalue.rs +0 -0
  1155. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/immediates.rs +0 -0
  1156. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/jumptable.rs +0 -0
  1157. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/known_symbol.rs +0 -0
  1158. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/layout.rs +0 -0
  1159. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/libcall.rs +0 -0
  1160. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/memtype.rs +0 -0
  1161. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/pcc.rs +0 -0
  1162. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/progpoint.rs +0 -0
  1163. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/sourceloc.rs +0 -0
  1164. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/ir/stackslot.rs +0 -0
  1165. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/inst/args.rs +0 -0
  1166. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  1167. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/inst/imms.rs +0 -0
  1168. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/inst/regs.rs +0 -0
  1169. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  1170. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/inst/unwind.rs +0 -0
  1171. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/inst_neon.isle +0 -0
  1172. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  1173. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/lower.rs +0 -0
  1174. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  1175. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/aarch64/settings.rs +0 -0
  1176. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/mod.rs +0 -0
  1177. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  1178. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/inst/imms.rs +0 -0
  1179. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/inst/mod.rs +0 -0
  1180. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/inst/regs.rs +0 -0
  1181. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  1182. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/inst/unwind.rs +0 -0
  1183. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/inst/vector.rs +0 -0
  1184. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/inst_vector.isle +0 -0
  1185. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  1186. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/lower.rs +0 -0
  1187. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/mod.rs +0 -0
  1188. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/riscv64/settings.rs +0 -0
  1189. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/inst/emit_tests.rs +0 -0
  1190. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/inst/imms.rs +0 -0
  1191. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/inst/mod.rs +0 -0
  1192. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/inst/regs.rs +0 -0
  1193. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  1194. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/inst/unwind.rs +0 -0
  1195. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  1196. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/lower/isle.rs +0 -0
  1197. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/lower.rs +0 -0
  1198. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/mod.rs +0 -0
  1199. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/s390x/settings.rs +0 -0
  1200. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/unwind/systemv.rs +0 -0
  1201. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/unwind/winx64.rs +0 -0
  1202. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/unwind.rs +0 -0
  1203. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/x64/encoding/mod.rs +0 -0
  1204. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/x64/inst/emit_tests.rs +0 -0
  1205. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/x64/inst/regs.rs +0 -0
  1206. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  1207. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  1208. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/x64/inst/unwind.rs +0 -0
  1209. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  1210. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isa/x64/settings.rs +0 -0
  1211. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/isle_prelude.rs +0 -0
  1212. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/iterators.rs +0 -0
  1213. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/legalizer/globalvalue.rs +0 -0
  1214. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/lib.rs +0 -0
  1215. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/loop_analysis.rs +0 -0
  1216. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/machinst/blockorder.rs +0 -0
  1217. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/machinst/compile.rs +0 -0
  1218. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/machinst/helpers.rs +0 -0
  1219. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/machinst/reg.rs +0 -0
  1220. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/machinst/valueregs.rs +0 -0
  1221. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/README.md +0 -0
  1222. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/arithmetic.isle +0 -0
  1223. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/bitops.isle +0 -0
  1224. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/extends.isle +0 -0
  1225. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/generated_code.rs +0 -0
  1226. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/icmp.isle +0 -0
  1227. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/remat.isle +0 -0
  1228. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/selects.isle +0 -0
  1229. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/shifts.isle +0 -0
  1230. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/spaceship.isle +0 -0
  1231. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/opts/vector.isle +0 -0
  1232. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/prelude_lower.isle +0 -0
  1233. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/prelude_opt.isle +0 -0
  1234. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/print_errors.rs +0 -0
  1235. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/remove_constant_phis.rs +0 -0
  1236. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/scoped_hash_map.rs +0 -0
  1237. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/souper_harvest.rs +0 -0
  1238. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/timing.rs +0 -0
  1239. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/unionfind.rs +0 -0
  1240. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/unreachable_code.rs +0 -0
  1241. /data/ext/cargo-vendor/{cranelift-codegen-0.106.2 → cranelift-codegen-0.107.2}/src/value_label.rs +0 -0
  1242. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/LICENSE +0 -0
  1243. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/README.md +0 -0
  1244. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/cdsl/formats.rs +0 -0
  1245. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/cdsl/instructions.rs +0 -0
  1246. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/cdsl/isa.rs +0 -0
  1247. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/cdsl/mod.rs +0 -0
  1248. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/cdsl/operands.rs +0 -0
  1249. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/cdsl/settings.rs +0 -0
  1250. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/cdsl/types.rs +0 -0
  1251. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/cdsl/typevar.rs +0 -0
  1252. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/constant_hash.rs +0 -0
  1253. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/error.rs +0 -0
  1254. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/gen_inst.rs +0 -0
  1255. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/gen_settings.rs +0 -0
  1256. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/gen_types.rs +0 -0
  1257. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/isa/arm64.rs +0 -0
  1258. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/isa/mod.rs +0 -0
  1259. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/isa/riscv64.rs +0 -0
  1260. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/isa/s390x.rs +0 -0
  1261. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/isa/x86.rs +0 -0
  1262. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/lib.rs +0 -0
  1263. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/shared/immediates.rs +0 -0
  1264. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/shared/mod.rs +0 -0
  1265. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/shared/settings.rs +0 -0
  1266. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/shared/types.rs +0 -0
  1267. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/srcgen.rs +0 -0
  1268. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.106.2 → cranelift-codegen-meta-0.107.2}/src/unique_table.rs +0 -0
  1269. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.106.2 → cranelift-codegen-shared-0.107.2}/LICENSE +0 -0
  1270. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.106.2 → cranelift-codegen-shared-0.107.2}/README.md +0 -0
  1271. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.106.2 → cranelift-codegen-shared-0.107.2}/src/constant_hash.rs +0 -0
  1272. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.106.2 → cranelift-codegen-shared-0.107.2}/src/constants.rs +0 -0
  1273. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.106.2 → cranelift-codegen-shared-0.107.2}/src/lib.rs +0 -0
  1274. /data/ext/cargo-vendor/{cranelift-control-0.106.2 → cranelift-control-0.107.2}/LICENSE +0 -0
  1275. /data/ext/cargo-vendor/{cranelift-control-0.106.2 → cranelift-control-0.107.2}/README.md +0 -0
  1276. /data/ext/cargo-vendor/{cranelift-control-0.106.2 → cranelift-control-0.107.2}/src/chaos.rs +0 -0
  1277. /data/ext/cargo-vendor/{cranelift-control-0.106.2 → cranelift-control-0.107.2}/src/lib.rs +0 -0
  1278. /data/ext/cargo-vendor/{cranelift-control-0.106.2 → cranelift-control-0.107.2}/src/zero_sized.rs +0 -0
  1279. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/LICENSE +0 -0
  1280. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/README.md +0 -0
  1281. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/boxed_slice.rs +0 -0
  1282. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/iter.rs +0 -0
  1283. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/keys.rs +0 -0
  1284. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/lib.rs +0 -0
  1285. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/list.rs +0 -0
  1286. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/map.rs +0 -0
  1287. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/packed_option.rs +0 -0
  1288. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/primary.rs +0 -0
  1289. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/set.rs +0 -0
  1290. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/sparse.rs +0 -0
  1291. /data/ext/cargo-vendor/{cranelift-entity-0.106.2 → cranelift-entity-0.107.2}/src/unsigned.rs +0 -0
  1292. /data/ext/cargo-vendor/{cranelift-frontend-0.106.2 → cranelift-frontend-0.107.2}/LICENSE +0 -0
  1293. /data/ext/cargo-vendor/{cranelift-frontend-0.106.2 → cranelift-frontend-0.107.2}/README.md +0 -0
  1294. /data/ext/cargo-vendor/{cranelift-frontend-0.106.2 → cranelift-frontend-0.107.2}/src/frontend.rs +0 -0
  1295. /data/ext/cargo-vendor/{cranelift-frontend-0.106.2 → cranelift-frontend-0.107.2}/src/lib.rs +0 -0
  1296. /data/ext/cargo-vendor/{cranelift-frontend-0.106.2 → cranelift-frontend-0.107.2}/src/ssa.rs +0 -0
  1297. /data/ext/cargo-vendor/{cranelift-frontend-0.106.2 → cranelift-frontend-0.107.2}/src/switch.rs +0 -0
  1298. /data/ext/cargo-vendor/{cranelift-frontend-0.106.2 → cranelift-frontend-0.107.2}/src/variable.rs +0 -0
  1299. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/README.md +0 -0
  1300. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/build.rs +0 -0
  1301. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/bad_converters.isle +0 -0
  1302. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  1303. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  1304. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/error1.isle +0 -0
  1305. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/extra_parens.isle +0 -0
  1306. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/impure_expression.isle +0 -0
  1307. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/impure_rhs.isle +0 -0
  1308. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/multi_internal_etor.isle +0 -0
  1309. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/fail/multi_prio.isle +0 -0
  1310. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/borrows.isle +0 -0
  1311. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/borrows_main.rs +0 -0
  1312. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/iflets.isle +0 -0
  1313. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/iflets_main.rs +0 -0
  1314. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/multi_constructor.isle +0 -0
  1315. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/multi_constructor_main.rs +0 -0
  1316. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/multi_extractor.isle +0 -0
  1317. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/multi_extractor_main.rs +0 -0
  1318. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/test.isle +0 -0
  1319. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/link/test_main.rs +0 -0
  1320. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/bound_var.isle +0 -0
  1321. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/construct_and_extract.isle +0 -0
  1322. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/conversions.isle +0 -0
  1323. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/conversions_extern.isle +0 -0
  1324. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/let.isle +0 -0
  1325. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/nodebug.isle +0 -0
  1326. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/prio_trie_bug.isle +0 -0
  1327. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/test2.isle +0 -0
  1328. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/test3.isle +0 -0
  1329. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/test4.isle +0 -0
  1330. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/pass/tutorial.isle +0 -0
  1331. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/run/iconst.isle +0 -0
  1332. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/run/iconst_main.rs +0 -0
  1333. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/run/let_shadowing.isle +0 -0
  1334. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/isle_examples/run/let_shadowing_main.rs +0 -0
  1335. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/ast.rs +0 -0
  1336. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/codegen.rs +0 -0
  1337. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/compile.rs +0 -0
  1338. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/error.rs +0 -0
  1339. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/lexer.rs +0 -0
  1340. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/lib.rs +0 -0
  1341. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/log.rs +0 -0
  1342. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/overlap.rs +0 -0
  1343. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/parser.rs +0 -0
  1344. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/sema.rs +0 -0
  1345. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/serialize.rs +0 -0
  1346. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/src/trie_again.rs +0 -0
  1347. /data/ext/cargo-vendor/{cranelift-isle-0.106.2 → cranelift-isle-0.107.2}/tests/run_tests.rs +0 -0
  1348. /data/ext/cargo-vendor/{cranelift-native-0.106.2 → cranelift-native-0.107.2}/LICENSE +0 -0
  1349. /data/ext/cargo-vendor/{cranelift-native-0.106.2 → cranelift-native-0.107.2}/README.md +0 -0
  1350. /data/ext/cargo-vendor/{cranelift-native-0.106.2 → cranelift-native-0.107.2}/src/lib.rs +0 -0
  1351. /data/ext/cargo-vendor/{cranelift-native-0.106.2 → cranelift-native-0.107.2}/src/riscv.rs +0 -0
  1352. /data/ext/cargo-vendor/{cranelift-wasm-0.106.2 → cranelift-wasm-0.107.2}/LICENSE +0 -0
  1353. /data/ext/cargo-vendor/{cranelift-wasm-0.106.2 → cranelift-wasm-0.107.2}/README.md +0 -0
  1354. /data/ext/cargo-vendor/{cranelift-wasm-0.106.2 → cranelift-wasm-0.107.2}/src/code_translator/bounds_checks.rs +0 -0
  1355. /data/ext/cargo-vendor/{cranelift-wasm-0.106.2 → cranelift-wasm-0.107.2}/src/heap.rs +0 -0
  1356. /data/ext/cargo-vendor/{cranelift-wasm-0.106.2 → cranelift-wasm-0.107.2}/src/module_translator.rs +0 -0
  1357. /data/ext/cargo-vendor/{cranelift-wasm-0.106.2 → cranelift-wasm-0.107.2}/src/sections_translator.rs +0 -0
  1358. /data/ext/cargo-vendor/{cranelift-wasm-0.106.2 → cranelift-wasm-0.107.2}/src/translation_utils.rs +0 -0
  1359. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.20 → deterministic-wasi-ctx-0.1.21}/README.md +0 -0
  1360. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.20 → deterministic-wasi-ctx-0.1.21}/src/clocks.rs +0 -0
  1361. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.20 → deterministic-wasi-ctx-0.1.21}/src/lib.rs +0 -0
  1362. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.20 → deterministic-wasi-ctx-0.1.21}/src/noop_scheduler.rs +0 -0
  1363. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.20 → deterministic-wasi-ctx-0.1.21}/tests/clocks.rs +0 -0
  1364. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.20 → deterministic-wasi-ctx-0.1.21}/tests/common/mod.rs +0 -0
  1365. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.20 → deterministic-wasi-ctx-0.1.21}/tests/random.rs +0 -0
  1366. /data/ext/cargo-vendor/{deterministic-wasi-ctx-0.1.20 → deterministic-wasi-ctx-0.1.21}/tests/scheduler.rs +0 -0
  1367. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/boolean.rs +0 -0
  1368. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/bootstrap.rs +0 -0
  1369. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/clock.rs +0 -0
  1370. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/clock_priv.rs +0 -0
  1371. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/clock_reply.rs +0 -0
  1372. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/clock_types.rs +0 -0
  1373. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/dyld_kernel.rs +0 -0
  1374. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/exception_types.rs +0 -0
  1375. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/mach_init.rs +0 -0
  1376. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/mach_time.rs +0 -0
  1377. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/mach_types.rs +0 -0
  1378. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/memory_object_types.rs +0 -0
  1379. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/vm_behavior.rs +0 -0
  1380. /data/ext/cargo-vendor/{mach-0.3.2 → mach2-0.4.2}/src/vm_inherit.rs +0 -0
  1381. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/LICENSE +0 -0
  1382. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/README.md +0 -0
  1383. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/clocks.rs +0 -0
  1384. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/dir.rs +0 -0
  1385. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/error.rs +0 -0
  1386. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/file.rs +0 -0
  1387. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/pipe.rs +0 -0
  1388. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/random.rs +0 -0
  1389. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sched/subscription.rs +0 -0
  1390. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sched.rs +0 -0
  1391. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/snapshots/mod.rs +0 -0
  1392. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/snapshots/preview_0.rs +0 -0
  1393. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/snapshots/preview_1/error.rs +0 -0
  1394. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/string_array.rs +0 -0
  1395. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/clocks.rs +0 -0
  1396. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/dir.rs +0 -0
  1397. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/file.rs +0 -0
  1398. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/mod.rs +0 -0
  1399. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/net.rs +0 -0
  1400. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/sched/unix.rs +0 -0
  1401. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/sched/windows.rs +0 -0
  1402. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/sched.rs +0 -0
  1403. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/sync/stdio.rs +0 -0
  1404. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/table.rs +0 -0
  1405. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/tokio/dir.rs +0 -0
  1406. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/tokio/file.rs +0 -0
  1407. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/tokio/mod.rs +0 -0
  1408. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/tokio/net.rs +0 -0
  1409. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/tokio/sched/unix.rs +0 -0
  1410. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/tokio/sched/windows.rs +0 -0
  1411. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/tokio/sched.rs +0 -0
  1412. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/src/tokio/stdio.rs +0 -0
  1413. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/tests/all/main.rs +0 -0
  1414. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/witx/preview0/typenames.witx +0 -0
  1415. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  1416. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/witx/preview1/typenames.witx +0 -0
  1417. /data/ext/cargo-vendor/{wasi-common-19.0.2 → wasi-common-20.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1418. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/LICENSE +0 -0
  1419. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/README.md +0 -0
  1420. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/aliases.rs +0 -0
  1421. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/builder.rs +0 -0
  1422. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/canonicals.rs +0 -0
  1423. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/components.rs +0 -0
  1424. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/exports.rs +0 -0
  1425. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/imports.rs +0 -0
  1426. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/instances.rs +0 -0
  1427. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/modules.rs +0 -0
  1428. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/names.rs +0 -0
  1429. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component/start.rs +0 -0
  1430. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/component.rs +0 -0
  1431. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/code.rs +0 -0
  1432. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/custom.rs +0 -0
  1433. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/data.rs +0 -0
  1434. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/dump.rs +0 -0
  1435. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/elements.rs +0 -0
  1436. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/exports.rs +0 -0
  1437. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/functions.rs +0 -0
  1438. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/globals.rs +0 -0
  1439. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/imports.rs +0 -0
  1440. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/linking.rs +0 -0
  1441. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/memories.rs +0 -0
  1442. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/names.rs +0 -0
  1443. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/producers.rs +0 -0
  1444. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/start.rs +0 -0
  1445. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/tables.rs +0 -0
  1446. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/tags.rs +0 -0
  1447. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core/types.rs +0 -0
  1448. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/core.rs +0 -0
  1449. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/lib.rs +0 -0
  1450. /data/ext/cargo-vendor/{wasm-encoder-0.201.0 → wasm-encoder-0.202.0}/src/raw.rs +0 -0
  1451. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasm-encoder-0.208.1}/LICENSE +0 -0
  1452. /data/ext/cargo-vendor/{wasmprinter-0.201.0 → wasmparser-0.202.0}/LICENSE +0 -0
  1453. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/README.md +0 -0
  1454. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/benches/benchmark.rs +0 -0
  1455. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/examples/simple.rs +0 -0
  1456. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/binary_reader.rs +0 -0
  1457. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/lib.rs +0 -0
  1458. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/limits.rs +0 -0
  1459. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/parser.rs +0 -0
  1460. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/component/aliases.rs +0 -0
  1461. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/component/canonicals.rs +0 -0
  1462. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/component/exports.rs +0 -0
  1463. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/component/imports.rs +0 -0
  1464. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/component/instances.rs +0 -0
  1465. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/component/names.rs +0 -0
  1466. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/component/start.rs +0 -0
  1467. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/component.rs +0 -0
  1468. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/branch_hinting.rs +0 -0
  1469. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/code.rs +0 -0
  1470. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/coredumps.rs +0 -0
  1471. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/custom.rs +0 -0
  1472. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/data.rs +0 -0
  1473. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/dylink0.rs +0 -0
  1474. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/elements.rs +0 -0
  1475. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/exports.rs +0 -0
  1476. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/functions.rs +0 -0
  1477. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/globals.rs +0 -0
  1478. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/imports.rs +0 -0
  1479. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/init.rs +0 -0
  1480. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/linking.rs +0 -0
  1481. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/memories.rs +0 -0
  1482. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/names.rs +0 -0
  1483. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/operators.rs +0 -0
  1484. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/producers.rs +0 -0
  1485. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/tables.rs +0 -0
  1486. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/tags.rs +0 -0
  1487. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/types/matches.rs +0 -0
  1488. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core/types.rs +0 -0
  1489. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers/core.rs +0 -0
  1490. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/readers.rs +0 -0
  1491. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/resources.rs +0 -0
  1492. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/validator/component.rs +0 -0
  1493. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/validator/core/canonical.rs +0 -0
  1494. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/validator/core.rs +0 -0
  1495. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/validator/func.rs +0 -0
  1496. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/validator/names.rs +0 -0
  1497. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/src/validator.rs +0 -0
  1498. /data/ext/cargo-vendor/{wasmparser-0.201.0 → wasmparser-0.202.0}/tests/big-module.rs +0 -0
  1499. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmprinter-0.202.0}/LICENSE +0 -0
  1500. /data/ext/cargo-vendor/{wasmprinter-0.201.0 → wasmprinter-0.202.0}/README.md +0 -0
  1501. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-20.0.0}/LICENSE +0 -0
  1502. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/README.md +0 -0
  1503. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/profiling_agent/jitdump.rs +0 -0
  1504. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/profiling_agent/perfmap.rs +0 -0
  1505. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/profiling_agent/vtune.rs +0 -0
  1506. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/profiling_agent.rs +0 -0
  1507. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/code.rs +0 -0
  1508. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/component/resource_table.rs +0 -0
  1509. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/component/storage.rs +0 -0
  1510. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/component/store.rs +0 -0
  1511. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/debug.rs +0 -0
  1512. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/externals.rs +0 -0
  1513. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/limits.rs +0 -0
  1514. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/resources.rs +0 -0
  1515. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/signatures.rs +0 -0
  1516. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/stack.rs +0 -0
  1517. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/store/context.rs +0 -0
  1518. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/store/func_refs.rs +0 -0
  1519. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/trampoline.rs +0 -0
  1520. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/uninhabited.rs +0 -0
  1521. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/unix.rs +0 -0
  1522. /data/ext/cargo-vendor/{wasmtime-19.0.2 → wasmtime-20.0.0}/src/runtime/windows.rs +0 -0
  1523. /data/ext/cargo-vendor/{wasmtime-asm-macros-19.0.2 → wasmtime-asm-macros-20.0.0}/src/lib.rs +0 -0
  1524. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cache-20.0.0}/LICENSE +0 -0
  1525. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/build.rs +0 -0
  1526. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/src/config/tests.rs +0 -0
  1527. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/src/config.rs +0 -0
  1528. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/src/lib.rs +0 -0
  1529. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/src/tests.rs +0 -0
  1530. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  1531. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/src/worker/tests.rs +0 -0
  1532. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/src/worker.rs +0 -0
  1533. /data/ext/cargo-vendor/{wasmtime-cache-19.0.2 → wasmtime-cache-20.0.0}/tests/cache_write_default_config.rs +0 -0
  1534. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/build.rs +0 -0
  1535. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/src/bindgen.rs +0 -0
  1536. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/src/lib.rs +0 -0
  1537. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/char.wit +0 -0
  1538. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/conventions.wit +0 -0
  1539. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/direct-import.wit +0 -0
  1540. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/empty.wit +0 -0
  1541. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/flags.wit +0 -0
  1542. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/floats.wit +0 -0
  1543. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/function-new.wit +0 -0
  1544. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/integers.wit +0 -0
  1545. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/lists.wit +0 -0
  1546. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/many-arguments.wit +0 -0
  1547. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/multi-return.wit +0 -0
  1548. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  1549. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  1550. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/multiversion/root.wit +0 -0
  1551. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/records.wit +0 -0
  1552. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/rename.wit +0 -0
  1553. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/resources-export.wit +0 -0
  1554. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/resources-import.wit +0 -0
  1555. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/share-types.wit +0 -0
  1556. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/simple-functions.wit +0 -0
  1557. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/simple-lists.wit +0 -0
  1558. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/simple-wasi.wit +0 -0
  1559. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/small-anonymous.wit +0 -0
  1560. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/smoke-default.wit +0 -0
  1561. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/smoke-export.wit +0 -0
  1562. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/smoke.wit +0 -0
  1563. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/strings.wit +0 -0
  1564. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/unversioned-foo.wit +0 -0
  1565. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/use-paths.wit +0 -0
  1566. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/variants.wit +0 -0
  1567. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/wat.wit +0 -0
  1568. /data/ext/cargo-vendor/{wasmtime-component-macro-19.0.2 → wasmtime-component-macro-20.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  1569. /data/ext/cargo-vendor/{wasmtime-component-util-19.0.2 → wasmtime-component-util-20.0.0}/src/lib.rs +0 -0
  1570. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-cranelift-20.0.0}/LICENSE +0 -0
  1571. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/SECURITY.md +0 -0
  1572. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/gc.rs +0 -0
  1573. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/transform/attr.rs +0 -0
  1574. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/transform/line_program.rs +0 -0
  1575. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/transform/mod.rs +0 -0
  1576. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1577. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/transform/refs.rs +0 -0
  1578. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/transform/simulate.rs +0 -0
  1579. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/transform/unit.rs +0 -0
  1580. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/transform/utils.rs +0 -0
  1581. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug/write_debuginfo.rs +0 -0
  1582. /data/ext/cargo-vendor/{wasmtime-cranelift-19.0.2 → wasmtime-cranelift-20.0.0}/src/debug.rs +0 -0
  1583. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-19.0.2 → wasmtime-cranelift-20.0.0}/src/isa_builder.rs +0 -0
  1584. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-environ-20.0.0}/LICENSE +0 -0
  1585. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/examples/factc.rs +0 -0
  1586. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/component/dfg.rs +0 -0
  1587. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/component/translate.rs +0 -0
  1588. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/component/types/resources.rs +0 -0
  1589. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1590. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/demangling.rs +0 -0
  1591. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/fact/core_types.rs +0 -0
  1592. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/fact/signature.rs +0 -0
  1593. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/fact/traps.rs +0 -0
  1594. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/module_types.rs +0 -0
  1595. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/ref_bits.rs +0 -0
  1596. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/scopevec.rs +0 -0
  1597. /data/ext/cargo-vendor/{wasmtime-environ-19.0.2 → wasmtime-environ-20.0.0}/src/stack_map.rs +0 -0
  1598. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-fiber-20.0.0}/LICENSE +0 -0
  1599. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/build.rs +0 -0
  1600. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/lib.rs +0 -0
  1601. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/unix/aarch64.rs +0 -0
  1602. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/unix/arm.rs +0 -0
  1603. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/unix/riscv64.rs +0 -0
  1604. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/unix/s390x.S +0 -0
  1605. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/unix/x86.rs +0 -0
  1606. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/unix/x86_64.rs +0 -0
  1607. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/windows.c +0 -0
  1608. /data/ext/cargo-vendor/{wasmtime-fiber-19.0.2 → wasmtime-fiber-20.0.0}/src/windows.rs +0 -0
  1609. /data/ext/cargo-vendor/{wasmtime-jit-debug-19.0.2 → wasmtime-jit-debug-20.0.0}/README.md +0 -0
  1610. /data/ext/cargo-vendor/{wasmtime-jit-debug-19.0.2 → wasmtime-jit-debug-20.0.0}/src/gdb_jit_int.rs +0 -0
  1611. /data/ext/cargo-vendor/{wasmtime-jit-debug-19.0.2 → wasmtime-jit-debug-20.0.0}/src/lib.rs +0 -0
  1612. /data/ext/cargo-vendor/{wasmtime-jit-debug-19.0.2 → wasmtime-jit-debug-20.0.0}/src/perf_jitdump.rs +0 -0
  1613. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-19.0.2 → wasmtime-jit-icache-coherence-20.0.0}/src/lib.rs +0 -0
  1614. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-19.0.2 → wasmtime-jit-icache-coherence-20.0.0}/src/libc.rs +0 -0
  1615. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-19.0.2 → wasmtime-jit-icache-coherence-20.0.0}/src/miri.rs +0 -0
  1616. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-19.0.2 → wasmtime-jit-icache-coherence-20.0.0}/src/win.rs +0 -0
  1617. /data/ext/cargo-vendor/{wasmtime-types-19.0.2 → wasmtime-runtime-20.0.0}/LICENSE +0 -0
  1618. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/proptest-regressions/instance/allocator/pooling/memory_pool.txt +0 -0
  1619. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/arch/mod.rs +0 -0
  1620. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/component/resources.rs +0 -0
  1621. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/cow.rs +0 -0
  1622. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/debug_builtins.rs +0 -0
  1623. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/helpers.c +0 -0
  1624. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/imports.rs +0 -0
  1625. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1626. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/instance/allocator/pooling/memory_pool.rs +0 -0
  1627. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/instance/allocator/pooling/stack_pool.rs +0 -0
  1628. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/mmap.rs +0 -0
  1629. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/mmap_vec.rs +0 -0
  1630. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/module_id.rs +0 -0
  1631. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/mpk/disabled.rs +0 -0
  1632. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/mpk/enabled.rs +0 -0
  1633. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/mpk/mod.rs +0 -0
  1634. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/mpk/pkru.rs +0 -0
  1635. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/mpk/sys.rs +0 -0
  1636. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/store_box.rs +0 -0
  1637. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/custom/capi.rs +0 -0
  1638. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/custom/mod.rs +0 -0
  1639. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/custom/unwind.rs +0 -0
  1640. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/custom/vm.rs +0 -0
  1641. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/miri/mod.rs +0 -0
  1642. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/miri/traphandlers.rs +0 -0
  1643. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/miri/unwind.rs +0 -0
  1644. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/miri/vm.rs +0 -0
  1645. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/mod.rs +0 -0
  1646. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/unix/macos_traphandlers.rs +0 -0
  1647. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/unix/mod.rs +0 -0
  1648. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/unix/unwind.rs +0 -0
  1649. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/unix/vm.rs +0 -0
  1650. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/windows/mmap.rs +0 -0
  1651. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/windows/mod.rs +0 -0
  1652. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/windows/unwind.rs +0 -0
  1653. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/sys/windows/vm.rs +0 -0
  1654. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2/src → wasmtime-runtime-20.0.0/src/threads}/parking_spot.rs +0 -0
  1655. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/traphandlers/backtrace.rs +0 -0
  1656. /data/ext/cargo-vendor/{wasmtime-runtime-19.0.2 → wasmtime-runtime-20.0.0}/src/vmcontext/vm_host_func_context.rs +0 -0
  1657. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-types-20.0.2}/LICENSE +0 -0
  1658. /data/ext/cargo-vendor/{wasmtime-types-19.0.2 → wasmtime-types-20.0.2}/src/error.rs +0 -0
  1659. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-19.0.2 → wasmtime-versioned-export-macros-20.0.0}/src/lib.rs +0 -0
  1660. /data/ext/cargo-vendor/{wast-201.0.0 → wasmtime-wasi-20.0.0}/LICENSE +0 -0
  1661. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/README.md +0 -0
  1662. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/clocks/host.rs +0 -0
  1663. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/clocks.rs +0 -0
  1664. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/error.rs +0 -0
  1665. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/clocks.rs +0 -0
  1666. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/env.rs +0 -0
  1667. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/exit.rs +0 -0
  1668. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/instance_network.rs +0 -0
  1669. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/mod.rs +0 -0
  1670. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/random.rs +0 -0
  1671. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/tcp_create_socket.rs +0 -0
  1672. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/udp.rs +0 -0
  1673. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/host/udp_create_socket.rs +0 -0
  1674. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/random.rs +0 -0
  1675. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/src/stream.rs +0 -0
  1676. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/tests/process_stdin.rs +0 -0
  1677. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/command-extended.wit +0 -0
  1678. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/cli/command.wit +0 -0
  1679. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/cli/environment.wit +0 -0
  1680. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/cli/exit.wit +0 -0
  1681. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/cli/imports.wit +0 -0
  1682. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/cli/run.wit +0 -0
  1683. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/cli/stdio.wit +0 -0
  1684. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/cli/terminal.wit +0 -0
  1685. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1686. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  1687. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/clocks/world.wit +0 -0
  1688. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  1689. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/filesystem/types.wit +0 -0
  1690. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/filesystem/world.wit +0 -0
  1691. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/http/handler.wit +0 -0
  1692. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/http/proxy.wit +0 -0
  1693. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/http/types.wit +0 -0
  1694. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/io/error.wit +0 -0
  1695. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/io/streams.wit +0 -0
  1696. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/io/world.wit +0 -0
  1697. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  1698. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/random/insecure.wit +0 -0
  1699. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/random/random.wit +0 -0
  1700. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/random/world.wit +0 -0
  1701. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  1702. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1703. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/sockets/network.wit +0 -0
  1704. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1705. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/sockets/tcp.wit +0 -0
  1706. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1707. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/sockets/udp.wit +0 -0
  1708. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/deps/sockets/world.wit +0 -0
  1709. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/wit/test.wit +0 -0
  1710. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/witx/preview0/typenames.witx +0 -0
  1711. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/witx/preview0/wasi_unstable.witx +0 -0
  1712. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/witx/preview1/typenames.witx +0 -0
  1713. /data/ext/cargo-vendor/{wasmtime-wasi-19.0.2 → wasmtime-wasi-20.0.0}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1714. /data/ext/cargo-vendor/{wasmtime-winch-19.0.2 → wasmtime-winch-20.0.0}/LICENSE +0 -0
  1715. /data/ext/cargo-vendor/{wasmtime-winch-19.0.2 → wasmtime-winch-20.0.0}/src/lib.rs +0 -0
  1716. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-19.0.2 → wasmtime-wit-bindgen-20.0.0}/src/source.rs +0 -0
  1717. /data/ext/cargo-vendor/{wat-1.201.0 → wast-208.0.1}/LICENSE +0 -0
  1718. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/README.md +0 -0
  1719. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/alias.rs +0 -0
  1720. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/component.rs +0 -0
  1721. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/custom.rs +0 -0
  1722. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/expand.rs +0 -0
  1723. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/export.rs +0 -0
  1724. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/func.rs +0 -0
  1725. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/import.rs +0 -0
  1726. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/instance.rs +0 -0
  1727. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/item_ref.rs +0 -0
  1728. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component/module.rs +0 -0
  1729. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/component.rs +0 -0
  1730. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/core/custom.rs +0 -0
  1731. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/core/export.rs +0 -0
  1732. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/core/global.rs +0 -0
  1733. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/core/import.rs +0 -0
  1734. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/core/module.rs +0 -0
  1735. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/core/resolve/mod.rs +0 -0
  1736. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/core/tag.rs +0 -0
  1737. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/core.rs +0 -0
  1738. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/encode.rs +0 -0
  1739. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/error.rs +0 -0
  1740. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/gensym.rs +0 -0
  1741. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/src/lexer.rs +0 -0
  1742. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/comments.rs +0 -0
  1743. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-core-func-alias.wat +0 -0
  1744. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-core-func-alias.wat.err +0 -0
  1745. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-func-alias.wat +0 -0
  1746. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-func-alias.wat.err +0 -0
  1747. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-index.wat +0 -0
  1748. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-index.wat.err +0 -0
  1749. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-name.wat +0 -0
  1750. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-name.wat.err +0 -0
  1751. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-name2.wat +0 -0
  1752. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-name2.wat.err +0 -0
  1753. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-name3.wat +0 -0
  1754. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/bad-name3.wat.err +0 -0
  1755. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/block1.wat +0 -0
  1756. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/block1.wat.err +0 -0
  1757. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/block2.wat +0 -0
  1758. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/block2.wat.err +0 -0
  1759. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/block3.wat +0 -0
  1760. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/block3.wat.err +0 -0
  1761. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment0.wat +0 -0
  1762. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment0.wat.err +0 -0
  1763. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment1.wat +0 -0
  1764. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment1.wat.err +0 -0
  1765. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment2.wat +0 -0
  1766. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment2.wat.err +0 -0
  1767. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment3.wat +0 -0
  1768. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment3.wat.err +0 -0
  1769. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment4.wat +0 -0
  1770. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment4.wat.err +0 -0
  1771. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment5.wat +0 -0
  1772. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment5.wat.err +0 -0
  1773. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment6.wat +0 -0
  1774. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment6.wat.err +0 -0
  1775. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment7.wat +0 -0
  1776. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment7.wat.err +0 -0
  1777. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment8.wat +0 -0
  1778. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-block-comment8.wat.err +0 -0
  1779. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment0.wat +0 -0
  1780. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment0.wat.err +0 -0
  1781. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment1.wat +0 -0
  1782. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment1.wat.err +0 -0
  1783. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment2.wat +0 -0
  1784. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment2.wat.err +0 -0
  1785. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment3.wat +0 -0
  1786. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment3.wat.err +0 -0
  1787. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment4.wat +0 -0
  1788. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment4.wat.err +0 -0
  1789. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment5.wat +0 -0
  1790. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment5.wat.err +0 -0
  1791. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment6.wat +0 -0
  1792. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment6.wat.err +0 -0
  1793. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment7.wat +0 -0
  1794. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment7.wat.err +0 -0
  1795. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment8.wat +0 -0
  1796. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-line-comment8.wat.err +0 -0
  1797. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string0.wat +0 -0
  1798. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string0.wat.err +0 -0
  1799. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string1.wat +0 -0
  1800. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string1.wat.err +0 -0
  1801. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string2.wat +0 -0
  1802. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string2.wat.err +0 -0
  1803. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string3.wat +0 -0
  1804. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string3.wat.err +0 -0
  1805. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string4.wat +0 -0
  1806. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string4.wat.err +0 -0
  1807. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string5.wat +0 -0
  1808. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string5.wat.err +0 -0
  1809. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string6.wat +0 -0
  1810. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string6.wat.err +0 -0
  1811. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string7.wat +0 -0
  1812. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string7.wat.err +0 -0
  1813. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string8.wat +0 -0
  1814. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/confusing-string8.wat.err +0 -0
  1815. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/inline1.wat +0 -0
  1816. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/inline1.wat.err +0 -0
  1817. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/newline-in-string.wat +0 -0
  1818. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/newline-in-string.wat.err +0 -0
  1819. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string1.wat +0 -0
  1820. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string1.wat.err +0 -0
  1821. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string10.wat +0 -0
  1822. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string10.wat.err +0 -0
  1823. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string11.wat +0 -0
  1824. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string11.wat.err +0 -0
  1825. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string12.wat +0 -0
  1826. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string12.wat.err +0 -0
  1827. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string13.wat +0 -0
  1828. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string13.wat.err +0 -0
  1829. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string14.wat +0 -0
  1830. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string14.wat.err +0 -0
  1831. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string15.wat +0 -0
  1832. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string15.wat.err +0 -0
  1833. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string16.wat +0 -0
  1834. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string16.wat.err +0 -0
  1835. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string2.wat +0 -0
  1836. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string2.wat.err +0 -0
  1837. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string3.wat +0 -0
  1838. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string3.wat.err +0 -0
  1839. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string4.wat +0 -0
  1840. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string4.wat.err +0 -0
  1841. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string5.wat +0 -0
  1842. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string5.wat.err +0 -0
  1843. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string6.wat +0 -0
  1844. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string6.wat.err +0 -0
  1845. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string7.wat +0 -0
  1846. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string7.wat.err +0 -0
  1847. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string8.wat +0 -0
  1848. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string8.wat.err +0 -0
  1849. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string9.wat +0 -0
  1850. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/string9.wat.err +0 -0
  1851. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/unbalanced.wat +0 -0
  1852. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/parse-fail/unbalanced.wat.err +0 -0
  1853. /data/ext/cargo-vendor/{wast-201.0.0 → wast-208.0.1}/tests/recursive.rs +0 -0
  1854. /data/ext/cargo-vendor/{wiggle-19.0.2 → wat-1.208.1}/LICENSE +0 -0
  1855. /data/ext/cargo-vendor/{wat-1.201.0 → wat-1.208.1}/README.md +0 -0
  1856. /data/ext/cargo-vendor/{wat-1.201.0 → wat-1.208.1}/src/lib.rs +0 -0
  1857. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-20.0.0}/LICENSE +0 -0
  1858. /data/ext/cargo-vendor/{wiggle-19.0.2 → wiggle-20.0.0}/README.md +0 -0
  1859. /data/ext/cargo-vendor/{wiggle-19.0.2 → wiggle-20.0.0}/src/error.rs +0 -0
  1860. /data/ext/cargo-vendor/{wiggle-19.0.2 → wiggle-20.0.0}/src/region.rs +0 -0
  1861. /data/ext/cargo-vendor/{wiggle-macro-19.0.2 → wiggle-generate-20.0.0}/LICENSE +0 -0
  1862. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/README.md +0 -0
  1863. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/codegen_settings.rs +0 -0
  1864. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/config.rs +0 -0
  1865. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/funcs.rs +0 -0
  1866. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/lib.rs +0 -0
  1867. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/lifetimes.rs +0 -0
  1868. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/module_trait.rs +0 -0
  1869. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/names.rs +0 -0
  1870. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/types/error.rs +0 -0
  1871. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/types/flags.rs +0 -0
  1872. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/types/handle.rs +0 -0
  1873. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/types/mod.rs +0 -0
  1874. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/types/record.rs +0 -0
  1875. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/types/variant.rs +0 -0
  1876. /data/ext/cargo-vendor/{wiggle-generate-19.0.2 → wiggle-generate-20.0.0}/src/wasmtime.rs +0 -0
  1877. /data/ext/cargo-vendor/{wiggle-macro-19.0.2 → wiggle-macro-20.0.0}/src/lib.rs +0 -0
  1878. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/LICENSE +0 -0
  1879. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/build.rs +0 -0
  1880. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/abi/local.rs +0 -0
  1881. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/codegen/context.rs +0 -0
  1882. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/codegen/control.rs +0 -0
  1883. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/frame/mod.rs +0 -0
  1884. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/isa/aarch64/address.rs +0 -0
  1885. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/isa/reg.rs +0 -0
  1886. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/isa/x64/address.rs +0 -0
  1887. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/isa/x64/regs.rs +0 -0
  1888. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/regalloc.rs +0 -0
  1889. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/regset.rs +0 -0
  1890. /data/ext/cargo-vendor/{winch-codegen-0.17.2 → winch-codegen-0.18.0}/src/stack.rs +0 -0
  1891. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/README.md +0 -0
  1892. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/src/ast/toposort.rs +0 -0
  1893. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/src/docs.rs +0 -0
  1894. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/src/live.rs +0 -0
  1895. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/comments.wit +0 -0
  1896. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/comments.wit.json +0 -0
  1897. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/complex-include/deps/bar/root.wit +0 -0
  1898. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/complex-include/deps/baz/root.wit +0 -0
  1899. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/complex-include/root.wit +0 -0
  1900. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/complex-include.wit.json +0 -0
  1901. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/cross-package-resource/deps/foo/foo.wit +0 -0
  1902. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/cross-package-resource/foo.wit +0 -0
  1903. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/cross-package-resource.wit.json +0 -0
  1904. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/diamond1/deps/dep1/types.wit +0 -0
  1905. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/diamond1/deps/dep2/types.wit +0 -0
  1906. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/diamond1/join.wit +0 -0
  1907. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/diamond1.wit.json +0 -0
  1908. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/disambiguate-diamond/shared1.wit +0 -0
  1909. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/disambiguate-diamond/shared2.wit +0 -0
  1910. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/disambiguate-diamond/world.wit +0 -0
  1911. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/disambiguate-diamond.wit.json +0 -0
  1912. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/empty.wit +0 -0
  1913. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/empty.wit.json +0 -0
  1914. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps/deps/another-pkg/other-doc.wit +0 -0
  1915. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps/deps/corp/saas.wit +0 -0
  1916. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps/deps/different-pkg/the-doc.wit +0 -0
  1917. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps/deps/foreign-pkg/the-doc.wit +0 -0
  1918. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps/deps/some-pkg/some-doc.wit +0 -0
  1919. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps/deps/wasi/clocks.wit +0 -0
  1920. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps/deps/wasi/filesystem.wit +0 -0
  1921. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps/root.wit +0 -0
  1922. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/deps/another-pkg/other-doc.wit +0 -0
  1923. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/deps/corp/saas.wit +0 -0
  1924. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/deps/different-pkg/the-doc.wit +0 -0
  1925. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/deps/foreign-pkg/the-doc.wit +0 -0
  1926. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/deps/some-pkg/some-doc.wit +0 -0
  1927. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/deps/wasi/clocks.wit +0 -0
  1928. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/deps/wasi/filesystem.wit +0 -0
  1929. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/deps/wasi/wasi.wit +0 -0
  1930. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union/root.wit +0 -0
  1931. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps-union.wit.json +0 -0
  1932. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/foreign-deps.wit.json +0 -0
  1933. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/ignore-files-deps/deps/bar/types.wit +0 -0
  1934. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/ignore-files-deps/deps/ignore-me.txt +0 -0
  1935. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/ignore-files-deps/world.wit +0 -0
  1936. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/ignore-files-deps.wit.json +0 -0
  1937. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/import-export-overlap1.wit +0 -0
  1938. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/import-export-overlap1.wit.json +0 -0
  1939. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/import-export-overlap2.wit +0 -0
  1940. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/import-export-overlap2.wit.json +0 -0
  1941. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/include-reps.wit +0 -0
  1942. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/include-reps.wit.json +0 -0
  1943. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/kebab-name-include-with.wit +0 -0
  1944. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/kebab-name-include-with.wit.json +0 -0
  1945. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/kinds-of-deps/a.wit +0 -0
  1946. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/kinds-of-deps/deps/b/root.wit +0 -0
  1947. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/kinds-of-deps/deps/c.wit +0 -0
  1948. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/kinds-of-deps/deps/d.wat +0 -0
  1949. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/kinds-of-deps/deps/e.wasm +0 -0
  1950. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/kinds-of-deps.wit.json +0 -0
  1951. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/many-names/a.wit +0 -0
  1952. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/many-names/b.wit +0 -0
  1953. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/many-names.wit.json +0 -0
  1954. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/multi-file/bar.wit +0 -0
  1955. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/multi-file/cycle-a.wit +0 -0
  1956. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/multi-file/cycle-b.wit +0 -0
  1957. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/multi-file/foo.wit +0 -0
  1958. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/multi-file.wit.json +0 -0
  1959. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/name-both-resource-and-type/deps/dep/foo.wit +0 -0
  1960. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/name-both-resource-and-type/foo.wit +0 -0
  1961. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/name-both-resource-and-type.wit.json +0 -0
  1962. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/package-syntax1.wit +0 -0
  1963. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/package-syntax1.wit.json +0 -0
  1964. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/package-syntax3.wit +0 -0
  1965. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/package-syntax3.wit.json +0 -0
  1966. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/package-syntax4.wit +0 -0
  1967. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/package-syntax4.wit.json +0 -0
  1968. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/alias-no-type.wit +0 -0
  1969. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/alias-no-type.wit.result +0 -0
  1970. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/async.wit.result +0 -0
  1971. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/async1.wit.result +0 -0
  1972. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-function.wit +0 -0
  1973. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-function.wit.result +0 -0
  1974. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-function2.wit +0 -0
  1975. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-function2.wit.result +0 -0
  1976. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-include1.wit +0 -0
  1977. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-include1.wit.result +0 -0
  1978. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-include2.wit +0 -0
  1979. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-include2.wit.result +0 -0
  1980. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-include3.wit +0 -0
  1981. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-include3.wit.result +0 -0
  1982. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-list.wit +0 -0
  1983. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-list.wit.result +0 -0
  1984. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg1/root.wit +0 -0
  1985. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg1.wit.result +0 -0
  1986. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg2/deps/bar/empty.wit +0 -0
  1987. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg2/root.wit +0 -0
  1988. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg2.wit.result +0 -0
  1989. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg3/deps/bar/baz.wit +0 -0
  1990. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg3/root.wit +0 -0
  1991. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg3.wit.result +0 -0
  1992. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg4/deps/bar/baz.wit +0 -0
  1993. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg4/root.wit +0 -0
  1994. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg4.wit.result +0 -0
  1995. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg5/deps/bar/baz.wit +0 -0
  1996. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg5/root.wit +0 -0
  1997. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg5.wit.result +0 -0
  1998. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg6/deps/bar/baz.wit +0 -0
  1999. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg6/root.wit +0 -0
  2000. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-pkg6.wit.result +0 -0
  2001. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource1.wit +0 -0
  2002. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource1.wit.result +0 -0
  2003. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource10.wit +0 -0
  2004. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource10.wit.result +0 -0
  2005. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource11.wit +0 -0
  2006. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource11.wit.result +0 -0
  2007. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource12.wit +0 -0
  2008. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource12.wit.result +0 -0
  2009. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource13.wit +0 -0
  2010. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource13.wit.result +0 -0
  2011. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource14.wit +0 -0
  2012. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource14.wit.result +0 -0
  2013. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource15/deps/foo/foo.wit +0 -0
  2014. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource15/foo.wit +0 -0
  2015. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource15.wit.result +0 -0
  2016. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource2.wit +0 -0
  2017. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource2.wit.result +0 -0
  2018. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource3.wit +0 -0
  2019. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource3.wit.result +0 -0
  2020. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource4.wit +0 -0
  2021. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource4.wit.result +0 -0
  2022. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource5.wit +0 -0
  2023. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource5.wit.result +0 -0
  2024. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource6.wit +0 -0
  2025. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource6.wit.result +0 -0
  2026. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource7.wit +0 -0
  2027. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource7.wit.result +0 -0
  2028. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource8.wit +0 -0
  2029. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource8.wit.result +0 -0
  2030. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource9.wit +0 -0
  2031. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-resource9.wit.result +0 -0
  2032. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-world-type1.wit +0 -0
  2033. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/bad-world-type1.wit.result +0 -0
  2034. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/conflicting-package/a.wit +0 -0
  2035. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/conflicting-package/b.wit +0 -0
  2036. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/conflicting-package.wit.result +0 -0
  2037. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle.wit +0 -0
  2038. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle.wit.result +0 -0
  2039. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle2.wit +0 -0
  2040. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle2.wit.result +0 -0
  2041. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle3.wit +0 -0
  2042. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle3.wit.result +0 -0
  2043. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle4.wit +0 -0
  2044. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle4.wit.result +0 -0
  2045. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle5.wit +0 -0
  2046. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/cycle5.wit.result +0 -0
  2047. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/dangling-type.wit +0 -0
  2048. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/dangling-type.wit.result +0 -0
  2049. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-function-params.wit +0 -0
  2050. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-function-params.wit.result +0 -0
  2051. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-functions.wit +0 -0
  2052. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-functions.wit.result +0 -0
  2053. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-interface.wit +0 -0
  2054. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-interface.wit.result +0 -0
  2055. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-interface2/foo.wit +0 -0
  2056. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-interface2/foo2.wit +0 -0
  2057. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-interface2.wit.result +0 -0
  2058. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-type.wit +0 -0
  2059. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/duplicate-type.wit.result +0 -0
  2060. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/empty-enum.wit +0 -0
  2061. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/empty-enum.wit.result +0 -0
  2062. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/empty-variant1.wit +0 -0
  2063. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/empty-variant1.wit.result +0 -0
  2064. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/export-twice.wit +0 -0
  2065. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/export-twice.wit.result +0 -0
  2066. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export1.wit +0 -0
  2067. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export1.wit.result +0 -0
  2068. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export2.wit +0 -0
  2069. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export2.wit.result +0 -0
  2070. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export3.wit +0 -0
  2071. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export3.wit.result +0 -0
  2072. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export4.wit +0 -0
  2073. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export4.wit.result +0 -0
  2074. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export5.wit +0 -0
  2075. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-and-export5.wit.result +0 -0
  2076. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-twice.wit +0 -0
  2077. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/import-twice.wit.result +0 -0
  2078. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-cycle.wit +0 -0
  2079. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-cycle.wit.result +0 -0
  2080. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-foreign/deps/bar/empty.wit +0 -0
  2081. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-foreign/root.wit +0 -0
  2082. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-foreign.wit.result +0 -0
  2083. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-with-id.wit +0 -0
  2084. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-with-id.wit.result +0 -0
  2085. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-with-on-id.wit +0 -0
  2086. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/include-with-on-id.wit.result +0 -0
  2087. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/invalid-toplevel.wit +0 -0
  2088. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/invalid-toplevel.wit.result +0 -0
  2089. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/invalid-type-reference.wit +0 -0
  2090. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/invalid-type-reference.wit.result +0 -0
  2091. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/invalid-type-reference2.wit +0 -0
  2092. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/invalid-type-reference2.wit.result +0 -0
  2093. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit +0 -0
  2094. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/kebab-name-include-not-found.wit.result +0 -0
  2095. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/kebab-name-include.wit +0 -0
  2096. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/kebab-name-include.wit.result +0 -0
  2097. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/keyword.wit +0 -0
  2098. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/keyword.wit.result +0 -0
  2099. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/missing-package.wit +0 -0
  2100. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/missing-package.wit.result +0 -0
  2101. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/multiple-package-docs/a.wit +0 -0
  2102. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/multiple-package-docs/b.wit +0 -0
  2103. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/multiple-package-docs.wit.result +0 -0
  2104. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/no-access-to-sibling-use/bar.wit +0 -0
  2105. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/no-access-to-sibling-use/foo.wit +0 -0
  2106. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/no-access-to-sibling-use.wit.result +0 -0
  2107. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/non-existance-world-include/deps/bar/baz.wit +0 -0
  2108. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/non-existance-world-include/root.wit +0 -0
  2109. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/non-existance-world-include.wit.result +0 -0
  2110. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/pkg-cycle/deps/a1/root.wit +0 -0
  2111. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/pkg-cycle/root.wit +0 -0
  2112. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/pkg-cycle.wit.result +0 -0
  2113. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/pkg-cycle2/deps/a1/root.wit +0 -0
  2114. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/pkg-cycle2/deps/a2/root.wit +0 -0
  2115. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/pkg-cycle2/root.wit +0 -0
  2116. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/pkg-cycle2.wit.result +0 -0
  2117. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/type-and-resource-same-name/deps/dep/foo.wit +0 -0
  2118. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/type-and-resource-same-name/foo.wit +0 -0
  2119. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/type-and-resource-same-name.wit.result +0 -0
  2120. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/undefined-typed.wit +0 -0
  2121. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/undefined-typed.wit.result +0 -0
  2122. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unknown-interface.wit +0 -0
  2123. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unknown-interface.wit.result +0 -0
  2124. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-interface1.wit +0 -0
  2125. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-interface1.wit.result +0 -0
  2126. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-interface2.wit +0 -0
  2127. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-interface2.wit.result +0 -0
  2128. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-interface3.wit +0 -0
  2129. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-interface3.wit.result +0 -0
  2130. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-interface4.wit +0 -0
  2131. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-interface4.wit.result +0 -0
  2132. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use1.wit +0 -0
  2133. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use1.wit.result +0 -0
  2134. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use10/bar.wit +0 -0
  2135. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use10/foo.wit +0 -0
  2136. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use10.wit.result +0 -0
  2137. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use2.wit +0 -0
  2138. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use2.wit.result +0 -0
  2139. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use3.wit +0 -0
  2140. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use3.wit.result +0 -0
  2141. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use7.wit +0 -0
  2142. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use7.wit.result +0 -0
  2143. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use8.wit +0 -0
  2144. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use8.wit.result +0 -0
  2145. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use9.wit +0 -0
  2146. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unresolved-use9.wit.result +0 -0
  2147. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/unterminated-string.wit.result +0 -0
  2148. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-and-include-world/deps/bar/baz.wit +0 -0
  2149. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-and-include-world/root.wit +0 -0
  2150. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-and-include-world.wit.result +0 -0
  2151. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-conflict.wit +0 -0
  2152. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-conflict.wit.result +0 -0
  2153. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-conflict2.wit +0 -0
  2154. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-conflict2.wit.result +0 -0
  2155. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-conflict3.wit +0 -0
  2156. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-conflict3.wit.result +0 -0
  2157. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-cycle1.wit +0 -0
  2158. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-cycle1.wit.result +0 -0
  2159. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-cycle4.wit +0 -0
  2160. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-cycle4.wit.result +0 -0
  2161. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-shadow1.wit +0 -0
  2162. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-shadow1.wit.result +0 -0
  2163. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-world/deps/bar/baz.wit +0 -0
  2164. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-world/root.wit +0 -0
  2165. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/use-world.wit.result +0 -0
  2166. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-interface-clash.wit +0 -0
  2167. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-interface-clash.wit.result +0 -0
  2168. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-same-fields2.wit +0 -0
  2169. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-same-fields2.wit.result +0 -0
  2170. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-same-fields3.wit +0 -0
  2171. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-same-fields3.wit.result +0 -0
  2172. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-top-level-func.wit +0 -0
  2173. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-top-level-func.wit.result +0 -0
  2174. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-top-level-func2.wit +0 -0
  2175. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/parse-fail/world-top-level-func2.wit.result +0 -0
  2176. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/random.wit +0 -0
  2177. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/random.wit.json +0 -0
  2178. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-empty.wit +0 -0
  2179. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-empty.wit.json +0 -0
  2180. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-multiple-returns-borrow.wit +0 -0
  2181. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-multiple-returns-borrow.wit.json +0 -0
  2182. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-multiple-returns-own.wit +0 -0
  2183. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-multiple-returns-own.wit.json +0 -0
  2184. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-return-borrow.wit +0 -0
  2185. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-return-borrow.wit.json +0 -0
  2186. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-return-own.wit +0 -0
  2187. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources-return-own.wit.json +0 -0
  2188. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources.wit +0 -0
  2189. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources.wit.json +0 -0
  2190. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources1.wit +0 -0
  2191. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/resources1.wit.json +0 -0
  2192. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/same-name-import-export.wit +0 -0
  2193. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/same-name-import-export.wit.json +0 -0
  2194. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/shared-types.wit +0 -0
  2195. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/shared-types.wit.json +0 -0
  2196. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/simple-wasm-text.wat +0 -0
  2197. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/simple-wasm-text.wit.json +0 -0
  2198. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/stress-export-elaborate.wit +0 -0
  2199. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/stress-export-elaborate.wit.json +0 -0
  2200. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/type-then-eof.wit +0 -0
  2201. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/type-then-eof.wit.json +0 -0
  2202. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/union-fuzz-1.wit +0 -0
  2203. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/union-fuzz-1.wit.json +0 -0
  2204. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/use-chain.wit +0 -0
  2205. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/use-chain.wit.json +0 -0
  2206. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/use.wit +0 -0
  2207. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/use.wit.json +0 -0
  2208. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/versions/deps/a1/foo.wit +0 -0
  2209. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/versions/deps/a2/foo.wit +0 -0
  2210. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/versions/foo.wit +0 -0
  2211. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/versions.wit.json +0 -0
  2212. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/wasi.wit.json +0 -0
  2213. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-diamond.wit +0 -0
  2214. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-diamond.wit.json +0 -0
  2215. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-iface-no-collide.wit +0 -0
  2216. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-iface-no-collide.wit.json +0 -0
  2217. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-implicit-import1.wit +0 -0
  2218. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-implicit-import1.wit.json +0 -0
  2219. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-implicit-import2.wit +0 -0
  2220. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-implicit-import2.wit.json +0 -0
  2221. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-implicit-import3.wit +0 -0
  2222. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-implicit-import3.wit.json +0 -0
  2223. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-same-fields4.wit +0 -0
  2224. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-same-fields4.wit.json +0 -0
  2225. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-top-level-funcs.wit +0 -0
  2226. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-top-level-funcs.wit.json +0 -0
  2227. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-top-level-resources.wit +0 -0
  2228. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/world-top-level-resources.wit.json +0 -0
  2229. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/worlds-union-dedup.wit +0 -0
  2230. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/worlds-union-dedup.wit.json +0 -0
  2231. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/worlds-with-types.wit +0 -0
  2232. /data/ext/cargo-vendor/{wit-parser-0.201.0 → wit-parser-0.202.0}/tests/ui/worlds-with-types.wit.json +0 -0
@@ -0,0 +1,3233 @@
1
+ //! Low-level compilation of an fused adapter function.
2
+ //!
3
+ //! This module is tasked with the top-level `compile` function which creates a
4
+ //! single WebAssembly function which will perform the steps of the fused
5
+ //! adapter for an `AdapterData` provided. This is the "meat" of compilation
6
+ //! where the validation of the canonical ABI or similar all happens to
7
+ //! translate arguments from one module to another.
8
+ //!
9
+ //! ## Traps and their ordering
10
+ //!
11
+ //! Currently this compiler is pretty "loose" about the ordering of precisely
12
+ //! what trap happens where. The main reason for this is that to core wasm all
13
+ //! traps are the same and for fused adapters if a trap happens no intermediate
14
+ //! side effects are visible (as designed by the canonical ABI itself). For this
15
+ //! it's important to note that some of the precise choices of control flow here
16
+ //! can be somewhat arbitrary, an intentional decision.
17
+
18
+ use crate::component::{
19
+ CanonicalAbiInfo, ComponentTypesBuilder, FixedEncoding as FE, FlatType, InterfaceType,
20
+ StringEncoding, Transcode, TypeEnumIndex, TypeFlagsIndex, TypeListIndex, TypeOptionIndex,
21
+ TypeRecordIndex, TypeResourceTableIndex, TypeResultIndex, TypeTupleIndex, TypeVariantIndex,
22
+ VariantInfo, FLAG_MAY_ENTER, FLAG_MAY_LEAVE, MAX_FLAT_PARAMS, MAX_FLAT_RESULTS,
23
+ };
24
+ use crate::fact::signature::Signature;
25
+ use crate::fact::transcode::Transcoder;
26
+ use crate::fact::traps::Trap;
27
+ use crate::fact::{
28
+ AdapterData, Body, Context, Function, FunctionId, Helper, HelperLocation, HelperType, Module,
29
+ Options,
30
+ };
31
+ use crate::{FuncIndex, GlobalIndex};
32
+ use std::collections::HashMap;
33
+ use std::mem;
34
+ use std::ops::Range;
35
+ use wasm_encoder::{BlockType, Encode, Instruction, Instruction::*, MemArg, ValType};
36
+ use wasmtime_component_util::{DiscriminantSize, FlagsSize};
37
+
38
+ const MAX_STRING_BYTE_LENGTH: u32 = 1 << 31;
39
+ const UTF16_TAG: u32 = 1 << 31;
40
+
41
+ /// This value is arbitrarily chosen and should be fine to change at any time,
42
+ /// it just seemed like a halfway reasonable starting point.
43
+ const INITIAL_FUEL: usize = 1_000;
44
+
45
+ struct Compiler<'a, 'b> {
46
+ types: &'a ComponentTypesBuilder,
47
+ module: &'b mut Module<'a>,
48
+ result: FunctionId,
49
+
50
+ /// The encoded WebAssembly function body so far, not including locals.
51
+ code: Vec<u8>,
52
+
53
+ /// Total number of locals generated so far.
54
+ nlocals: u32,
55
+
56
+ /// Locals partitioned by type which are not currently in use.
57
+ free_locals: HashMap<ValType, Vec<u32>>,
58
+
59
+ /// Metadata about all `unreachable` trap instructions in this function and
60
+ /// what the trap represents. The offset within `self.code` is recorded as
61
+ /// well.
62
+ traps: Vec<(usize, Trap)>,
63
+
64
+ /// A heuristic which is intended to limit the size of a generated function
65
+ /// to a certain maximum to avoid generating arbitrarily large functions.
66
+ ///
67
+ /// This fuel counter is decremented each time `translate` is called and
68
+ /// when fuel is entirely consumed further translations, if necessary, will
69
+ /// be done through calls to other functions in the module. This is intended
70
+ /// to be a heuristic to split up the main function into theoretically
71
+ /// reusable portions.
72
+ fuel: usize,
73
+
74
+ /// Indicates whether an "enter call" should be emitted in the generated
75
+ /// function with a call to `Resource{Enter,Exit}Call` at the beginning and
76
+ /// end of the function for tracking of information related to borrowed
77
+ /// resources.
78
+ emit_resource_call: bool,
79
+ }
80
+
81
+ pub(super) fn compile(module: &mut Module<'_>, adapter: &AdapterData) {
82
+ let lower_sig = module.types.signature(&adapter.lower, Context::Lower);
83
+ let lift_sig = module.types.signature(&adapter.lift, Context::Lift);
84
+ let ty = module
85
+ .core_types
86
+ .function(&lower_sig.params, &lower_sig.results);
87
+ let result = module
88
+ .funcs
89
+ .push(Function::new(Some(adapter.name.clone()), ty));
90
+
91
+ // If this type signature contains any borrowed resources then invocations
92
+ // of enter/exit call for resource-related metadata tracking must be used.
93
+ // It shouldn't matter whether the lower/lift signature is used here as both
94
+ // should return the same answer.
95
+ let emit_resource_call = module.types.contains_borrow_resource(&adapter.lower);
96
+ assert_eq!(
97
+ emit_resource_call,
98
+ module.types.contains_borrow_resource(&adapter.lift)
99
+ );
100
+
101
+ Compiler {
102
+ types: module.types,
103
+ module,
104
+ code: Vec::new(),
105
+ nlocals: lower_sig.params.len() as u32,
106
+ free_locals: HashMap::new(),
107
+ traps: Vec::new(),
108
+ result,
109
+ fuel: INITIAL_FUEL,
110
+ emit_resource_call,
111
+ }
112
+ .compile_adapter(adapter, &lower_sig, &lift_sig)
113
+ }
114
+
115
+ /// Compiles a helper function as specified by the `Helper` configuration.
116
+ ///
117
+ /// This function is invoked when the translation process runs out of fuel for
118
+ /// some prior function which enqueues a helper to get translated later. This
119
+ /// translation function will perform one type translation as specified by
120
+ /// `Helper` which can either be in the stack or memory for each side.
121
+ pub(super) fn compile_helper(module: &mut Module<'_>, result: FunctionId, helper: Helper) {
122
+ let mut nlocals = 0;
123
+ let src_flat;
124
+ let src = match helper.src.loc {
125
+ // If the source is on the stack then it's specified in the parameters
126
+ // to the function, so this creates the flattened representation and
127
+ // then lists those as the locals with appropriate types for the source
128
+ // values.
129
+ HelperLocation::Stack => {
130
+ src_flat = module
131
+ .types
132
+ .flatten_types(&helper.src.opts, usize::MAX, [helper.src.ty])
133
+ .unwrap()
134
+ .iter()
135
+ .enumerate()
136
+ .map(|(i, ty)| (i as u32, *ty))
137
+ .collect::<Vec<_>>();
138
+ nlocals += src_flat.len() as u32;
139
+ Source::Stack(Stack {
140
+ locals: &src_flat,
141
+ opts: &helper.src.opts,
142
+ })
143
+ }
144
+ // If the source is in memory then that's just propagated here as the
145
+ // first local is the pointer to the source.
146
+ HelperLocation::Memory => {
147
+ nlocals += 1;
148
+ Source::Memory(Memory {
149
+ opts: &helper.src.opts,
150
+ addr: TempLocal::new(0, helper.src.opts.ptr()),
151
+ offset: 0,
152
+ })
153
+ }
154
+ };
155
+ let dst_flat;
156
+ let dst = match helper.dst.loc {
157
+ // This is the same as the stack-based source although `Destination` is
158
+ // configured slightly differently.
159
+ HelperLocation::Stack => {
160
+ dst_flat = module
161
+ .types
162
+ .flatten_types(&helper.dst.opts, usize::MAX, [helper.dst.ty])
163
+ .unwrap();
164
+ Destination::Stack(&dst_flat, &helper.dst.opts)
165
+ }
166
+ // This is the same as a memroy-based source but note that the address
167
+ // of the destination is passed as the final parameter to the function.
168
+ HelperLocation::Memory => {
169
+ nlocals += 1;
170
+ Destination::Memory(Memory {
171
+ opts: &helper.dst.opts,
172
+ addr: TempLocal::new(nlocals - 1, helper.dst.opts.ptr()),
173
+ offset: 0,
174
+ })
175
+ }
176
+ };
177
+ let mut compiler = Compiler {
178
+ types: module.types,
179
+ module,
180
+ code: Vec::new(),
181
+ nlocals,
182
+ free_locals: HashMap::new(),
183
+ traps: Vec::new(),
184
+ result,
185
+ fuel: INITIAL_FUEL,
186
+ // This is a helper function and only the top-level function is
187
+ // responsible for emitting these intrinsic calls.
188
+ emit_resource_call: false,
189
+ };
190
+ compiler.translate(&helper.src.ty, &src, &helper.dst.ty, &dst);
191
+ compiler.finish();
192
+ }
193
+
194
+ /// Possible ways that a interface value is represented in the core wasm
195
+ /// canonical ABI.
196
+ enum Source<'a> {
197
+ /// This value is stored on the "stack" in wasm locals.
198
+ ///
199
+ /// This could mean that it's inline from the parameters to the function or
200
+ /// that after a function call the results were stored in locals and the
201
+ /// locals are the inline results.
202
+ Stack(Stack<'a>),
203
+
204
+ /// This value is stored in linear memory described by the `Memory`
205
+ /// structure.
206
+ Memory(Memory<'a>),
207
+ }
208
+
209
+ /// Same as `Source` but for where values are translated into.
210
+ enum Destination<'a> {
211
+ /// This value is destined for the WebAssembly stack which means that
212
+ /// results are simply pushed as we go along.
213
+ ///
214
+ /// The types listed are the types that are expected to be on the stack at
215
+ /// the end of translation.
216
+ Stack(&'a [ValType], &'a Options),
217
+
218
+ /// This value is to be placed in linear memory described by `Memory`.
219
+ Memory(Memory<'a>),
220
+ }
221
+
222
+ struct Stack<'a> {
223
+ /// The locals that comprise a particular value.
224
+ ///
225
+ /// The length of this list represents the flattened list of types that make
226
+ /// up the component value. Each list has the index of the local being
227
+ /// accessed as well as the type of the local itself.
228
+ locals: &'a [(u32, ValType)],
229
+ /// The lifting/lowering options for where this stack of values comes from
230
+ opts: &'a Options,
231
+ }
232
+
233
+ /// Representation of where a value is going to be stored in linear memory.
234
+ struct Memory<'a> {
235
+ /// The lifting/lowering options with memory configuration
236
+ opts: &'a Options,
237
+ /// The index of the local that contains the base address of where the
238
+ /// storage is happening.
239
+ addr: TempLocal,
240
+ /// A "static" offset that will be baked into wasm instructions for where
241
+ /// memory loads/stores happen.
242
+ offset: u32,
243
+ }
244
+
245
+ impl Compiler<'_, '_> {
246
+ fn compile_adapter(
247
+ mut self,
248
+ adapter: &AdapterData,
249
+ lower_sig: &Signature,
250
+ lift_sig: &Signature,
251
+ ) {
252
+ // Check the instance flags required for this trampoline.
253
+ //
254
+ // This inserts the initial check required by `canon_lower` that the
255
+ // caller instance can be left and additionally checks the
256
+ // flags on the callee if necessary whether it can be entered.
257
+ self.trap_if_not_flag(adapter.lower.flags, FLAG_MAY_LEAVE, Trap::CannotLeave);
258
+ if adapter.called_as_export {
259
+ self.trap_if_not_flag(adapter.lift.flags, FLAG_MAY_ENTER, Trap::CannotEnter);
260
+ self.set_flag(adapter.lift.flags, FLAG_MAY_ENTER, false);
261
+ } else if self.module.debug {
262
+ self.assert_not_flag(
263
+ adapter.lift.flags,
264
+ FLAG_MAY_ENTER,
265
+ "may_enter should be unset",
266
+ );
267
+ }
268
+
269
+ if self.emit_resource_call {
270
+ let enter = self.module.import_resource_enter_call();
271
+ self.instruction(Call(enter.as_u32()));
272
+ }
273
+
274
+ // Perform the translation of arguments. Note that `FLAG_MAY_LEAVE` is
275
+ // cleared around this invocation for the callee as per the
276
+ // `canon_lift` definition in the spec. Additionally note that the
277
+ // precise ordering of traps here is not required since internal state
278
+ // is not visible to either instance and a trap will "lock down" both
279
+ // instances to no longer be visible. This means that we're free to
280
+ // reorder lifts/lowers and flags and such as is necessary and
281
+ // convenient here.
282
+ //
283
+ // TODO: if translation doesn't actually call any functions in either
284
+ // instance then there's no need to set/clear the flag here and that can
285
+ // be optimized away.
286
+ self.set_flag(adapter.lift.flags, FLAG_MAY_LEAVE, false);
287
+ let param_locals = lower_sig
288
+ .params
289
+ .iter()
290
+ .enumerate()
291
+ .map(|(i, ty)| (i as u32, *ty))
292
+ .collect::<Vec<_>>();
293
+ self.translate_params(adapter, &param_locals);
294
+ self.set_flag(adapter.lift.flags, FLAG_MAY_LEAVE, true);
295
+
296
+ // With all the arguments on the stack the actual target function is
297
+ // now invoked. The core wasm results of the function are then placed
298
+ // into locals for result translation afterwards.
299
+ self.instruction(Call(adapter.callee.as_u32()));
300
+ let mut result_locals = Vec::with_capacity(lift_sig.results.len());
301
+ let mut temps = Vec::new();
302
+ for ty in lift_sig.results.iter().rev() {
303
+ let local = self.local_set_new_tmp(*ty);
304
+ result_locals.push((local.idx, *ty));
305
+ temps.push(local);
306
+ }
307
+ result_locals.reverse();
308
+
309
+ // Like above during the translation of results the caller cannot be
310
+ // left (as we might invoke things like `realloc`). Again the precise
311
+ // order of everything doesn't matter since intermediate states cannot
312
+ // be witnessed, hence the setting of flags here to encapsulate both
313
+ // liftings and lowerings.
314
+ //
315
+ // TODO: like above the management of the `MAY_LEAVE` flag can probably
316
+ // be elided here for "simple" results.
317
+ self.set_flag(adapter.lower.flags, FLAG_MAY_LEAVE, false);
318
+ self.translate_results(adapter, &param_locals, &result_locals);
319
+ self.set_flag(adapter.lower.flags, FLAG_MAY_LEAVE, true);
320
+
321
+ // And finally post-return state is handled here once all results/etc
322
+ // are all translated.
323
+ if let Some(func) = adapter.lift.post_return {
324
+ for (result, _) in result_locals.iter() {
325
+ self.instruction(LocalGet(*result));
326
+ }
327
+ self.instruction(Call(func.as_u32()));
328
+ }
329
+ if adapter.called_as_export {
330
+ self.set_flag(adapter.lift.flags, FLAG_MAY_ENTER, true);
331
+ }
332
+
333
+ for tmp in temps {
334
+ self.free_temp_local(tmp);
335
+ }
336
+
337
+ if self.emit_resource_call {
338
+ let exit = self.module.import_resource_exit_call();
339
+ self.instruction(Call(exit.as_u32()));
340
+ }
341
+
342
+ self.finish()
343
+ }
344
+
345
+ fn translate_params(&mut self, adapter: &AdapterData, param_locals: &[(u32, ValType)]) {
346
+ let src_tys = self.types[adapter.lower.ty].params;
347
+ let src_tys = self.types[src_tys]
348
+ .types
349
+ .iter()
350
+ .copied()
351
+ .collect::<Vec<_>>();
352
+ let dst_tys = self.types[adapter.lift.ty].params;
353
+ let dst_tys = self.types[dst_tys]
354
+ .types
355
+ .iter()
356
+ .copied()
357
+ .collect::<Vec<_>>();
358
+ let lift_opts = &adapter.lift.options;
359
+ let lower_opts = &adapter.lower.options;
360
+
361
+ // TODO: handle subtyping
362
+ assert_eq!(src_tys.len(), dst_tys.len());
363
+
364
+ let src_flat =
365
+ self.types
366
+ .flatten_types(lower_opts, MAX_FLAT_PARAMS, src_tys.iter().copied());
367
+ let dst_flat =
368
+ self.types
369
+ .flatten_types(lift_opts, MAX_FLAT_PARAMS, dst_tys.iter().copied());
370
+
371
+ let src = if let Some(flat) = &src_flat {
372
+ Source::Stack(Stack {
373
+ locals: &param_locals[..flat.len()],
374
+ opts: lower_opts,
375
+ })
376
+ } else {
377
+ // If there are too many parameters then that means the parameters
378
+ // are actually a tuple stored in linear memory addressed by the
379
+ // first parameter local.
380
+ let (addr, ty) = param_locals[0];
381
+ assert_eq!(ty, lower_opts.ptr());
382
+ let align = src_tys
383
+ .iter()
384
+ .map(|t| self.types.align(lower_opts, t))
385
+ .max()
386
+ .unwrap_or(1);
387
+ Source::Memory(self.memory_operand(lower_opts, TempLocal::new(addr, ty), align))
388
+ };
389
+
390
+ let dst = if let Some(flat) = &dst_flat {
391
+ Destination::Stack(flat, lift_opts)
392
+ } else {
393
+ // If there are too many parameters then space is allocated in the
394
+ // destination module for the parameters via its `realloc` function.
395
+ let abi = CanonicalAbiInfo::record(dst_tys.iter().map(|t| self.types.canonical_abi(t)));
396
+ let (size, align) = if lift_opts.memory64 {
397
+ (abi.size64, abi.align64)
398
+ } else {
399
+ (abi.size32, abi.align32)
400
+ };
401
+ let size = MallocSize::Const(size);
402
+ Destination::Memory(self.malloc(lift_opts, size, align))
403
+ };
404
+
405
+ let srcs = src
406
+ .record_field_srcs(self.types, src_tys.iter().copied())
407
+ .zip(src_tys.iter());
408
+ let dsts = dst
409
+ .record_field_dsts(self.types, dst_tys.iter().copied())
410
+ .zip(dst_tys.iter());
411
+ for ((src, src_ty), (dst, dst_ty)) in srcs.zip(dsts) {
412
+ self.translate(&src_ty, &src, &dst_ty, &dst);
413
+ }
414
+
415
+ // If the destination was linear memory instead of the stack then the
416
+ // actual parameter that we're passing is the address of the values
417
+ // stored, so ensure that's happening in the wasm body here.
418
+ if let Destination::Memory(mem) = dst {
419
+ self.instruction(LocalGet(mem.addr.idx));
420
+ self.free_temp_local(mem.addr);
421
+ }
422
+ }
423
+
424
+ fn translate_results(
425
+ &mut self,
426
+ adapter: &AdapterData,
427
+ param_locals: &[(u32, ValType)],
428
+ result_locals: &[(u32, ValType)],
429
+ ) {
430
+ let src_tys = self.types[adapter.lift.ty].results;
431
+ let src_tys = self.types[src_tys]
432
+ .types
433
+ .iter()
434
+ .map(|ty| *ty)
435
+ .collect::<Vec<_>>();
436
+ let dst_tys = self.types[adapter.lower.ty].results;
437
+ let dst_tys = self.types[dst_tys]
438
+ .types
439
+ .iter()
440
+ .map(|ty| *ty)
441
+ .collect::<Vec<_>>();
442
+ let lift_opts = &adapter.lift.options;
443
+ let lower_opts = &adapter.lower.options;
444
+
445
+ let src_flat =
446
+ self.types
447
+ .flatten_types(lift_opts, MAX_FLAT_RESULTS, src_tys.iter().copied());
448
+ let dst_flat =
449
+ self.types
450
+ .flatten_types(lower_opts, MAX_FLAT_RESULTS, dst_tys.iter().copied());
451
+
452
+ let src = if src_flat.is_some() {
453
+ Source::Stack(Stack {
454
+ locals: result_locals,
455
+ opts: lift_opts,
456
+ })
457
+ } else {
458
+ // The original results to read from in this case come from the
459
+ // return value of the function itself. The imported function will
460
+ // return a linear memory address at which the values can be read
461
+ // from.
462
+ let align = src_tys
463
+ .iter()
464
+ .map(|t| self.types.align(lift_opts, t))
465
+ .max()
466
+ .unwrap_or(1);
467
+ assert_eq!(result_locals.len(), 1);
468
+ let (addr, ty) = result_locals[0];
469
+ assert_eq!(ty, lift_opts.ptr());
470
+ Source::Memory(self.memory_operand(lift_opts, TempLocal::new(addr, ty), align))
471
+ };
472
+
473
+ let dst = if let Some(flat) = &dst_flat {
474
+ Destination::Stack(flat, lower_opts)
475
+ } else {
476
+ // This is slightly different than `translate_params` where the
477
+ // return pointer was provided by the caller of this function
478
+ // meaning the last parameter local is a pointer into linear memory.
479
+ let align = dst_tys
480
+ .iter()
481
+ .map(|t| self.types.align(lower_opts, t))
482
+ .max()
483
+ .unwrap_or(1);
484
+ let (addr, ty) = *param_locals.last().expect("no retptr");
485
+ assert_eq!(ty, lower_opts.ptr());
486
+ Destination::Memory(self.memory_operand(lower_opts, TempLocal::new(addr, ty), align))
487
+ };
488
+
489
+ let srcs = src
490
+ .record_field_srcs(self.types, src_tys.iter().copied())
491
+ .zip(src_tys.iter());
492
+ let dsts = dst
493
+ .record_field_dsts(self.types, dst_tys.iter().copied())
494
+ .zip(dst_tys.iter());
495
+ for ((src, src_ty), (dst, dst_ty)) in srcs.zip(dsts) {
496
+ self.translate(&src_ty, &src, &dst_ty, &dst);
497
+ }
498
+ }
499
+
500
+ fn translate(
501
+ &mut self,
502
+ src_ty: &InterfaceType,
503
+ src: &Source<'_>,
504
+ dst_ty: &InterfaceType,
505
+ dst: &Destination,
506
+ ) {
507
+ if let Source::Memory(mem) = src {
508
+ self.assert_aligned(src_ty, mem);
509
+ }
510
+ if let Destination::Memory(mem) = dst {
511
+ self.assert_aligned(dst_ty, mem);
512
+ }
513
+
514
+ // Calculate a cost heuristic for what the translation of this specific
515
+ // layer of the type is going to incur. The purpose of this cost is that
516
+ // we'll deduct it from `self.fuel` and if no fuel is remaining then
517
+ // translation is outlined into a separate function rather than being
518
+ // translated into this function.
519
+ //
520
+ // The general goal is to avoid creating an exponentially sized function
521
+ // for a linearly sized input (the type section). By outlining helper
522
+ // functions there will ideally be a constant set of helper functions
523
+ // per type (to accomodate in-memory or on-stack transfers as well as
524
+ // src/dst options) which means that each function is at most a certain
525
+ // size and we have a linear number of functions which should guarantee
526
+ // an overall linear size of the output.
527
+ //
528
+ // To implement this the current heuristic is that each layer of
529
+ // translating a type has a cost associated with it and this cost is
530
+ // accounted for in `self.fuel`. Some conversions are considered free as
531
+ // they generate basically as much code as the `call` to the translation
532
+ // function while other are considered proportionally expensive to the
533
+ // size of the type. The hope is that some upper layers are of a type's
534
+ // translation are all inlined into one function but bottom layers end
535
+ // up getting outlined to separate functions. Theoretically, again this
536
+ // is built on hopes and dreams, the outlining can be shared amongst
537
+ // tightly-intertwined type hierarchies which will reduce the size of
538
+ // the output module due to the helpers being used.
539
+ //
540
+ // This heuristic of how to split functions has changed a few times in
541
+ // the past and this isn't necessarily guaranteed to be the final
542
+ // iteration.
543
+ let cost = match src_ty {
544
+ // These types are all quite simple to load/store and equate to
545
+ // basically the same cost of the `call` instruction to call an
546
+ // out-of-line translation function, so give them 0 cost.
547
+ InterfaceType::Bool
548
+ | InterfaceType::U8
549
+ | InterfaceType::S8
550
+ | InterfaceType::U16
551
+ | InterfaceType::S16
552
+ | InterfaceType::U32
553
+ | InterfaceType::S32
554
+ | InterfaceType::U64
555
+ | InterfaceType::S64
556
+ | InterfaceType::Float32
557
+ | InterfaceType::Float64 => 0,
558
+
559
+ // This has a small amount of validation associated with it, so
560
+ // give it a cost of 1.
561
+ InterfaceType::Char => 1,
562
+
563
+ // This has a fair bit of code behind it depending on the
564
+ // strings/encodings in play, so arbitrarily assign it this cost.
565
+ InterfaceType::String => 40,
566
+
567
+ // Iteration of a loop is along the lines of the cost of a string
568
+ // so give it the same cost
569
+ InterfaceType::List(_) => 40,
570
+
571
+ InterfaceType::Flags(i) => {
572
+ let count = self.module.types[*i].names.len();
573
+ match FlagsSize::from_count(count) {
574
+ FlagsSize::Size0 => 0,
575
+ FlagsSize::Size1 | FlagsSize::Size2 => 1,
576
+ FlagsSize::Size4Plus(n) => n.into(),
577
+ }
578
+ }
579
+
580
+ InterfaceType::Record(i) => self.types[*i].fields.len(),
581
+ InterfaceType::Tuple(i) => self.types[*i].types.len(),
582
+ InterfaceType::Variant(i) => self.types[*i].cases.len(),
583
+ InterfaceType::Enum(i) => self.types[*i].names.len(),
584
+
585
+ // 2 cases to consider for each of these variants.
586
+ InterfaceType::Option(_) | InterfaceType::Result(_) => 2,
587
+
588
+ // TODO(#6696) - something nonzero, is 1 right?
589
+ InterfaceType::Own(_) | InterfaceType::Borrow(_) => 1,
590
+ };
591
+
592
+ match self.fuel.checked_sub(cost) {
593
+ // This function has enough fuel to perform the layer of translation
594
+ // necessary for this type, so the fuel is updated in-place and
595
+ // translation continues. Note that the recursion here is bounded by
596
+ // the static recursion limit for all interface types as imposed
597
+ // during the translation phase.
598
+ Some(n) => {
599
+ self.fuel = n;
600
+ match src_ty {
601
+ InterfaceType::Bool => self.translate_bool(src, dst_ty, dst),
602
+ InterfaceType::U8 => self.translate_u8(src, dst_ty, dst),
603
+ InterfaceType::S8 => self.translate_s8(src, dst_ty, dst),
604
+ InterfaceType::U16 => self.translate_u16(src, dst_ty, dst),
605
+ InterfaceType::S16 => self.translate_s16(src, dst_ty, dst),
606
+ InterfaceType::U32 => self.translate_u32(src, dst_ty, dst),
607
+ InterfaceType::S32 => self.translate_s32(src, dst_ty, dst),
608
+ InterfaceType::U64 => self.translate_u64(src, dst_ty, dst),
609
+ InterfaceType::S64 => self.translate_s64(src, dst_ty, dst),
610
+ InterfaceType::Float32 => self.translate_f32(src, dst_ty, dst),
611
+ InterfaceType::Float64 => self.translate_f64(src, dst_ty, dst),
612
+ InterfaceType::Char => self.translate_char(src, dst_ty, dst),
613
+ InterfaceType::String => self.translate_string(src, dst_ty, dst),
614
+ InterfaceType::List(t) => self.translate_list(*t, src, dst_ty, dst),
615
+ InterfaceType::Record(t) => self.translate_record(*t, src, dst_ty, dst),
616
+ InterfaceType::Flags(f) => self.translate_flags(*f, src, dst_ty, dst),
617
+ InterfaceType::Tuple(t) => self.translate_tuple(*t, src, dst_ty, dst),
618
+ InterfaceType::Variant(v) => self.translate_variant(*v, src, dst_ty, dst),
619
+ InterfaceType::Enum(t) => self.translate_enum(*t, src, dst_ty, dst),
620
+ InterfaceType::Option(t) => self.translate_option(*t, src, dst_ty, dst),
621
+ InterfaceType::Result(t) => self.translate_result(*t, src, dst_ty, dst),
622
+ InterfaceType::Own(t) => self.translate_own(*t, src, dst_ty, dst),
623
+ InterfaceType::Borrow(t) => self.translate_borrow(*t, src, dst_ty, dst),
624
+ }
625
+ }
626
+
627
+ // This function does not have enough fuel left to perform this
628
+ // layer of translation so the translation is deferred to a helper
629
+ // function. The actual translation here is then done by marshalling
630
+ // the src/dst into the function we're calling and then processing
631
+ // the results.
632
+ None => {
633
+ let src_loc = match src {
634
+ // If the source is on the stack then `stack_get` is used to
635
+ // convert everything to the appropriate flat representation
636
+ // for the source type.
637
+ Source::Stack(stack) => {
638
+ for (i, ty) in stack
639
+ .opts
640
+ .flat_types(src_ty, self.types)
641
+ .unwrap()
642
+ .iter()
643
+ .enumerate()
644
+ {
645
+ let stack = stack.slice(i..i + 1);
646
+ self.stack_get(&stack, (*ty).into());
647
+ }
648
+ HelperLocation::Stack
649
+ }
650
+ // If the source is in memory then the pointer is passed
651
+ // through, but note that the offset must be factored in
652
+ // here since the translation function will start from
653
+ // offset 0.
654
+ Source::Memory(mem) => {
655
+ self.push_mem_addr(mem);
656
+ HelperLocation::Memory
657
+ }
658
+ };
659
+ let dst_loc = match dst {
660
+ Destination::Stack(..) => HelperLocation::Stack,
661
+ Destination::Memory(mem) => {
662
+ self.push_mem_addr(mem);
663
+ HelperLocation::Memory
664
+ }
665
+ };
666
+ // Generate a `FunctionId` corresponding to the `Helper`
667
+ // configuration that is necessary here. This will ideally be a
668
+ // "cache hit" and use a preexisting helper which represents
669
+ // outlining what would otherwise be duplicate code within a
670
+ // function to one function.
671
+ let helper = self.module.translate_helper(Helper {
672
+ src: HelperType {
673
+ ty: *src_ty,
674
+ opts: *src.opts(),
675
+ loc: src_loc,
676
+ },
677
+ dst: HelperType {
678
+ ty: *dst_ty,
679
+ opts: *dst.opts(),
680
+ loc: dst_loc,
681
+ },
682
+ });
683
+ // Emit a `call` instruction which will get "relocated" to a
684
+ // function index once translation has completely finished.
685
+ self.flush_code();
686
+ self.module.funcs[self.result].body.push(Body::Call(helper));
687
+
688
+ // If the destination of the translation was on the stack then
689
+ // the types on the stack need to be optionally converted to
690
+ // different types (e.g. if the result here is part of a variant
691
+ // somewhere else).
692
+ //
693
+ // This translation happens inline here by popping the results
694
+ // into new locals and then using those locals to do a
695
+ // `stack_set`.
696
+ if let Destination::Stack(tys, opts) = dst {
697
+ let flat = self
698
+ .types
699
+ .flatten_types(opts, usize::MAX, [*dst_ty])
700
+ .unwrap();
701
+ assert_eq!(flat.len(), tys.len());
702
+ let locals = flat
703
+ .iter()
704
+ .rev()
705
+ .map(|ty| self.local_set_new_tmp(*ty))
706
+ .collect::<Vec<_>>();
707
+ for (ty, local) in tys.iter().zip(locals.into_iter().rev()) {
708
+ self.instruction(LocalGet(local.idx));
709
+ self.stack_set(std::slice::from_ref(ty), local.ty);
710
+ self.free_temp_local(local);
711
+ }
712
+ }
713
+ }
714
+ }
715
+ }
716
+
717
+ fn push_mem_addr(&mut self, mem: &Memory<'_>) {
718
+ self.instruction(LocalGet(mem.addr.idx));
719
+ if mem.offset != 0 {
720
+ self.ptr_uconst(mem.opts, mem.offset);
721
+ self.ptr_add(mem.opts);
722
+ }
723
+ }
724
+
725
+ fn translate_bool(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
726
+ // TODO: subtyping
727
+ assert!(matches!(dst_ty, InterfaceType::Bool));
728
+ self.push_dst_addr(dst);
729
+
730
+ // Booleans are canonicalized to 0 or 1 as they pass through the
731
+ // component boundary, so use a `select` instruction to do so.
732
+ self.instruction(I32Const(1));
733
+ self.instruction(I32Const(0));
734
+ match src {
735
+ Source::Memory(mem) => self.i32_load8u(mem),
736
+ Source::Stack(stack) => self.stack_get(stack, ValType::I32),
737
+ }
738
+ self.instruction(Select);
739
+
740
+ match dst {
741
+ Destination::Memory(mem) => self.i32_store8(mem),
742
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
743
+ }
744
+ }
745
+
746
+ fn translate_u8(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
747
+ // TODO: subtyping
748
+ assert!(matches!(dst_ty, InterfaceType::U8));
749
+ self.convert_u8_mask(src, dst, 0xff);
750
+ }
751
+
752
+ fn convert_u8_mask(&mut self, src: &Source<'_>, dst: &Destination<'_>, mask: u8) {
753
+ self.push_dst_addr(dst);
754
+ let mut needs_mask = true;
755
+ match src {
756
+ Source::Memory(mem) => {
757
+ self.i32_load8u(mem);
758
+ needs_mask = mask != 0xff;
759
+ }
760
+ Source::Stack(stack) => {
761
+ self.stack_get(stack, ValType::I32);
762
+ }
763
+ }
764
+ if needs_mask {
765
+ self.instruction(I32Const(i32::from(mask)));
766
+ self.instruction(I32And);
767
+ }
768
+ match dst {
769
+ Destination::Memory(mem) => self.i32_store8(mem),
770
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
771
+ }
772
+ }
773
+
774
+ fn translate_s8(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
775
+ // TODO: subtyping
776
+ assert!(matches!(dst_ty, InterfaceType::S8));
777
+ self.push_dst_addr(dst);
778
+ match src {
779
+ Source::Memory(mem) => self.i32_load8s(mem),
780
+ Source::Stack(stack) => {
781
+ self.stack_get(stack, ValType::I32);
782
+ self.instruction(I32Extend8S);
783
+ }
784
+ }
785
+ match dst {
786
+ Destination::Memory(mem) => self.i32_store8(mem),
787
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
788
+ }
789
+ }
790
+
791
+ fn translate_u16(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
792
+ // TODO: subtyping
793
+ assert!(matches!(dst_ty, InterfaceType::U16));
794
+ self.convert_u16_mask(src, dst, 0xffff);
795
+ }
796
+
797
+ fn convert_u16_mask(&mut self, src: &Source<'_>, dst: &Destination<'_>, mask: u16) {
798
+ self.push_dst_addr(dst);
799
+ let mut needs_mask = true;
800
+ match src {
801
+ Source::Memory(mem) => {
802
+ self.i32_load16u(mem);
803
+ needs_mask = mask != 0xffff;
804
+ }
805
+ Source::Stack(stack) => {
806
+ self.stack_get(stack, ValType::I32);
807
+ }
808
+ }
809
+ if needs_mask {
810
+ self.instruction(I32Const(i32::from(mask)));
811
+ self.instruction(I32And);
812
+ }
813
+ match dst {
814
+ Destination::Memory(mem) => self.i32_store16(mem),
815
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
816
+ }
817
+ }
818
+
819
+ fn translate_s16(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
820
+ // TODO: subtyping
821
+ assert!(matches!(dst_ty, InterfaceType::S16));
822
+ self.push_dst_addr(dst);
823
+ match src {
824
+ Source::Memory(mem) => self.i32_load16s(mem),
825
+ Source::Stack(stack) => {
826
+ self.stack_get(stack, ValType::I32);
827
+ self.instruction(I32Extend16S);
828
+ }
829
+ }
830
+ match dst {
831
+ Destination::Memory(mem) => self.i32_store16(mem),
832
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
833
+ }
834
+ }
835
+
836
+ fn translate_u32(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
837
+ // TODO: subtyping
838
+ assert!(matches!(dst_ty, InterfaceType::U32));
839
+ self.convert_u32_mask(src, dst, 0xffffffff)
840
+ }
841
+
842
+ fn convert_u32_mask(&mut self, src: &Source<'_>, dst: &Destination<'_>, mask: u32) {
843
+ self.push_dst_addr(dst);
844
+ match src {
845
+ Source::Memory(mem) => self.i32_load(mem),
846
+ Source::Stack(stack) => self.stack_get(stack, ValType::I32),
847
+ }
848
+ if mask != 0xffffffff {
849
+ self.instruction(I32Const(mask as i32));
850
+ self.instruction(I32And);
851
+ }
852
+ match dst {
853
+ Destination::Memory(mem) => self.i32_store(mem),
854
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
855
+ }
856
+ }
857
+
858
+ fn translate_s32(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
859
+ // TODO: subtyping
860
+ assert!(matches!(dst_ty, InterfaceType::S32));
861
+ self.push_dst_addr(dst);
862
+ match src {
863
+ Source::Memory(mem) => self.i32_load(mem),
864
+ Source::Stack(stack) => self.stack_get(stack, ValType::I32),
865
+ }
866
+ match dst {
867
+ Destination::Memory(mem) => self.i32_store(mem),
868
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
869
+ }
870
+ }
871
+
872
+ fn translate_u64(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
873
+ // TODO: subtyping
874
+ assert!(matches!(dst_ty, InterfaceType::U64));
875
+ self.push_dst_addr(dst);
876
+ match src {
877
+ Source::Memory(mem) => self.i64_load(mem),
878
+ Source::Stack(stack) => self.stack_get(stack, ValType::I64),
879
+ }
880
+ match dst {
881
+ Destination::Memory(mem) => self.i64_store(mem),
882
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I64),
883
+ }
884
+ }
885
+
886
+ fn translate_s64(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
887
+ // TODO: subtyping
888
+ assert!(matches!(dst_ty, InterfaceType::S64));
889
+ self.push_dst_addr(dst);
890
+ match src {
891
+ Source::Memory(mem) => self.i64_load(mem),
892
+ Source::Stack(stack) => self.stack_get(stack, ValType::I64),
893
+ }
894
+ match dst {
895
+ Destination::Memory(mem) => self.i64_store(mem),
896
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I64),
897
+ }
898
+ }
899
+
900
+ fn translate_f32(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
901
+ // TODO: subtyping
902
+ assert!(matches!(dst_ty, InterfaceType::Float32));
903
+ self.push_dst_addr(dst);
904
+ match src {
905
+ Source::Memory(mem) => self.f32_load(mem),
906
+ Source::Stack(stack) => self.stack_get(stack, ValType::F32),
907
+ }
908
+ match dst {
909
+ Destination::Memory(mem) => self.f32_store(mem),
910
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::F32),
911
+ }
912
+ }
913
+
914
+ fn translate_f64(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
915
+ // TODO: subtyping
916
+ assert!(matches!(dst_ty, InterfaceType::Float64));
917
+ self.push_dst_addr(dst);
918
+ match src {
919
+ Source::Memory(mem) => self.f64_load(mem),
920
+ Source::Stack(stack) => self.stack_get(stack, ValType::F64),
921
+ }
922
+ match dst {
923
+ Destination::Memory(mem) => self.f64_store(mem),
924
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::F64),
925
+ }
926
+ }
927
+
928
+ fn translate_char(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
929
+ assert!(matches!(dst_ty, InterfaceType::Char));
930
+ match src {
931
+ Source::Memory(mem) => self.i32_load(mem),
932
+ Source::Stack(stack) => self.stack_get(stack, ValType::I32),
933
+ }
934
+ let local = self.local_set_new_tmp(ValType::I32);
935
+
936
+ // This sequence is copied from the output of LLVM for:
937
+ //
938
+ // pub extern "C" fn foo(x: u32) -> char {
939
+ // char::try_from(x)
940
+ // .unwrap_or_else(|_| std::arch::wasm32::unreachable())
941
+ // }
942
+ //
943
+ // Apparently this does what's required by the canonical ABI:
944
+ //
945
+ // def i32_to_char(opts, i):
946
+ // trap_if(i >= 0x110000)
947
+ // trap_if(0xD800 <= i <= 0xDFFF)
948
+ // return chr(i)
949
+ //
950
+ // ... but I don't know how it works other than "well I trust LLVM"
951
+ self.instruction(Block(BlockType::Empty));
952
+ self.instruction(Block(BlockType::Empty));
953
+ self.instruction(LocalGet(local.idx));
954
+ self.instruction(I32Const(0xd800));
955
+ self.instruction(I32Xor);
956
+ self.instruction(I32Const(-0x110000));
957
+ self.instruction(I32Add);
958
+ self.instruction(I32Const(-0x10f800));
959
+ self.instruction(I32LtU);
960
+ self.instruction(BrIf(0));
961
+ self.instruction(LocalGet(local.idx));
962
+ self.instruction(I32Const(0x110000));
963
+ self.instruction(I32Ne);
964
+ self.instruction(BrIf(1));
965
+ self.instruction(End);
966
+ self.trap(Trap::InvalidChar);
967
+ self.instruction(End);
968
+
969
+ self.push_dst_addr(dst);
970
+ self.instruction(LocalGet(local.idx));
971
+ match dst {
972
+ Destination::Memory(mem) => {
973
+ self.i32_store(mem);
974
+ }
975
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
976
+ }
977
+
978
+ self.free_temp_local(local);
979
+ }
980
+
981
+ fn translate_string(&mut self, src: &Source<'_>, dst_ty: &InterfaceType, dst: &Destination) {
982
+ assert!(matches!(dst_ty, InterfaceType::String));
983
+ let src_opts = src.opts();
984
+ let dst_opts = dst.opts();
985
+
986
+ // Load the pointer/length of this string into temporary locals. These
987
+ // will be referenced a good deal so this just makes it easier to deal
988
+ // with them consistently below rather than trying to reload from memory
989
+ // for example.
990
+ match src {
991
+ Source::Stack(s) => {
992
+ assert_eq!(s.locals.len(), 2);
993
+ self.stack_get(&s.slice(0..1), src_opts.ptr());
994
+ self.stack_get(&s.slice(1..2), src_opts.ptr());
995
+ }
996
+ Source::Memory(mem) => {
997
+ self.ptr_load(mem);
998
+ self.ptr_load(&mem.bump(src_opts.ptr_size().into()));
999
+ }
1000
+ }
1001
+ let src_len = self.local_set_new_tmp(src_opts.ptr());
1002
+ let src_ptr = self.local_set_new_tmp(src_opts.ptr());
1003
+ let src_str = WasmString {
1004
+ ptr: src_ptr,
1005
+ len: src_len,
1006
+ opts: src_opts,
1007
+ };
1008
+
1009
+ let dst_str = match src_opts.string_encoding {
1010
+ StringEncoding::Utf8 => match dst_opts.string_encoding {
1011
+ StringEncoding::Utf8 => self.string_copy(&src_str, FE::Utf8, dst_opts, FE::Utf8),
1012
+ StringEncoding::Utf16 => self.string_utf8_to_utf16(&src_str, dst_opts),
1013
+ StringEncoding::CompactUtf16 => {
1014
+ self.string_to_compact(&src_str, FE::Utf8, dst_opts)
1015
+ }
1016
+ },
1017
+
1018
+ StringEncoding::Utf16 => {
1019
+ self.verify_aligned(src_opts, src_str.ptr.idx, 2);
1020
+ match dst_opts.string_encoding {
1021
+ StringEncoding::Utf8 => {
1022
+ self.string_deflate_to_utf8(&src_str, FE::Utf16, dst_opts)
1023
+ }
1024
+ StringEncoding::Utf16 => {
1025
+ self.string_copy(&src_str, FE::Utf16, dst_opts, FE::Utf16)
1026
+ }
1027
+ StringEncoding::CompactUtf16 => {
1028
+ self.string_to_compact(&src_str, FE::Utf16, dst_opts)
1029
+ }
1030
+ }
1031
+ }
1032
+
1033
+ StringEncoding::CompactUtf16 => {
1034
+ self.verify_aligned(src_opts, src_str.ptr.idx, 2);
1035
+
1036
+ // Test the tag big to see if this is a utf16 or a latin1 string
1037
+ // at runtime...
1038
+ self.instruction(LocalGet(src_str.len.idx));
1039
+ self.ptr_uconst(src_opts, UTF16_TAG);
1040
+ self.ptr_and(src_opts);
1041
+ self.ptr_if(src_opts, BlockType::Empty);
1042
+
1043
+ // In the utf16 block unset the upper bit from the length local
1044
+ // so further calculations have the right value. Afterwards the
1045
+ // string transcode proceeds assuming utf16.
1046
+ self.instruction(LocalGet(src_str.len.idx));
1047
+ self.ptr_uconst(src_opts, UTF16_TAG);
1048
+ self.ptr_xor(src_opts);
1049
+ self.instruction(LocalSet(src_str.len.idx));
1050
+ let s1 = match dst_opts.string_encoding {
1051
+ StringEncoding::Utf8 => {
1052
+ self.string_deflate_to_utf8(&src_str, FE::Utf16, dst_opts)
1053
+ }
1054
+ StringEncoding::Utf16 => {
1055
+ self.string_copy(&src_str, FE::Utf16, dst_opts, FE::Utf16)
1056
+ }
1057
+ StringEncoding::CompactUtf16 => {
1058
+ self.string_compact_utf16_to_compact(&src_str, dst_opts)
1059
+ }
1060
+ };
1061
+
1062
+ self.instruction(Else);
1063
+
1064
+ // In the latin1 block the `src_len` local is already the number
1065
+ // of code units, so the string transcoding is all that needs to
1066
+ // happen.
1067
+ let s2 = match dst_opts.string_encoding {
1068
+ StringEncoding::Utf16 => {
1069
+ self.string_copy(&src_str, FE::Latin1, dst_opts, FE::Utf16)
1070
+ }
1071
+ StringEncoding::Utf8 => {
1072
+ self.string_deflate_to_utf8(&src_str, FE::Latin1, dst_opts)
1073
+ }
1074
+ StringEncoding::CompactUtf16 => {
1075
+ self.string_copy(&src_str, FE::Latin1, dst_opts, FE::Latin1)
1076
+ }
1077
+ };
1078
+ // Set our `s2` generated locals to the `s2` generated locals
1079
+ // as the resulting pointer of this transcode.
1080
+ self.instruction(LocalGet(s2.ptr.idx));
1081
+ self.instruction(LocalSet(s1.ptr.idx));
1082
+ self.instruction(LocalGet(s2.len.idx));
1083
+ self.instruction(LocalSet(s1.len.idx));
1084
+ self.instruction(End);
1085
+ self.free_temp_local(s2.ptr);
1086
+ self.free_temp_local(s2.len);
1087
+ s1
1088
+ }
1089
+ };
1090
+
1091
+ // Store the ptr/length in the desired destination
1092
+ match dst {
1093
+ Destination::Stack(s, _) => {
1094
+ self.instruction(LocalGet(dst_str.ptr.idx));
1095
+ self.stack_set(&s[..1], dst_opts.ptr());
1096
+ self.instruction(LocalGet(dst_str.len.idx));
1097
+ self.stack_set(&s[1..], dst_opts.ptr());
1098
+ }
1099
+ Destination::Memory(mem) => {
1100
+ self.instruction(LocalGet(mem.addr.idx));
1101
+ self.instruction(LocalGet(dst_str.ptr.idx));
1102
+ self.ptr_store(mem);
1103
+ self.instruction(LocalGet(mem.addr.idx));
1104
+ self.instruction(LocalGet(dst_str.len.idx));
1105
+ self.ptr_store(&mem.bump(dst_opts.ptr_size().into()));
1106
+ }
1107
+ }
1108
+
1109
+ self.free_temp_local(src_str.ptr);
1110
+ self.free_temp_local(src_str.len);
1111
+ self.free_temp_local(dst_str.ptr);
1112
+ self.free_temp_local(dst_str.len);
1113
+ }
1114
+
1115
+ // Corresponding function for `store_string_copy` in the spec.
1116
+ //
1117
+ // This performs a transcoding of the string with a one-pass copy from
1118
+ // the `src` encoding to the `dst` encoding. This is only possible for
1119
+ // fixed encodings where the first allocation is guaranteed to be an
1120
+ // appropriate fit so it's not suitable for all encodings.
1121
+ //
1122
+ // Imported host transcoding functions here take the src/dst pointers as
1123
+ // well as the number of code units in the source (which always matches
1124
+ // the number of code units in the destination). There is no return
1125
+ // value from the transcode function since the encoding should always
1126
+ // work on the first pass.
1127
+ fn string_copy<'a>(
1128
+ &mut self,
1129
+ src: &WasmString<'_>,
1130
+ src_enc: FE,
1131
+ dst_opts: &'a Options,
1132
+ dst_enc: FE,
1133
+ ) -> WasmString<'a> {
1134
+ assert!(dst_enc.width() >= src_enc.width());
1135
+ self.validate_string_length(src, dst_enc);
1136
+
1137
+ // Calculate the source byte length given the size of each code
1138
+ // unit. Note that this shouldn't overflow given
1139
+ // `validate_string_length` above.
1140
+ let mut src_byte_len_tmp = None;
1141
+ let src_byte_len = if src_enc.width() == 1 {
1142
+ src.len.idx
1143
+ } else {
1144
+ assert_eq!(src_enc.width(), 2);
1145
+ self.instruction(LocalGet(src.len.idx));
1146
+ self.ptr_uconst(src.opts, 1);
1147
+ self.ptr_shl(src.opts);
1148
+ let tmp = self.local_set_new_tmp(src.opts.ptr());
1149
+ let ret = tmp.idx;
1150
+ src_byte_len_tmp = Some(tmp);
1151
+ ret
1152
+ };
1153
+
1154
+ // Convert the source code units length to the destination byte
1155
+ // length type.
1156
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst_opts.ptr());
1157
+ let dst_len = self.local_tee_new_tmp(dst_opts.ptr());
1158
+ if dst_enc.width() > 1 {
1159
+ assert_eq!(dst_enc.width(), 2);
1160
+ self.ptr_uconst(dst_opts, 1);
1161
+ self.ptr_shl(dst_opts);
1162
+ }
1163
+ let dst_byte_len = self.local_set_new_tmp(dst_opts.ptr());
1164
+
1165
+ // Allocate space in the destination using the calculated byte
1166
+ // length.
1167
+ let dst = {
1168
+ let dst_mem = self.malloc(
1169
+ dst_opts,
1170
+ MallocSize::Local(dst_byte_len.idx),
1171
+ dst_enc.width().into(),
1172
+ );
1173
+ WasmString {
1174
+ ptr: dst_mem.addr,
1175
+ len: dst_len,
1176
+ opts: dst_opts,
1177
+ }
1178
+ };
1179
+
1180
+ // Validate that `src_len + src_ptr` and
1181
+ // `dst_mem.addr_local + dst_byte_len` are both in-bounds. This
1182
+ // is done by loading the last byte of the string and if that
1183
+ // doesn't trap then it's known valid.
1184
+ self.validate_string_inbounds(src, src_byte_len);
1185
+ self.validate_string_inbounds(&dst, dst_byte_len.idx);
1186
+
1187
+ // If the validations pass then the host `transcode` intrinsic
1188
+ // is invoked. This will either raise a trap or otherwise succeed
1189
+ // in which case we're done.
1190
+ let op = if src_enc == dst_enc {
1191
+ Transcode::Copy(src_enc)
1192
+ } else {
1193
+ assert_eq!(src_enc, FE::Latin1);
1194
+ assert_eq!(dst_enc, FE::Utf16);
1195
+ Transcode::Latin1ToUtf16
1196
+ };
1197
+ let transcode = self.transcoder(src, &dst, op);
1198
+ self.instruction(LocalGet(src.ptr.idx));
1199
+ self.instruction(LocalGet(src.len.idx));
1200
+ self.instruction(LocalGet(dst.ptr.idx));
1201
+ self.instruction(Call(transcode.as_u32()));
1202
+
1203
+ self.free_temp_local(dst_byte_len);
1204
+ if let Some(tmp) = src_byte_len_tmp {
1205
+ self.free_temp_local(tmp);
1206
+ }
1207
+
1208
+ dst
1209
+ }
1210
+ // Corresponding function for `store_string_to_utf8` in the spec.
1211
+ //
1212
+ // This translation works by possibly performing a number of
1213
+ // reallocations. First a buffer of size input-code-units is used to try
1214
+ // to get the transcoding correct on the first try. If that fails the
1215
+ // maximum worst-case size is used and then that is resized down if it's
1216
+ // too large.
1217
+ //
1218
+ // The host transcoding function imported here will receive src ptr/len
1219
+ // and dst ptr/len and return how many code units were consumed on both
1220
+ // sides. The amount of code units consumed in the source dictates which
1221
+ // branches are taken in this conversion.
1222
+ fn string_deflate_to_utf8<'a>(
1223
+ &mut self,
1224
+ src: &WasmString<'_>,
1225
+ src_enc: FE,
1226
+ dst_opts: &'a Options,
1227
+ ) -> WasmString<'a> {
1228
+ self.validate_string_length(src, src_enc);
1229
+
1230
+ // Optimistically assume that the code unit length of the source is
1231
+ // all that's needed in the destination. Perform that allocaiton
1232
+ // here and proceed to transcoding below.
1233
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst_opts.ptr());
1234
+ let dst_len = self.local_tee_new_tmp(dst_opts.ptr());
1235
+ let dst_byte_len = self.local_set_new_tmp(dst_opts.ptr());
1236
+
1237
+ let dst = {
1238
+ let dst_mem = self.malloc(dst_opts, MallocSize::Local(dst_byte_len.idx), 1);
1239
+ WasmString {
1240
+ ptr: dst_mem.addr,
1241
+ len: dst_len,
1242
+ opts: dst_opts,
1243
+ }
1244
+ };
1245
+
1246
+ // Ensure buffers are all in-bounds
1247
+ let mut src_byte_len_tmp = None;
1248
+ let src_byte_len = match src_enc {
1249
+ FE::Latin1 => src.len.idx,
1250
+ FE::Utf16 => {
1251
+ self.instruction(LocalGet(src.len.idx));
1252
+ self.ptr_uconst(src.opts, 1);
1253
+ self.ptr_shl(src.opts);
1254
+ let tmp = self.local_set_new_tmp(src.opts.ptr());
1255
+ let ret = tmp.idx;
1256
+ src_byte_len_tmp = Some(tmp);
1257
+ ret
1258
+ }
1259
+ FE::Utf8 => unreachable!(),
1260
+ };
1261
+ self.validate_string_inbounds(src, src_byte_len);
1262
+ self.validate_string_inbounds(&dst, dst_byte_len.idx);
1263
+
1264
+ // Perform the initial transcode
1265
+ let op = match src_enc {
1266
+ FE::Latin1 => Transcode::Latin1ToUtf8,
1267
+ FE::Utf16 => Transcode::Utf16ToUtf8,
1268
+ FE::Utf8 => unreachable!(),
1269
+ };
1270
+ let transcode = self.transcoder(src, &dst, op);
1271
+ self.instruction(LocalGet(src.ptr.idx));
1272
+ self.instruction(LocalGet(src.len.idx));
1273
+ self.instruction(LocalGet(dst.ptr.idx));
1274
+ self.instruction(LocalGet(dst_byte_len.idx));
1275
+ self.instruction(Call(transcode.as_u32()));
1276
+ self.instruction(LocalSet(dst.len.idx));
1277
+ let src_len_tmp = self.local_set_new_tmp(src.opts.ptr());
1278
+
1279
+ // Test if the source was entirely transcoded by comparing
1280
+ // `src_len_tmp`, the number of code units transcoded from the
1281
+ // source, with `src_len`, the original number of code units.
1282
+ self.instruction(LocalGet(src_len_tmp.idx));
1283
+ self.instruction(LocalGet(src.len.idx));
1284
+ self.ptr_ne(src.opts);
1285
+ self.instruction(If(BlockType::Empty));
1286
+
1287
+ // Here a worst-case reallocation is performed to grow `dst_mem`.
1288
+ // In-line a check is also performed that the worst-case byte size
1289
+ // fits within the maximum size of strings.
1290
+ self.instruction(LocalGet(dst.ptr.idx)); // old_ptr
1291
+ self.instruction(LocalGet(dst_byte_len.idx)); // old_size
1292
+ self.ptr_uconst(dst.opts, 1); // align
1293
+ let factor = match src_enc {
1294
+ FE::Latin1 => 2,
1295
+ FE::Utf16 => 3,
1296
+ _ => unreachable!(),
1297
+ };
1298
+ self.validate_string_length_u8(src, factor);
1299
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst_opts.ptr());
1300
+ self.ptr_uconst(dst_opts, factor.into());
1301
+ self.ptr_mul(dst_opts);
1302
+ self.instruction(LocalTee(dst_byte_len.idx));
1303
+ self.instruction(Call(dst_opts.realloc.unwrap().as_u32()));
1304
+ self.instruction(LocalSet(dst.ptr.idx));
1305
+
1306
+ // Verify that the destination is still in-bounds
1307
+ self.validate_string_inbounds(&dst, dst_byte_len.idx);
1308
+
1309
+ // Perform another round of transcoding that should be guaranteed
1310
+ // to succeed. Note that all the parameters here are offset by the
1311
+ // results of the first transcoding to only perform the remaining
1312
+ // transcode on the final units.
1313
+ self.instruction(LocalGet(src.ptr.idx));
1314
+ self.instruction(LocalGet(src_len_tmp.idx));
1315
+ if let FE::Utf16 = src_enc {
1316
+ self.ptr_uconst(src.opts, 1);
1317
+ self.ptr_shl(src.opts);
1318
+ }
1319
+ self.ptr_add(src.opts);
1320
+ self.instruction(LocalGet(src.len.idx));
1321
+ self.instruction(LocalGet(src_len_tmp.idx));
1322
+ self.ptr_sub(src.opts);
1323
+ self.instruction(LocalGet(dst.ptr.idx));
1324
+ self.instruction(LocalGet(dst.len.idx));
1325
+ self.ptr_add(dst.opts);
1326
+ self.instruction(LocalGet(dst_byte_len.idx));
1327
+ self.instruction(LocalGet(dst.len.idx));
1328
+ self.ptr_sub(dst.opts);
1329
+ self.instruction(Call(transcode.as_u32()));
1330
+
1331
+ // Add the second result, the amount of destination units encoded,
1332
+ // to `dst_len` so it's an accurate reflection of the final size of
1333
+ // the destination buffer.
1334
+ self.instruction(LocalGet(dst.len.idx));
1335
+ self.ptr_add(dst.opts);
1336
+ self.instruction(LocalSet(dst.len.idx));
1337
+
1338
+ // In debug mode verify the first result consumed the entire string,
1339
+ // otherwise simply discard it.
1340
+ if self.module.debug {
1341
+ self.instruction(LocalGet(src.len.idx));
1342
+ self.instruction(LocalGet(src_len_tmp.idx));
1343
+ self.ptr_sub(src.opts);
1344
+ self.ptr_ne(src.opts);
1345
+ self.instruction(If(BlockType::Empty));
1346
+ self.trap(Trap::AssertFailed("should have finished encoding"));
1347
+ self.instruction(End);
1348
+ } else {
1349
+ self.instruction(Drop);
1350
+ }
1351
+
1352
+ // Perform a downsizing if the worst-case size was too large
1353
+ self.instruction(LocalGet(dst.len.idx));
1354
+ self.instruction(LocalGet(dst_byte_len.idx));
1355
+ self.ptr_ne(dst.opts);
1356
+ self.instruction(If(BlockType::Empty));
1357
+ self.instruction(LocalGet(dst.ptr.idx)); // old_ptr
1358
+ self.instruction(LocalGet(dst_byte_len.idx)); // old_size
1359
+ self.ptr_uconst(dst.opts, 1); // align
1360
+ self.instruction(LocalGet(dst.len.idx)); // new_size
1361
+ self.instruction(Call(dst.opts.realloc.unwrap().as_u32()));
1362
+ self.instruction(LocalSet(dst.ptr.idx));
1363
+ self.instruction(End);
1364
+
1365
+ // If the first transcode was enough then assert that the returned
1366
+ // amount of destination items written equals the byte size.
1367
+ if self.module.debug {
1368
+ self.instruction(Else);
1369
+
1370
+ self.instruction(LocalGet(dst.len.idx));
1371
+ self.instruction(LocalGet(dst_byte_len.idx));
1372
+ self.ptr_ne(dst_opts);
1373
+ self.instruction(If(BlockType::Empty));
1374
+ self.trap(Trap::AssertFailed("should have finished encoding"));
1375
+ self.instruction(End);
1376
+ }
1377
+
1378
+ self.instruction(End); // end of "first transcode not enough"
1379
+
1380
+ self.free_temp_local(src_len_tmp);
1381
+ self.free_temp_local(dst_byte_len);
1382
+ if let Some(tmp) = src_byte_len_tmp {
1383
+ self.free_temp_local(tmp);
1384
+ }
1385
+
1386
+ dst
1387
+ }
1388
+
1389
+ // Corresponds to the `store_utf8_to_utf16` function in the spec.
1390
+ //
1391
+ // When converting utf-8 to utf-16 a pessimistic allocation is
1392
+ // done which is twice the byte length of the utf-8 string.
1393
+ // The host then transcodes and returns how many code units were
1394
+ // actually used during the transcoding and if it's beneath the
1395
+ // pessimistic maximum then the buffer is reallocated down to
1396
+ // a smaller amount.
1397
+ //
1398
+ // The host-imported transcoding function takes the src/dst pointer as
1399
+ // well as the code unit size of both the source and destination. The
1400
+ // destination should always be big enough to hold the result of the
1401
+ // transcode and so the result of the host function is how many code
1402
+ // units were written to the destination.
1403
+ fn string_utf8_to_utf16<'a>(
1404
+ &mut self,
1405
+ src: &WasmString<'_>,
1406
+ dst_opts: &'a Options,
1407
+ ) -> WasmString<'a> {
1408
+ self.validate_string_length(src, FE::Utf16);
1409
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst_opts.ptr());
1410
+ let dst_len = self.local_tee_new_tmp(dst_opts.ptr());
1411
+ self.ptr_uconst(dst_opts, 1);
1412
+ self.ptr_shl(dst_opts);
1413
+ let dst_byte_len = self.local_set_new_tmp(dst_opts.ptr());
1414
+ let dst = {
1415
+ let dst_mem = self.malloc(dst_opts, MallocSize::Local(dst_byte_len.idx), 2);
1416
+ WasmString {
1417
+ ptr: dst_mem.addr,
1418
+ len: dst_len,
1419
+ opts: dst_opts,
1420
+ }
1421
+ };
1422
+
1423
+ self.validate_string_inbounds(src, src.len.idx);
1424
+ self.validate_string_inbounds(&dst, dst_byte_len.idx);
1425
+
1426
+ let transcode = self.transcoder(src, &dst, Transcode::Utf8ToUtf16);
1427
+ self.instruction(LocalGet(src.ptr.idx));
1428
+ self.instruction(LocalGet(src.len.idx));
1429
+ self.instruction(LocalGet(dst.ptr.idx));
1430
+ self.instruction(Call(transcode.as_u32()));
1431
+ self.instruction(LocalSet(dst.len.idx));
1432
+
1433
+ // If the number of code units returned by transcode is not
1434
+ // equal to the original number of code units then
1435
+ // the buffer must be shrunk.
1436
+ //
1437
+ // Note that the byte length of the final allocation we
1438
+ // want is twice the code unit length returned by the
1439
+ // transcoding function.
1440
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst.opts.ptr());
1441
+ self.instruction(LocalGet(dst.len.idx));
1442
+ self.ptr_ne(dst_opts);
1443
+ self.instruction(If(BlockType::Empty));
1444
+ self.instruction(LocalGet(dst.ptr.idx));
1445
+ self.instruction(LocalGet(dst_byte_len.idx));
1446
+ self.ptr_uconst(dst.opts, 2);
1447
+ self.instruction(LocalGet(dst.len.idx));
1448
+ self.ptr_uconst(dst.opts, 1);
1449
+ self.ptr_shl(dst.opts);
1450
+ self.instruction(Call(dst.opts.realloc.unwrap().as_u32()));
1451
+ self.instruction(LocalSet(dst.ptr.idx));
1452
+ self.instruction(End); // end of shrink-to-fit
1453
+
1454
+ self.free_temp_local(dst_byte_len);
1455
+
1456
+ dst
1457
+ }
1458
+
1459
+ // Corresponds to `store_probably_utf16_to_latin1_or_utf16` in the spec.
1460
+ //
1461
+ // This will try to transcode the input utf16 string to utf16 in the
1462
+ // destination. If utf16 isn't needed though and latin1 could be used
1463
+ // then that's used instead and a reallocation to downsize occurs
1464
+ // afterwards.
1465
+ //
1466
+ // The host transcode function here will take the src/dst pointers as
1467
+ // well as src length. The destination byte length is twice the src code
1468
+ // unit length. The return value is the tagged length of the returned
1469
+ // string. If the upper bit is set then utf16 was used and the
1470
+ // conversion is done. If the upper bit is not set then latin1 was used
1471
+ // and a downsizing needs to happen.
1472
+ fn string_compact_utf16_to_compact<'a>(
1473
+ &mut self,
1474
+ src: &WasmString<'_>,
1475
+ dst_opts: &'a Options,
1476
+ ) -> WasmString<'a> {
1477
+ self.validate_string_length(src, FE::Utf16);
1478
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst_opts.ptr());
1479
+ let dst_len = self.local_tee_new_tmp(dst_opts.ptr());
1480
+ self.ptr_uconst(dst_opts, 1);
1481
+ self.ptr_shl(dst_opts);
1482
+ let dst_byte_len = self.local_set_new_tmp(dst_opts.ptr());
1483
+ let dst = {
1484
+ let dst_mem = self.malloc(dst_opts, MallocSize::Local(dst_byte_len.idx), 2);
1485
+ WasmString {
1486
+ ptr: dst_mem.addr,
1487
+ len: dst_len,
1488
+ opts: dst_opts,
1489
+ }
1490
+ };
1491
+
1492
+ self.convert_src_len_to_dst(dst_byte_len.idx, dst.opts.ptr(), src.opts.ptr());
1493
+ let src_byte_len = self.local_set_new_tmp(src.opts.ptr());
1494
+
1495
+ self.validate_string_inbounds(src, src_byte_len.idx);
1496
+ self.validate_string_inbounds(&dst, dst_byte_len.idx);
1497
+
1498
+ let transcode = self.transcoder(src, &dst, Transcode::Utf16ToCompactProbablyUtf16);
1499
+ self.instruction(LocalGet(src.ptr.idx));
1500
+ self.instruction(LocalGet(src.len.idx));
1501
+ self.instruction(LocalGet(dst.ptr.idx));
1502
+ self.instruction(Call(transcode.as_u32()));
1503
+ self.instruction(LocalSet(dst.len.idx));
1504
+
1505
+ // Assert that the untagged code unit length is the same as the
1506
+ // source code unit length.
1507
+ if self.module.debug {
1508
+ self.instruction(LocalGet(dst.len.idx));
1509
+ self.ptr_uconst(dst.opts, !UTF16_TAG);
1510
+ self.ptr_and(dst.opts);
1511
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst.opts.ptr());
1512
+ self.ptr_ne(dst.opts);
1513
+ self.instruction(If(BlockType::Empty));
1514
+ self.trap(Trap::AssertFailed("expected equal code units"));
1515
+ self.instruction(End);
1516
+ }
1517
+
1518
+ // If the UTF16_TAG is set then utf16 was used and the destination
1519
+ // should be appropriately sized. Bail out of the "is this string
1520
+ // empty" block and fall through otherwise to resizing.
1521
+ self.instruction(LocalGet(dst.len.idx));
1522
+ self.ptr_uconst(dst.opts, UTF16_TAG);
1523
+ self.ptr_and(dst.opts);
1524
+ self.ptr_br_if(dst.opts, 0);
1525
+
1526
+ // Here `realloc` is used to downsize the string
1527
+ self.instruction(LocalGet(dst.ptr.idx)); // old_ptr
1528
+ self.instruction(LocalGet(dst_byte_len.idx)); // old_size
1529
+ self.ptr_uconst(dst.opts, 2); // align
1530
+ self.instruction(LocalGet(dst.len.idx)); // new_size
1531
+ self.instruction(Call(dst.opts.realloc.unwrap().as_u32()));
1532
+ self.instruction(LocalSet(dst.ptr.idx));
1533
+
1534
+ self.free_temp_local(dst_byte_len);
1535
+ self.free_temp_local(src_byte_len);
1536
+
1537
+ dst
1538
+ }
1539
+
1540
+ // Corresponds to `store_string_to_latin1_or_utf16` in the spec.
1541
+ //
1542
+ // This will attempt a first pass of transcoding to latin1 and on
1543
+ // failure a larger buffer is allocated for utf16 and then utf16 is
1544
+ // encoded in-place into the buffer. After either latin1 or utf16 the
1545
+ // buffer is then resized to fit the final string allocation.
1546
+ fn string_to_compact<'a>(
1547
+ &mut self,
1548
+ src: &WasmString<'_>,
1549
+ src_enc: FE,
1550
+ dst_opts: &'a Options,
1551
+ ) -> WasmString<'a> {
1552
+ self.validate_string_length(src, src_enc);
1553
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst_opts.ptr());
1554
+ let dst_len = self.local_tee_new_tmp(dst_opts.ptr());
1555
+ let dst_byte_len = self.local_set_new_tmp(dst_opts.ptr());
1556
+ let dst = {
1557
+ let dst_mem = self.malloc(dst_opts, MallocSize::Local(dst_byte_len.idx), 2);
1558
+ WasmString {
1559
+ ptr: dst_mem.addr,
1560
+ len: dst_len,
1561
+ opts: dst_opts,
1562
+ }
1563
+ };
1564
+
1565
+ self.validate_string_inbounds(src, src.len.idx);
1566
+ self.validate_string_inbounds(&dst, dst_byte_len.idx);
1567
+
1568
+ // Perform the initial latin1 transcode. This returns the number of
1569
+ // source code units consumed and the number of destination code
1570
+ // units (bytes) written.
1571
+ let (latin1, utf16) = match src_enc {
1572
+ FE::Utf8 => (Transcode::Utf8ToLatin1, Transcode::Utf8ToCompactUtf16),
1573
+ FE::Utf16 => (Transcode::Utf16ToLatin1, Transcode::Utf16ToCompactUtf16),
1574
+ FE::Latin1 => unreachable!(),
1575
+ };
1576
+ let transcode_latin1 = self.transcoder(src, &dst, latin1);
1577
+ let transcode_utf16 = self.transcoder(src, &dst, utf16);
1578
+ self.instruction(LocalGet(src.ptr.idx));
1579
+ self.instruction(LocalGet(src.len.idx));
1580
+ self.instruction(LocalGet(dst.ptr.idx));
1581
+ self.instruction(Call(transcode_latin1.as_u32()));
1582
+ self.instruction(LocalSet(dst.len.idx));
1583
+ let src_len_tmp = self.local_set_new_tmp(src.opts.ptr());
1584
+
1585
+ // If the source was entirely consumed then the transcode completed
1586
+ // and all that's necessary is to optionally shrink the buffer.
1587
+ self.instruction(LocalGet(src_len_tmp.idx));
1588
+ self.instruction(LocalGet(src.len.idx));
1589
+ self.ptr_eq(src.opts);
1590
+ self.instruction(If(BlockType::Empty)); // if latin1-or-utf16 block
1591
+
1592
+ // Test if the original byte length of the allocation is the same as
1593
+ // the number of written bytes, and if not then shrink the buffer
1594
+ // with a call to `realloc`.
1595
+ self.instruction(LocalGet(dst_byte_len.idx));
1596
+ self.instruction(LocalGet(dst.len.idx));
1597
+ self.ptr_ne(dst.opts);
1598
+ self.instruction(If(BlockType::Empty));
1599
+ self.instruction(LocalGet(dst.ptr.idx)); // old_ptr
1600
+ self.instruction(LocalGet(dst_byte_len.idx)); // old_size
1601
+ self.ptr_uconst(dst.opts, 2); // align
1602
+ self.instruction(LocalGet(dst.len.idx)); // new_size
1603
+ self.instruction(Call(dst.opts.realloc.unwrap().as_u32()));
1604
+ self.instruction(LocalSet(dst.ptr.idx));
1605
+ self.instruction(End);
1606
+
1607
+ // In this block the latin1 encoding failed. The host transcode
1608
+ // returned how many units were consumed from the source and how
1609
+ // many bytes were written to the destination. Here the buffer is
1610
+ // inflated and sized and the second utf16 intrinsic is invoked to
1611
+ // perform the final inflation.
1612
+ self.instruction(Else); // else latin1-or-utf16 block
1613
+
1614
+ // For utf8 validate that the inflated size is still within bounds.
1615
+ if src_enc.width() == 1 {
1616
+ self.validate_string_length_u8(src, 2);
1617
+ }
1618
+
1619
+ // Reallocate the buffer with twice the source code units in byte
1620
+ // size.
1621
+ self.instruction(LocalGet(dst.ptr.idx)); // old_ptr
1622
+ self.instruction(LocalGet(dst_byte_len.idx)); // old_size
1623
+ self.ptr_uconst(dst.opts, 2); // align
1624
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst.opts.ptr());
1625
+ self.ptr_uconst(dst.opts, 1);
1626
+ self.ptr_shl(dst.opts);
1627
+ self.instruction(LocalTee(dst_byte_len.idx));
1628
+ self.instruction(Call(dst.opts.realloc.unwrap().as_u32()));
1629
+ self.instruction(LocalSet(dst.ptr.idx));
1630
+
1631
+ // Call the host utf16 transcoding function. This will inflate the
1632
+ // prior latin1 bytes and then encode the rest of the source string
1633
+ // as utf16 into the remaining space in the destination buffer.
1634
+ self.instruction(LocalGet(src.ptr.idx));
1635
+ self.instruction(LocalGet(src_len_tmp.idx));
1636
+ if let FE::Utf16 = src_enc {
1637
+ self.ptr_uconst(src.opts, 1);
1638
+ self.ptr_shl(src.opts);
1639
+ }
1640
+ self.ptr_add(src.opts);
1641
+ self.instruction(LocalGet(src.len.idx));
1642
+ self.instruction(LocalGet(src_len_tmp.idx));
1643
+ self.ptr_sub(src.opts);
1644
+ self.instruction(LocalGet(dst.ptr.idx));
1645
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst.opts.ptr());
1646
+ self.instruction(LocalGet(dst.len.idx));
1647
+ self.instruction(Call(transcode_utf16.as_u32()));
1648
+ self.instruction(LocalSet(dst.len.idx));
1649
+
1650
+ // If the returned number of code units written to the destination
1651
+ // is not equal to the size of the allocation then the allocation is
1652
+ // resized down to the appropriate size.
1653
+ //
1654
+ // Note that the byte size desired is `2*dst_len` and the current
1655
+ // byte buffer size is `2*src_len` so the `2` factor isn't checked
1656
+ // here, just the lengths.
1657
+ self.instruction(LocalGet(dst.len.idx));
1658
+ self.convert_src_len_to_dst(src.len.idx, src.opts.ptr(), dst.opts.ptr());
1659
+ self.ptr_ne(dst.opts);
1660
+ self.instruction(If(BlockType::Empty));
1661
+ self.instruction(LocalGet(dst.ptr.idx)); // old_ptr
1662
+ self.instruction(LocalGet(dst_byte_len.idx)); // old_size
1663
+ self.ptr_uconst(dst.opts, 2); // align
1664
+ self.instruction(LocalGet(dst.len.idx));
1665
+ self.ptr_uconst(dst.opts, 1);
1666
+ self.ptr_shl(dst.opts);
1667
+ self.instruction(Call(dst.opts.realloc.unwrap().as_u32()));
1668
+ self.instruction(LocalSet(dst.ptr.idx));
1669
+ self.instruction(End);
1670
+
1671
+ // Tag the returned pointer as utf16
1672
+ self.instruction(LocalGet(dst.len.idx));
1673
+ self.ptr_uconst(dst.opts, UTF16_TAG);
1674
+ self.ptr_or(dst.opts);
1675
+ self.instruction(LocalSet(dst.len.idx));
1676
+
1677
+ self.instruction(End); // end latin1-or-utf16 block
1678
+
1679
+ self.free_temp_local(src_len_tmp);
1680
+ self.free_temp_local(dst_byte_len);
1681
+
1682
+ dst
1683
+ }
1684
+
1685
+ fn validate_string_length(&mut self, src: &WasmString<'_>, dst: FE) {
1686
+ self.validate_string_length_u8(src, dst.width())
1687
+ }
1688
+
1689
+ fn validate_string_length_u8(&mut self, s: &WasmString<'_>, dst: u8) {
1690
+ // Check to see if the source byte length is out of bounds in
1691
+ // which case a trap is generated.
1692
+ self.instruction(LocalGet(s.len.idx));
1693
+ let max = MAX_STRING_BYTE_LENGTH / u32::from(dst);
1694
+ self.ptr_uconst(s.opts, max);
1695
+ self.ptr_ge_u(s.opts);
1696
+ self.instruction(If(BlockType::Empty));
1697
+ self.trap(Trap::StringLengthTooBig);
1698
+ self.instruction(End);
1699
+ }
1700
+
1701
+ fn transcoder(
1702
+ &mut self,
1703
+ src: &WasmString<'_>,
1704
+ dst: &WasmString<'_>,
1705
+ op: Transcode,
1706
+ ) -> FuncIndex {
1707
+ self.module.import_transcoder(Transcoder {
1708
+ from_memory: src.opts.memory.unwrap(),
1709
+ from_memory64: src.opts.memory64,
1710
+ to_memory: dst.opts.memory.unwrap(),
1711
+ to_memory64: dst.opts.memory64,
1712
+ op,
1713
+ })
1714
+ }
1715
+
1716
+ fn validate_string_inbounds(&mut self, s: &WasmString<'_>, byte_len: u32) {
1717
+ self.validate_memory_inbounds(s.opts, s.ptr.idx, byte_len, Trap::StringLengthOverflow)
1718
+ }
1719
+
1720
+ fn validate_memory_inbounds(
1721
+ &mut self,
1722
+ opts: &Options,
1723
+ ptr_local: u32,
1724
+ byte_len_local: u32,
1725
+ trap: Trap,
1726
+ ) {
1727
+ let extend_to_64 = |me: &mut Self| {
1728
+ if !opts.memory64 {
1729
+ me.instruction(I64ExtendI32U);
1730
+ }
1731
+ };
1732
+
1733
+ self.instruction(Block(BlockType::Empty));
1734
+ self.instruction(Block(BlockType::Empty));
1735
+
1736
+ // Calculate the full byte size of memory with `memory.size`. Note that
1737
+ // arithmetic here is done always in 64-bits to accomodate 4G memories.
1738
+ // Additionally it's assumed that 64-bit memories never fill up
1739
+ // entirely.
1740
+ self.instruction(MemorySize(opts.memory.unwrap().as_u32()));
1741
+ extend_to_64(self);
1742
+ self.instruction(I64Const(16));
1743
+ self.instruction(I64Shl);
1744
+
1745
+ // Calculate the end address of the string. This is done by adding the
1746
+ // base pointer to the byte length. For 32-bit memories there's no need
1747
+ // to check for overflow since everything is extended to 64-bit, but for
1748
+ // 64-bit memories overflow is checked.
1749
+ self.instruction(LocalGet(ptr_local));
1750
+ extend_to_64(self);
1751
+ self.instruction(LocalGet(byte_len_local));
1752
+ extend_to_64(self);
1753
+ self.instruction(I64Add);
1754
+ if opts.memory64 {
1755
+ let tmp = self.local_tee_new_tmp(ValType::I64);
1756
+ self.instruction(LocalGet(ptr_local));
1757
+ self.ptr_lt_u(opts);
1758
+ self.instruction(BrIf(0));
1759
+ self.instruction(LocalGet(tmp.idx));
1760
+ self.free_temp_local(tmp);
1761
+ }
1762
+
1763
+ // If the byte size of memory is greater than the final address of the
1764
+ // string then the string is invalid. Note that if it's precisely equal
1765
+ // then that's ok.
1766
+ self.instruction(I64GeU);
1767
+ self.instruction(BrIf(1));
1768
+
1769
+ self.instruction(End);
1770
+ self.trap(trap);
1771
+ self.instruction(End);
1772
+ }
1773
+
1774
+ fn translate_list(
1775
+ &mut self,
1776
+ src_ty: TypeListIndex,
1777
+ src: &Source<'_>,
1778
+ dst_ty: &InterfaceType,
1779
+ dst: &Destination,
1780
+ ) {
1781
+ let src_element_ty = &self.types[src_ty].element;
1782
+ let dst_element_ty = match dst_ty {
1783
+ InterfaceType::List(r) => &self.types[*r].element,
1784
+ _ => panic!("expected a list"),
1785
+ };
1786
+ let src_opts = src.opts();
1787
+ let dst_opts = dst.opts();
1788
+ let (src_size, src_align) = self.types.size_align(src_opts, src_element_ty);
1789
+ let (dst_size, dst_align) = self.types.size_align(dst_opts, dst_element_ty);
1790
+
1791
+ // Load the pointer/length of this list into temporary locals. These
1792
+ // will be referenced a good deal so this just makes it easier to deal
1793
+ // with them consistently below rather than trying to reload from memory
1794
+ // for example.
1795
+ match src {
1796
+ Source::Stack(s) => {
1797
+ assert_eq!(s.locals.len(), 2);
1798
+ self.stack_get(&s.slice(0..1), src_opts.ptr());
1799
+ self.stack_get(&s.slice(1..2), src_opts.ptr());
1800
+ }
1801
+ Source::Memory(mem) => {
1802
+ self.ptr_load(mem);
1803
+ self.ptr_load(&mem.bump(src_opts.ptr_size().into()));
1804
+ }
1805
+ }
1806
+ let src_len = self.local_set_new_tmp(src_opts.ptr());
1807
+ let src_ptr = self.local_set_new_tmp(src_opts.ptr());
1808
+
1809
+ // Create a `Memory` operand which will internally assert that the
1810
+ // `src_ptr` value is properly aligned.
1811
+ let src_mem = self.memory_operand(src_opts, src_ptr, src_align);
1812
+
1813
+ // Calculate the source/destination byte lengths into unique locals.
1814
+ let src_byte_len = self.calculate_list_byte_len(src_opts, src_len.idx, src_size);
1815
+ let dst_byte_len = if src_size == dst_size {
1816
+ self.convert_src_len_to_dst(src_byte_len.idx, src_opts.ptr(), dst_opts.ptr());
1817
+ self.local_set_new_tmp(dst_opts.ptr())
1818
+ } else if src_opts.ptr() == dst_opts.ptr() {
1819
+ self.calculate_list_byte_len(dst_opts, src_len.idx, dst_size)
1820
+ } else {
1821
+ self.convert_src_len_to_dst(src_byte_len.idx, src_opts.ptr(), dst_opts.ptr());
1822
+ let tmp = self.local_set_new_tmp(dst_opts.ptr());
1823
+ let ret = self.calculate_list_byte_len(dst_opts, tmp.idx, dst_size);
1824
+ self.free_temp_local(tmp);
1825
+ ret
1826
+ };
1827
+
1828
+ // Here `realloc` is invoked (in a `malloc`-like fashion) to allocate
1829
+ // space for the list in the destination memory. This will also
1830
+ // internally insert checks that the returned pointer is aligned
1831
+ // correctly for the destination.
1832
+ let dst_mem = self.malloc(dst_opts, MallocSize::Local(dst_byte_len.idx), dst_align);
1833
+
1834
+ // With all the pointers and byte lengths verity that both the source
1835
+ // and the destination buffers are in-bounds.
1836
+ self.validate_memory_inbounds(
1837
+ src_opts,
1838
+ src_mem.addr.idx,
1839
+ src_byte_len.idx,
1840
+ Trap::ListByteLengthOverflow,
1841
+ );
1842
+ self.validate_memory_inbounds(
1843
+ dst_opts,
1844
+ dst_mem.addr.idx,
1845
+ dst_byte_len.idx,
1846
+ Trap::ListByteLengthOverflow,
1847
+ );
1848
+
1849
+ self.free_temp_local(src_byte_len);
1850
+ self.free_temp_local(dst_byte_len);
1851
+
1852
+ // This is the main body of the loop to actually translate list types.
1853
+ // Note that if both element sizes are 0 then this won't actually do
1854
+ // anything so the loop is removed entirely.
1855
+ if src_size > 0 || dst_size > 0 {
1856
+ // This block encompasses the entire loop and is use to exit before even
1857
+ // entering the loop if the list size is zero.
1858
+ self.instruction(Block(BlockType::Empty));
1859
+
1860
+ // Set the `remaining` local and only continue if it's > 0
1861
+ self.instruction(LocalGet(src_len.idx));
1862
+ let remaining = self.local_tee_new_tmp(src_opts.ptr());
1863
+ self.ptr_eqz(src_opts);
1864
+ self.instruction(BrIf(0));
1865
+
1866
+ // Initialize the two destination pointers to their initial values
1867
+ self.instruction(LocalGet(src_mem.addr.idx));
1868
+ let cur_src_ptr = self.local_set_new_tmp(src_opts.ptr());
1869
+ self.instruction(LocalGet(dst_mem.addr.idx));
1870
+ let cur_dst_ptr = self.local_set_new_tmp(dst_opts.ptr());
1871
+
1872
+ self.instruction(Loop(BlockType::Empty));
1873
+
1874
+ // Translate the next element in the list
1875
+ let element_src = Source::Memory(Memory {
1876
+ opts: src_opts,
1877
+ offset: 0,
1878
+ addr: TempLocal::new(cur_src_ptr.idx, cur_src_ptr.ty),
1879
+ });
1880
+ let element_dst = Destination::Memory(Memory {
1881
+ opts: dst_opts,
1882
+ offset: 0,
1883
+ addr: TempLocal::new(cur_dst_ptr.idx, cur_dst_ptr.ty),
1884
+ });
1885
+ self.translate(src_element_ty, &element_src, dst_element_ty, &element_dst);
1886
+
1887
+ // Update the two loop pointers
1888
+ if src_size > 0 {
1889
+ self.instruction(LocalGet(cur_src_ptr.idx));
1890
+ self.ptr_uconst(src_opts, src_size);
1891
+ self.ptr_add(src_opts);
1892
+ self.instruction(LocalSet(cur_src_ptr.idx));
1893
+ }
1894
+ if dst_size > 0 {
1895
+ self.instruction(LocalGet(cur_dst_ptr.idx));
1896
+ self.ptr_uconst(dst_opts, dst_size);
1897
+ self.ptr_add(dst_opts);
1898
+ self.instruction(LocalSet(cur_dst_ptr.idx));
1899
+ }
1900
+
1901
+ // Update the remaining count, falling through to break out if it's zero
1902
+ // now.
1903
+ self.instruction(LocalGet(remaining.idx));
1904
+ self.ptr_iconst(src_opts, -1);
1905
+ self.ptr_add(src_opts);
1906
+ self.instruction(LocalTee(remaining.idx));
1907
+ self.ptr_br_if(src_opts, 0);
1908
+ self.instruction(End); // end of loop
1909
+ self.instruction(End); // end of block
1910
+
1911
+ self.free_temp_local(cur_dst_ptr);
1912
+ self.free_temp_local(cur_src_ptr);
1913
+ self.free_temp_local(remaining);
1914
+ }
1915
+
1916
+ // Store the ptr/length in the desired destination
1917
+ match dst {
1918
+ Destination::Stack(s, _) => {
1919
+ self.instruction(LocalGet(dst_mem.addr.idx));
1920
+ self.stack_set(&s[..1], dst_opts.ptr());
1921
+ self.convert_src_len_to_dst(src_len.idx, src_opts.ptr(), dst_opts.ptr());
1922
+ self.stack_set(&s[1..], dst_opts.ptr());
1923
+ }
1924
+ Destination::Memory(mem) => {
1925
+ self.instruction(LocalGet(mem.addr.idx));
1926
+ self.instruction(LocalGet(dst_mem.addr.idx));
1927
+ self.ptr_store(mem);
1928
+ self.instruction(LocalGet(mem.addr.idx));
1929
+ self.convert_src_len_to_dst(src_len.idx, src_opts.ptr(), dst_opts.ptr());
1930
+ self.ptr_store(&mem.bump(dst_opts.ptr_size().into()));
1931
+ }
1932
+ }
1933
+
1934
+ self.free_temp_local(src_len);
1935
+ self.free_temp_local(src_mem.addr);
1936
+ self.free_temp_local(dst_mem.addr);
1937
+ }
1938
+
1939
+ fn calculate_list_byte_len(
1940
+ &mut self,
1941
+ opts: &Options,
1942
+ len_local: u32,
1943
+ elt_size: u32,
1944
+ ) -> TempLocal {
1945
+ // Zero-size types are easy to handle here because the byte size of the
1946
+ // destination is always zero.
1947
+ if elt_size == 0 {
1948
+ self.ptr_uconst(opts, 0);
1949
+ return self.local_set_new_tmp(opts.ptr());
1950
+ }
1951
+
1952
+ // For one-byte elements in the destination the check here can be a bit
1953
+ // more optimal than the general case below. In these situations if the
1954
+ // source pointer type is 32-bit then we're guaranteed to not overflow,
1955
+ // so the source length is simply casted to the destination's type.
1956
+ //
1957
+ // If the source is 64-bit then all that needs to be checked is to
1958
+ // ensure that it does not have the upper 32-bits set.
1959
+ if elt_size == 1 {
1960
+ if let ValType::I64 = opts.ptr() {
1961
+ self.instruction(LocalGet(len_local));
1962
+ self.instruction(I64Const(32));
1963
+ self.instruction(I64ShrU);
1964
+ self.instruction(I32WrapI64);
1965
+ self.instruction(If(BlockType::Empty));
1966
+ self.trap(Trap::ListByteLengthOverflow);
1967
+ self.instruction(End);
1968
+ }
1969
+ self.instruction(LocalGet(len_local));
1970
+ return self.local_set_new_tmp(opts.ptr());
1971
+ }
1972
+
1973
+ // The main check implemented by this function is to verify that
1974
+ // `src_len_local` does not exceed the 32-bit range. Byte sizes for
1975
+ // lists must always fit in 32-bits to get transferred to 32-bit
1976
+ // memories.
1977
+ self.instruction(Block(BlockType::Empty));
1978
+ self.instruction(Block(BlockType::Empty));
1979
+ self.instruction(LocalGet(len_local));
1980
+ match opts.ptr() {
1981
+ // The source's list length is guaranteed to be less than 32-bits
1982
+ // so simply extend it up to a 64-bit type for the multiplication
1983
+ // below.
1984
+ ValType::I32 => self.instruction(I64ExtendI32U),
1985
+
1986
+ // If the source is a 64-bit memory then if the item length doesn't
1987
+ // fit in 32-bits the byte length definitely won't, so generate a
1988
+ // branch to our overflow trap here if any of the upper 32-bits are set.
1989
+ ValType::I64 => {
1990
+ self.instruction(I64Const(32));
1991
+ self.instruction(I64ShrU);
1992
+ self.instruction(I32WrapI64);
1993
+ self.instruction(BrIf(0));
1994
+ self.instruction(LocalGet(len_local));
1995
+ }
1996
+
1997
+ _ => unreachable!(),
1998
+ }
1999
+
2000
+ // Next perform a 64-bit multiplication with the element byte size that
2001
+ // is itself guaranteed to fit in 32-bits. The result is then checked
2002
+ // to see if we overflowed the 32-bit space. The two input operands to
2003
+ // the multiplication are guaranteed to be 32-bits at most which means
2004
+ // that this multiplication shouldn't overflow.
2005
+ //
2006
+ // The result of the multiplication is saved into a local as well to
2007
+ // get the result afterwards.
2008
+ self.instruction(I64Const(elt_size.into()));
2009
+ self.instruction(I64Mul);
2010
+ let tmp = self.local_tee_new_tmp(ValType::I64);
2011
+ // Branch to success if the upper 32-bits are zero, otherwise
2012
+ // fall-through to the trap.
2013
+ self.instruction(I64Const(32));
2014
+ self.instruction(I64ShrU);
2015
+ self.instruction(I64Eqz);
2016
+ self.instruction(BrIf(1));
2017
+ self.instruction(End);
2018
+ self.trap(Trap::ListByteLengthOverflow);
2019
+ self.instruction(End);
2020
+
2021
+ // If a fresh local was used to store the result of the multiplication
2022
+ // then convert it down to 32-bits which should be guaranteed to not
2023
+ // lose information at this point.
2024
+ if opts.ptr() == ValType::I64 {
2025
+ tmp
2026
+ } else {
2027
+ self.instruction(LocalGet(tmp.idx));
2028
+ self.instruction(I32WrapI64);
2029
+ self.free_temp_local(tmp);
2030
+ self.local_set_new_tmp(ValType::I32)
2031
+ }
2032
+ }
2033
+
2034
+ fn convert_src_len_to_dst(
2035
+ &mut self,
2036
+ src_len_local: u32,
2037
+ src_ptr_ty: ValType,
2038
+ dst_ptr_ty: ValType,
2039
+ ) {
2040
+ self.instruction(LocalGet(src_len_local));
2041
+ match (src_ptr_ty, dst_ptr_ty) {
2042
+ (ValType::I32, ValType::I64) => self.instruction(I64ExtendI32U),
2043
+ (ValType::I64, ValType::I32) => self.instruction(I32WrapI64),
2044
+ (src, dst) => assert_eq!(src, dst),
2045
+ }
2046
+ }
2047
+
2048
+ fn translate_record(
2049
+ &mut self,
2050
+ src_ty: TypeRecordIndex,
2051
+ src: &Source<'_>,
2052
+ dst_ty: &InterfaceType,
2053
+ dst: &Destination,
2054
+ ) {
2055
+ let src_ty = &self.types[src_ty];
2056
+ let dst_ty = match dst_ty {
2057
+ InterfaceType::Record(r) => &self.types[*r],
2058
+ _ => panic!("expected a record"),
2059
+ };
2060
+
2061
+ // TODO: subtyping
2062
+ assert_eq!(src_ty.fields.len(), dst_ty.fields.len());
2063
+
2064
+ // First a map is made of the source fields to where they're coming
2065
+ // from (e.g. which offset or which locals). This map is keyed by the
2066
+ // fields' names
2067
+ let mut src_fields = HashMap::new();
2068
+ for (i, src) in src
2069
+ .record_field_srcs(self.types, src_ty.fields.iter().map(|f| f.ty))
2070
+ .enumerate()
2071
+ {
2072
+ let field = &src_ty.fields[i];
2073
+ src_fields.insert(&field.name, (src, &field.ty));
2074
+ }
2075
+
2076
+ // .. and next translation is performed in the order of the destination
2077
+ // fields in case the destination is the stack to ensure that the stack
2078
+ // has the fields all in the right order.
2079
+ //
2080
+ // Note that the lookup in `src_fields` is an infallible lookup which
2081
+ // will panic if the field isn't found.
2082
+ //
2083
+ // TODO: should that lookup be fallible with subtyping?
2084
+ for (i, dst) in dst
2085
+ .record_field_dsts(self.types, dst_ty.fields.iter().map(|f| f.ty))
2086
+ .enumerate()
2087
+ {
2088
+ let field = &dst_ty.fields[i];
2089
+ let (src, src_ty) = &src_fields[&field.name];
2090
+ self.translate(src_ty, src, &field.ty, &dst);
2091
+ }
2092
+ }
2093
+
2094
+ fn translate_flags(
2095
+ &mut self,
2096
+ src_ty: TypeFlagsIndex,
2097
+ src: &Source<'_>,
2098
+ dst_ty: &InterfaceType,
2099
+ dst: &Destination,
2100
+ ) {
2101
+ let src_ty = &self.types[src_ty];
2102
+ let dst_ty = match dst_ty {
2103
+ InterfaceType::Flags(r) => &self.types[*r],
2104
+ _ => panic!("expected a record"),
2105
+ };
2106
+
2107
+ // TODO: subtyping
2108
+ //
2109
+ // Notably this implementation does not support reordering flags from
2110
+ // the source to the destination nor having more flags in the
2111
+ // destination. Currently this is a copy from source to destination
2112
+ // in-bulk. Otherwise reordering indices would have to have some sort of
2113
+ // fancy bit twiddling tricks or something like that.
2114
+ assert_eq!(src_ty.names, dst_ty.names);
2115
+ let cnt = src_ty.names.len();
2116
+ match FlagsSize::from_count(cnt) {
2117
+ FlagsSize::Size0 => {}
2118
+ FlagsSize::Size1 => {
2119
+ let mask = if cnt == 8 { 0xff } else { (1 << cnt) - 1 };
2120
+ self.convert_u8_mask(src, dst, mask);
2121
+ }
2122
+ FlagsSize::Size2 => {
2123
+ let mask = if cnt == 16 { 0xffff } else { (1 << cnt) - 1 };
2124
+ self.convert_u16_mask(src, dst, mask);
2125
+ }
2126
+ FlagsSize::Size4Plus(n) => {
2127
+ let srcs = src.record_field_srcs(self.types, (0..n).map(|_| InterfaceType::U32));
2128
+ let dsts = dst.record_field_dsts(self.types, (0..n).map(|_| InterfaceType::U32));
2129
+ let n = usize::from(n);
2130
+ for (i, (src, dst)) in srcs.zip(dsts).enumerate() {
2131
+ let mask = if i == n - 1 && (cnt % 32 != 0) {
2132
+ (1 << (cnt % 32)) - 1
2133
+ } else {
2134
+ 0xffffffff
2135
+ };
2136
+ self.convert_u32_mask(&src, &dst, mask);
2137
+ }
2138
+ }
2139
+ }
2140
+ }
2141
+
2142
+ fn translate_tuple(
2143
+ &mut self,
2144
+ src_ty: TypeTupleIndex,
2145
+ src: &Source<'_>,
2146
+ dst_ty: &InterfaceType,
2147
+ dst: &Destination,
2148
+ ) {
2149
+ let src_ty = &self.types[src_ty];
2150
+ let dst_ty = match dst_ty {
2151
+ InterfaceType::Tuple(t) => &self.types[*t],
2152
+ _ => panic!("expected a tuple"),
2153
+ };
2154
+
2155
+ // TODO: subtyping
2156
+ assert_eq!(src_ty.types.len(), dst_ty.types.len());
2157
+
2158
+ let srcs = src
2159
+ .record_field_srcs(self.types, src_ty.types.iter().copied())
2160
+ .zip(src_ty.types.iter());
2161
+ let dsts = dst
2162
+ .record_field_dsts(self.types, dst_ty.types.iter().copied())
2163
+ .zip(dst_ty.types.iter());
2164
+ for ((src, src_ty), (dst, dst_ty)) in srcs.zip(dsts) {
2165
+ self.translate(src_ty, &src, dst_ty, &dst);
2166
+ }
2167
+ }
2168
+
2169
+ fn translate_variant(
2170
+ &mut self,
2171
+ src_ty: TypeVariantIndex,
2172
+ src: &Source<'_>,
2173
+ dst_ty: &InterfaceType,
2174
+ dst: &Destination,
2175
+ ) {
2176
+ let src_ty = &self.types[src_ty];
2177
+ let dst_ty = match dst_ty {
2178
+ InterfaceType::Variant(t) => &self.types[*t],
2179
+ _ => panic!("expected a variant"),
2180
+ };
2181
+
2182
+ let src_info = variant_info(self.types, src_ty.cases.iter().map(|(_, c)| c.as_ref()));
2183
+ let dst_info = variant_info(self.types, dst_ty.cases.iter().map(|(_, c)| c.as_ref()));
2184
+
2185
+ let iter = src_ty
2186
+ .cases
2187
+ .iter()
2188
+ .enumerate()
2189
+ .map(|(src_i, (src_case, src_case_ty))| {
2190
+ let dst_i = dst_ty
2191
+ .cases
2192
+ .iter()
2193
+ .position(|(c, _)| c == src_case)
2194
+ .unwrap();
2195
+ let dst_case_ty = &dst_ty.cases[dst_i];
2196
+ let src_i = u32::try_from(src_i).unwrap();
2197
+ let dst_i = u32::try_from(dst_i).unwrap();
2198
+ VariantCase {
2199
+ src_i,
2200
+ src_ty: src_case_ty.as_ref(),
2201
+ dst_i,
2202
+ dst_ty: dst_case_ty.as_ref(),
2203
+ }
2204
+ });
2205
+ self.convert_variant(src, &src_info, dst, &dst_info, iter);
2206
+ }
2207
+
2208
+ fn translate_enum(
2209
+ &mut self,
2210
+ src_ty: TypeEnumIndex,
2211
+ src: &Source<'_>,
2212
+ dst_ty: &InterfaceType,
2213
+ dst: &Destination,
2214
+ ) {
2215
+ let src_ty = &self.types[src_ty];
2216
+ let dst_ty = match dst_ty {
2217
+ InterfaceType::Enum(t) => &self.types[*t],
2218
+ _ => panic!("expected an option"),
2219
+ };
2220
+ let src_info = variant_info(self.types, src_ty.names.iter().map(|_| None));
2221
+ let dst_info = variant_info(self.types, dst_ty.names.iter().map(|_| None));
2222
+
2223
+ self.convert_variant(
2224
+ src,
2225
+ &src_info,
2226
+ dst,
2227
+ &dst_info,
2228
+ src_ty.names.iter().enumerate().map(|(src_i, src_name)| {
2229
+ let dst_i = dst_ty.names.iter().position(|n| n == src_name).unwrap();
2230
+ let src_i = u32::try_from(src_i).unwrap();
2231
+ let dst_i = u32::try_from(dst_i).unwrap();
2232
+ VariantCase {
2233
+ src_i,
2234
+ dst_i,
2235
+ src_ty: None,
2236
+ dst_ty: None,
2237
+ }
2238
+ }),
2239
+ );
2240
+ }
2241
+
2242
+ fn translate_option(
2243
+ &mut self,
2244
+ src_ty: TypeOptionIndex,
2245
+ src: &Source<'_>,
2246
+ dst_ty: &InterfaceType,
2247
+ dst: &Destination,
2248
+ ) {
2249
+ let src_ty = &self.types[src_ty].ty;
2250
+ let dst_ty = match dst_ty {
2251
+ InterfaceType::Option(t) => &self.types[*t].ty,
2252
+ _ => panic!("expected an option"),
2253
+ };
2254
+ let src_ty = Some(src_ty);
2255
+ let dst_ty = Some(dst_ty);
2256
+
2257
+ let src_info = variant_info(self.types, [None, src_ty]);
2258
+ let dst_info = variant_info(self.types, [None, dst_ty]);
2259
+
2260
+ self.convert_variant(
2261
+ src,
2262
+ &src_info,
2263
+ dst,
2264
+ &dst_info,
2265
+ [
2266
+ VariantCase {
2267
+ src_i: 0,
2268
+ dst_i: 0,
2269
+ src_ty: None,
2270
+ dst_ty: None,
2271
+ },
2272
+ VariantCase {
2273
+ src_i: 1,
2274
+ dst_i: 1,
2275
+ src_ty,
2276
+ dst_ty,
2277
+ },
2278
+ ]
2279
+ .into_iter(),
2280
+ );
2281
+ }
2282
+
2283
+ fn translate_result(
2284
+ &mut self,
2285
+ src_ty: TypeResultIndex,
2286
+ src: &Source<'_>,
2287
+ dst_ty: &InterfaceType,
2288
+ dst: &Destination,
2289
+ ) {
2290
+ let src_ty = &self.types[src_ty];
2291
+ let dst_ty = match dst_ty {
2292
+ InterfaceType::Result(t) => &self.types[*t],
2293
+ _ => panic!("expected a result"),
2294
+ };
2295
+
2296
+ let src_info = variant_info(self.types, [src_ty.ok.as_ref(), src_ty.err.as_ref()]);
2297
+ let dst_info = variant_info(self.types, [dst_ty.ok.as_ref(), dst_ty.err.as_ref()]);
2298
+
2299
+ self.convert_variant(
2300
+ src,
2301
+ &src_info,
2302
+ dst,
2303
+ &dst_info,
2304
+ [
2305
+ VariantCase {
2306
+ src_i: 0,
2307
+ dst_i: 0,
2308
+ src_ty: src_ty.ok.as_ref(),
2309
+ dst_ty: dst_ty.ok.as_ref(),
2310
+ },
2311
+ VariantCase {
2312
+ src_i: 1,
2313
+ dst_i: 1,
2314
+ src_ty: src_ty.err.as_ref(),
2315
+ dst_ty: dst_ty.err.as_ref(),
2316
+ },
2317
+ ]
2318
+ .into_iter(),
2319
+ );
2320
+ }
2321
+
2322
+ fn convert_variant<'a>(
2323
+ &mut self,
2324
+ src: &Source<'_>,
2325
+ src_info: &VariantInfo,
2326
+ dst: &Destination,
2327
+ dst_info: &VariantInfo,
2328
+ src_cases: impl ExactSizeIterator<Item = VariantCase<'a>>,
2329
+ ) {
2330
+ // The outermost block is special since it has the result type of the
2331
+ // translation here. That will depend on the `dst`.
2332
+ let outer_block_ty = match dst {
2333
+ Destination::Stack(dst_flat, _) => match dst_flat.len() {
2334
+ 0 => BlockType::Empty,
2335
+ 1 => BlockType::Result(dst_flat[0]),
2336
+ _ => {
2337
+ let ty = self.module.core_types.function(&[], &dst_flat);
2338
+ BlockType::FunctionType(ty)
2339
+ }
2340
+ },
2341
+ Destination::Memory(_) => BlockType::Empty,
2342
+ };
2343
+ self.instruction(Block(outer_block_ty));
2344
+
2345
+ // After the outermost block generate a new block for each of the
2346
+ // remaining cases.
2347
+ let src_cases_len = src_cases.len();
2348
+ for _ in 0..src_cases_len - 1 {
2349
+ self.instruction(Block(BlockType::Empty));
2350
+ }
2351
+
2352
+ // Generate a block for an invalid variant discriminant
2353
+ self.instruction(Block(BlockType::Empty));
2354
+
2355
+ // And generate one final block that we'll be jumping out of with the
2356
+ // `br_table`
2357
+ self.instruction(Block(BlockType::Empty));
2358
+
2359
+ // Load the discriminant
2360
+ match src {
2361
+ Source::Stack(s) => self.stack_get(&s.slice(0..1), ValType::I32),
2362
+ Source::Memory(mem) => match src_info.size {
2363
+ DiscriminantSize::Size1 => self.i32_load8u(mem),
2364
+ DiscriminantSize::Size2 => self.i32_load16u(mem),
2365
+ DiscriminantSize::Size4 => self.i32_load(mem),
2366
+ },
2367
+ }
2368
+
2369
+ // Generate the `br_table` for the discriminant. Each case has an
2370
+ // offset of 1 to skip the trapping block.
2371
+ let mut targets = Vec::new();
2372
+ for i in 0..src_cases_len {
2373
+ targets.push((i + 1) as u32);
2374
+ }
2375
+ self.instruction(BrTable(targets[..].into(), 0));
2376
+ self.instruction(End); // end the `br_table` block
2377
+
2378
+ self.trap(Trap::InvalidDiscriminant);
2379
+ self.instruction(End); // end the "invalid discriminant" block
2380
+
2381
+ // Translate each case individually within its own block. Note that the
2382
+ // iteration order here places the first case in the innermost block
2383
+ // and the last case in the outermost block. This matches the order
2384
+ // of the jump targets in the `br_table` instruction.
2385
+ let src_cases_len = u32::try_from(src_cases_len).unwrap();
2386
+ for case in src_cases {
2387
+ let VariantCase {
2388
+ src_i,
2389
+ src_ty,
2390
+ dst_i,
2391
+ dst_ty,
2392
+ } = case;
2393
+
2394
+ // Translate the discriminant here, noting that `dst_i` may be
2395
+ // different than `src_i`.
2396
+ self.push_dst_addr(dst);
2397
+ self.instruction(I32Const(dst_i as i32));
2398
+ match dst {
2399
+ Destination::Stack(stack, _) => self.stack_set(&stack[..1], ValType::I32),
2400
+ Destination::Memory(mem) => match dst_info.size {
2401
+ DiscriminantSize::Size1 => self.i32_store8(mem),
2402
+ DiscriminantSize::Size2 => self.i32_store16(mem),
2403
+ DiscriminantSize::Size4 => self.i32_store(mem),
2404
+ },
2405
+ }
2406
+
2407
+ let src_payload = src.payload_src(self.types, src_info, src_ty);
2408
+ let dst_payload = dst.payload_dst(self.types, dst_info, dst_ty);
2409
+
2410
+ // Translate the payload of this case using the various types from
2411
+ // the dst/src.
2412
+ match (src_ty, dst_ty) {
2413
+ (Some(src_ty), Some(dst_ty)) => {
2414
+ self.translate(src_ty, &src_payload, dst_ty, &dst_payload);
2415
+ }
2416
+ (None, None) => {}
2417
+ _ => unimplemented!(),
2418
+ }
2419
+
2420
+ // If the results of this translation were placed on the stack then
2421
+ // the stack values may need to be padded with more zeros due to
2422
+ // this particular case being possibly smaller than the entire
2423
+ // variant. That's handled here by pushing remaining zeros after
2424
+ // accounting for the discriminant pushed as well as the results of
2425
+ // this individual payload.
2426
+ if let Destination::Stack(payload_results, _) = dst_payload {
2427
+ if let Destination::Stack(dst_results, _) = dst {
2428
+ let remaining = &dst_results[1..][payload_results.len()..];
2429
+ for ty in remaining {
2430
+ match ty {
2431
+ ValType::I32 => self.instruction(I32Const(0)),
2432
+ ValType::I64 => self.instruction(I64Const(0)),
2433
+ ValType::F32 => self.instruction(F32Const(0.0)),
2434
+ ValType::F64 => self.instruction(F64Const(0.0)),
2435
+ _ => unreachable!(),
2436
+ }
2437
+ }
2438
+ }
2439
+ }
2440
+
2441
+ // Branch to the outermost block. Note that this isn't needed for
2442
+ // the outermost case since it simply falls through.
2443
+ if src_i != src_cases_len - 1 {
2444
+ self.instruction(Br(src_cases_len - src_i - 1));
2445
+ }
2446
+ self.instruction(End); // end this case's block
2447
+ }
2448
+ }
2449
+
2450
+ fn translate_own(
2451
+ &mut self,
2452
+ src_ty: TypeResourceTableIndex,
2453
+ src: &Source<'_>,
2454
+ dst_ty: &InterfaceType,
2455
+ dst: &Destination,
2456
+ ) {
2457
+ let dst_ty = match dst_ty {
2458
+ InterfaceType::Own(t) => *t,
2459
+ _ => panic!("expected an `Own`"),
2460
+ };
2461
+ let transfer = self.module.import_resource_transfer_own();
2462
+ self.translate_resource(src_ty, src, dst_ty, dst, transfer);
2463
+ }
2464
+
2465
+ fn translate_borrow(
2466
+ &mut self,
2467
+ src_ty: TypeResourceTableIndex,
2468
+ src: &Source<'_>,
2469
+ dst_ty: &InterfaceType,
2470
+ dst: &Destination,
2471
+ ) {
2472
+ let dst_ty = match dst_ty {
2473
+ InterfaceType::Borrow(t) => *t,
2474
+ _ => panic!("expected an `Borrow`"),
2475
+ };
2476
+
2477
+ let transfer = self.module.import_resource_transfer_borrow();
2478
+ self.translate_resource(src_ty, src, dst_ty, dst, transfer);
2479
+ }
2480
+
2481
+ /// Translates the index `src`, which resides in the table `src_ty`, into
2482
+ /// and index within `dst_ty` and is stored at `dst`.
2483
+ ///
2484
+ /// Actual translation of the index happens in a wasmtime libcall, which a
2485
+ /// cranelift-generated trampoline to satisfy this import will call. The
2486
+ /// `transfer` function is an imported function which takes the src, src_ty,
2487
+ /// and dst_ty, and returns the dst index.
2488
+ fn translate_resource(
2489
+ &mut self,
2490
+ src_ty: TypeResourceTableIndex,
2491
+ src: &Source<'_>,
2492
+ dst_ty: TypeResourceTableIndex,
2493
+ dst: &Destination,
2494
+ transfer: FuncIndex,
2495
+ ) {
2496
+ self.push_dst_addr(dst);
2497
+ match src {
2498
+ Source::Memory(mem) => self.i32_load(mem),
2499
+ Source::Stack(stack) => self.stack_get(stack, ValType::I32),
2500
+ }
2501
+ self.instruction(I32Const(src_ty.as_u32() as i32));
2502
+ self.instruction(I32Const(dst_ty.as_u32() as i32));
2503
+ self.instruction(Call(transfer.as_u32()));
2504
+ match dst {
2505
+ Destination::Memory(mem) => self.i32_store(mem),
2506
+ Destination::Stack(stack, _) => self.stack_set(stack, ValType::I32),
2507
+ }
2508
+ }
2509
+
2510
+ fn trap_if_not_flag(&mut self, flags_global: GlobalIndex, flag_to_test: i32, trap: Trap) {
2511
+ self.instruction(GlobalGet(flags_global.as_u32()));
2512
+ self.instruction(I32Const(flag_to_test));
2513
+ self.instruction(I32And);
2514
+ self.instruction(I32Eqz);
2515
+ self.instruction(If(BlockType::Empty));
2516
+ self.trap(trap);
2517
+ self.instruction(End);
2518
+ }
2519
+
2520
+ fn assert_not_flag(&mut self, flags_global: GlobalIndex, flag_to_test: i32, msg: &'static str) {
2521
+ self.instruction(GlobalGet(flags_global.as_u32()));
2522
+ self.instruction(I32Const(flag_to_test));
2523
+ self.instruction(I32And);
2524
+ self.instruction(If(BlockType::Empty));
2525
+ self.trap(Trap::AssertFailed(msg));
2526
+ self.instruction(End);
2527
+ }
2528
+
2529
+ fn set_flag(&mut self, flags_global: GlobalIndex, flag_to_set: i32, value: bool) {
2530
+ self.instruction(GlobalGet(flags_global.as_u32()));
2531
+ if value {
2532
+ self.instruction(I32Const(flag_to_set));
2533
+ self.instruction(I32Or);
2534
+ } else {
2535
+ self.instruction(I32Const(!flag_to_set));
2536
+ self.instruction(I32And);
2537
+ }
2538
+ self.instruction(GlobalSet(flags_global.as_u32()));
2539
+ }
2540
+
2541
+ fn verify_aligned(&mut self, opts: &Options, addr_local: u32, align: u32) {
2542
+ // If the alignment is 1 then everything is trivially aligned and the
2543
+ // check can be omitted.
2544
+ if align == 1 {
2545
+ return;
2546
+ }
2547
+ self.instruction(LocalGet(addr_local));
2548
+ assert!(align.is_power_of_two());
2549
+ self.ptr_uconst(opts, align - 1);
2550
+ self.ptr_and(opts);
2551
+ self.ptr_if(opts, BlockType::Empty);
2552
+ self.trap(Trap::UnalignedPointer);
2553
+ self.instruction(End);
2554
+ }
2555
+
2556
+ fn assert_aligned(&mut self, ty: &InterfaceType, mem: &Memory) {
2557
+ if !self.module.debug {
2558
+ return;
2559
+ }
2560
+ let align = self.types.align(mem.opts, ty);
2561
+ if align == 1 {
2562
+ return;
2563
+ }
2564
+ assert!(align.is_power_of_two());
2565
+ self.instruction(LocalGet(mem.addr.idx));
2566
+ self.ptr_uconst(mem.opts, mem.offset);
2567
+ self.ptr_add(mem.opts);
2568
+ self.ptr_uconst(mem.opts, align - 1);
2569
+ self.ptr_and(mem.opts);
2570
+ self.ptr_if(mem.opts, BlockType::Empty);
2571
+ self.trap(Trap::AssertFailed("pointer not aligned"));
2572
+ self.instruction(End);
2573
+ }
2574
+
2575
+ fn malloc<'a>(&mut self, opts: &'a Options, size: MallocSize, align: u32) -> Memory<'a> {
2576
+ let realloc = opts.realloc.unwrap();
2577
+ self.ptr_uconst(opts, 0);
2578
+ self.ptr_uconst(opts, 0);
2579
+ self.ptr_uconst(opts, align);
2580
+ match size {
2581
+ MallocSize::Const(size) => self.ptr_uconst(opts, size),
2582
+ MallocSize::Local(idx) => self.instruction(LocalGet(idx)),
2583
+ }
2584
+ self.instruction(Call(realloc.as_u32()));
2585
+ let addr = self.local_set_new_tmp(opts.ptr());
2586
+ self.memory_operand(opts, addr, align)
2587
+ }
2588
+
2589
+ fn memory_operand<'a>(&mut self, opts: &'a Options, addr: TempLocal, align: u32) -> Memory<'a> {
2590
+ let ret = Memory {
2591
+ addr,
2592
+ offset: 0,
2593
+ opts,
2594
+ };
2595
+ self.verify_aligned(opts, ret.addr.idx, align);
2596
+ ret
2597
+ }
2598
+
2599
+ /// Generates a new local in this function of the `ty` specified,
2600
+ /// initializing it with the top value on the current wasm stack.
2601
+ ///
2602
+ /// The returned `TempLocal` must be freed after it is finished with
2603
+ /// `free_temp_local`.
2604
+ fn local_tee_new_tmp(&mut self, ty: ValType) -> TempLocal {
2605
+ self.gen_temp_local(ty, LocalTee)
2606
+ }
2607
+
2608
+ /// Same as `local_tee_new_tmp` but initializes the local with `LocalSet`
2609
+ /// instead of `LocalTee`.
2610
+ fn local_set_new_tmp(&mut self, ty: ValType) -> TempLocal {
2611
+ self.gen_temp_local(ty, LocalSet)
2612
+ }
2613
+
2614
+ fn gen_temp_local(&mut self, ty: ValType, insn: fn(u32) -> Instruction<'static>) -> TempLocal {
2615
+ // First check to see if any locals are available in this function which
2616
+ // were previously generated but are no longer in use.
2617
+ if let Some(idx) = self.free_locals.get_mut(&ty).and_then(|v| v.pop()) {
2618
+ self.instruction(insn(idx));
2619
+ return TempLocal {
2620
+ ty,
2621
+ idx,
2622
+ needs_free: true,
2623
+ };
2624
+ }
2625
+
2626
+ // Failing that generate a fresh new local.
2627
+ let locals = &mut self.module.funcs[self.result].locals;
2628
+ match locals.last_mut() {
2629
+ Some((cnt, prev_ty)) if ty == *prev_ty => *cnt += 1,
2630
+ _ => locals.push((1, ty)),
2631
+ }
2632
+ self.nlocals += 1;
2633
+ let idx = self.nlocals - 1;
2634
+ self.instruction(insn(idx));
2635
+ TempLocal {
2636
+ ty,
2637
+ idx,
2638
+ needs_free: true,
2639
+ }
2640
+ }
2641
+
2642
+ /// Used to release a `TempLocal` from a particular lexical scope to allow
2643
+ /// its possible reuse in later scopes.
2644
+ fn free_temp_local(&mut self, mut local: TempLocal) {
2645
+ assert!(local.needs_free);
2646
+ self.free_locals
2647
+ .entry(local.ty)
2648
+ .or_insert(Vec::new())
2649
+ .push(local.idx);
2650
+ local.needs_free = false;
2651
+ }
2652
+
2653
+ fn instruction(&mut self, instr: Instruction) {
2654
+ instr.encode(&mut self.code);
2655
+ }
2656
+
2657
+ fn trap(&mut self, trap: Trap) {
2658
+ self.traps.push((self.code.len(), trap));
2659
+ self.instruction(Unreachable);
2660
+ }
2661
+
2662
+ /// Flushes out the current `code` instructions (and `traps` if there are
2663
+ /// any) into the destination function.
2664
+ ///
2665
+ /// This is a noop if no instructions have been encoded yet.
2666
+ fn flush_code(&mut self) {
2667
+ if self.code.is_empty() {
2668
+ return;
2669
+ }
2670
+ self.module.funcs[self.result].body.push(Body::Raw(
2671
+ mem::take(&mut self.code),
2672
+ mem::take(&mut self.traps),
2673
+ ));
2674
+ }
2675
+
2676
+ fn finish(mut self) {
2677
+ // Append the final `end` instruction which all functions require, and
2678
+ // then empty out the temporary buffer in `Compiler`.
2679
+ self.instruction(End);
2680
+ self.flush_code();
2681
+
2682
+ // Flag the function as "done" which helps with an assert later on in
2683
+ // emission that everything was eventually finished.
2684
+ self.module.funcs[self.result].filled_in = true;
2685
+ }
2686
+
2687
+ /// Fetches the value contained with the local specified by `stack` and
2688
+ /// converts it to `dst_ty`.
2689
+ ///
2690
+ /// This is only intended for use in primitive operations where `stack` is
2691
+ /// guaranteed to have only one local. The type of the local on the stack is
2692
+ /// then converted to `dst_ty` appropriately. Note that the types may be
2693
+ /// different due to the "flattening" of variant types.
2694
+ fn stack_get(&mut self, stack: &Stack<'_>, dst_ty: ValType) {
2695
+ assert_eq!(stack.locals.len(), 1);
2696
+ let (idx, src_ty) = stack.locals[0];
2697
+ self.instruction(LocalGet(idx));
2698
+ match (src_ty, dst_ty) {
2699
+ (ValType::I32, ValType::I32)
2700
+ | (ValType::I64, ValType::I64)
2701
+ | (ValType::F32, ValType::F32)
2702
+ | (ValType::F64, ValType::F64) => {}
2703
+
2704
+ (ValType::I32, ValType::F32) => self.instruction(F32ReinterpretI32),
2705
+ (ValType::I64, ValType::I32) => {
2706
+ self.assert_i64_upper_bits_not_set(idx);
2707
+ self.instruction(I32WrapI64);
2708
+ }
2709
+ (ValType::I64, ValType::F64) => self.instruction(F64ReinterpretI64),
2710
+ (ValType::I64, ValType::F32) => {
2711
+ self.assert_i64_upper_bits_not_set(idx);
2712
+ self.instruction(I32WrapI64);
2713
+ self.instruction(F32ReinterpretI32);
2714
+ }
2715
+
2716
+ // should not be possible given the `join` function for variants
2717
+ (ValType::I32, ValType::I64)
2718
+ | (ValType::I32, ValType::F64)
2719
+ | (ValType::F32, ValType::I32)
2720
+ | (ValType::F32, ValType::I64)
2721
+ | (ValType::F32, ValType::F64)
2722
+ | (ValType::F64, ValType::I32)
2723
+ | (ValType::F64, ValType::I64)
2724
+ | (ValType::F64, ValType::F32)
2725
+
2726
+ // not used in the component model
2727
+ | (ValType::Ref(_), _)
2728
+ | (_, ValType::Ref(_))
2729
+ | (ValType::V128, _)
2730
+ | (_, ValType::V128) => {
2731
+ panic!("cannot get {dst_ty:?} from {src_ty:?} local");
2732
+ }
2733
+ }
2734
+ }
2735
+
2736
+ fn assert_i64_upper_bits_not_set(&mut self, local: u32) {
2737
+ if !self.module.debug {
2738
+ return;
2739
+ }
2740
+ self.instruction(LocalGet(local));
2741
+ self.instruction(I64Const(32));
2742
+ self.instruction(I64ShrU);
2743
+ self.instruction(I32WrapI64);
2744
+ self.instruction(If(BlockType::Empty));
2745
+ self.trap(Trap::AssertFailed("upper bits are unexpectedly set"));
2746
+ self.instruction(End);
2747
+ }
2748
+
2749
+ /// Converts the top value on the WebAssembly stack which has type
2750
+ /// `src_ty` to `dst_tys[0]`.
2751
+ ///
2752
+ /// This is only intended for conversion of primitives where the `dst_tys`
2753
+ /// list is known to be of length 1.
2754
+ fn stack_set(&mut self, dst_tys: &[ValType], src_ty: ValType) {
2755
+ assert_eq!(dst_tys.len(), 1);
2756
+ let dst_ty = dst_tys[0];
2757
+ match (src_ty, dst_ty) {
2758
+ (ValType::I32, ValType::I32)
2759
+ | (ValType::I64, ValType::I64)
2760
+ | (ValType::F32, ValType::F32)
2761
+ | (ValType::F64, ValType::F64) => {}
2762
+
2763
+ (ValType::F32, ValType::I32) => self.instruction(I32ReinterpretF32),
2764
+ (ValType::I32, ValType::I64) => self.instruction(I64ExtendI32U),
2765
+ (ValType::F64, ValType::I64) => self.instruction(I64ReinterpretF64),
2766
+ (ValType::F32, ValType::I64) => {
2767
+ self.instruction(I32ReinterpretF32);
2768
+ self.instruction(I64ExtendI32U);
2769
+ }
2770
+
2771
+ // should not be possible given the `join` function for variants
2772
+ (ValType::I64, ValType::I32)
2773
+ | (ValType::F64, ValType::I32)
2774
+ | (ValType::I32, ValType::F32)
2775
+ | (ValType::I64, ValType::F32)
2776
+ | (ValType::F64, ValType::F32)
2777
+ | (ValType::I32, ValType::F64)
2778
+ | (ValType::I64, ValType::F64)
2779
+ | (ValType::F32, ValType::F64)
2780
+
2781
+ // not used in the component model
2782
+ | (ValType::Ref(_), _)
2783
+ | (_, ValType::Ref(_))
2784
+ | (ValType::V128, _)
2785
+ | (_, ValType::V128) => {
2786
+ panic!("cannot get {dst_ty:?} from {src_ty:?} local");
2787
+ }
2788
+ }
2789
+ }
2790
+
2791
+ fn i32_load8u(&mut self, mem: &Memory) {
2792
+ self.instruction(LocalGet(mem.addr.idx));
2793
+ self.instruction(I32Load8U(mem.memarg(0)));
2794
+ }
2795
+
2796
+ fn i32_load8s(&mut self, mem: &Memory) {
2797
+ self.instruction(LocalGet(mem.addr.idx));
2798
+ self.instruction(I32Load8S(mem.memarg(0)));
2799
+ }
2800
+
2801
+ fn i32_load16u(&mut self, mem: &Memory) {
2802
+ self.instruction(LocalGet(mem.addr.idx));
2803
+ self.instruction(I32Load16U(mem.memarg(1)));
2804
+ }
2805
+
2806
+ fn i32_load16s(&mut self, mem: &Memory) {
2807
+ self.instruction(LocalGet(mem.addr.idx));
2808
+ self.instruction(I32Load16S(mem.memarg(1)));
2809
+ }
2810
+
2811
+ fn i32_load(&mut self, mem: &Memory) {
2812
+ self.instruction(LocalGet(mem.addr.idx));
2813
+ self.instruction(I32Load(mem.memarg(2)));
2814
+ }
2815
+
2816
+ fn i64_load(&mut self, mem: &Memory) {
2817
+ self.instruction(LocalGet(mem.addr.idx));
2818
+ self.instruction(I64Load(mem.memarg(3)));
2819
+ }
2820
+
2821
+ fn ptr_load(&mut self, mem: &Memory) {
2822
+ if mem.opts.memory64 {
2823
+ self.i64_load(mem);
2824
+ } else {
2825
+ self.i32_load(mem);
2826
+ }
2827
+ }
2828
+
2829
+ fn ptr_add(&mut self, opts: &Options) {
2830
+ if opts.memory64 {
2831
+ self.instruction(I64Add);
2832
+ } else {
2833
+ self.instruction(I32Add);
2834
+ }
2835
+ }
2836
+
2837
+ fn ptr_sub(&mut self, opts: &Options) {
2838
+ if opts.memory64 {
2839
+ self.instruction(I64Sub);
2840
+ } else {
2841
+ self.instruction(I32Sub);
2842
+ }
2843
+ }
2844
+
2845
+ fn ptr_mul(&mut self, opts: &Options) {
2846
+ if opts.memory64 {
2847
+ self.instruction(I64Mul);
2848
+ } else {
2849
+ self.instruction(I32Mul);
2850
+ }
2851
+ }
2852
+
2853
+ fn ptr_ge_u(&mut self, opts: &Options) {
2854
+ if opts.memory64 {
2855
+ self.instruction(I64GeU);
2856
+ } else {
2857
+ self.instruction(I32GeU);
2858
+ }
2859
+ }
2860
+
2861
+ fn ptr_lt_u(&mut self, opts: &Options) {
2862
+ if opts.memory64 {
2863
+ self.instruction(I64LtU);
2864
+ } else {
2865
+ self.instruction(I32LtU);
2866
+ }
2867
+ }
2868
+
2869
+ fn ptr_shl(&mut self, opts: &Options) {
2870
+ if opts.memory64 {
2871
+ self.instruction(I64Shl);
2872
+ } else {
2873
+ self.instruction(I32Shl);
2874
+ }
2875
+ }
2876
+
2877
+ fn ptr_eqz(&mut self, opts: &Options) {
2878
+ if opts.memory64 {
2879
+ self.instruction(I64Eqz);
2880
+ } else {
2881
+ self.instruction(I32Eqz);
2882
+ }
2883
+ }
2884
+
2885
+ fn ptr_uconst(&mut self, opts: &Options, val: u32) {
2886
+ if opts.memory64 {
2887
+ self.instruction(I64Const(val.into()));
2888
+ } else {
2889
+ self.instruction(I32Const(val as i32));
2890
+ }
2891
+ }
2892
+
2893
+ fn ptr_iconst(&mut self, opts: &Options, val: i32) {
2894
+ if opts.memory64 {
2895
+ self.instruction(I64Const(val.into()));
2896
+ } else {
2897
+ self.instruction(I32Const(val));
2898
+ }
2899
+ }
2900
+
2901
+ fn ptr_eq(&mut self, opts: &Options) {
2902
+ if opts.memory64 {
2903
+ self.instruction(I64Eq);
2904
+ } else {
2905
+ self.instruction(I32Eq);
2906
+ }
2907
+ }
2908
+
2909
+ fn ptr_ne(&mut self, opts: &Options) {
2910
+ if opts.memory64 {
2911
+ self.instruction(I64Ne);
2912
+ } else {
2913
+ self.instruction(I32Ne);
2914
+ }
2915
+ }
2916
+
2917
+ fn ptr_and(&mut self, opts: &Options) {
2918
+ if opts.memory64 {
2919
+ self.instruction(I64And);
2920
+ } else {
2921
+ self.instruction(I32And);
2922
+ }
2923
+ }
2924
+
2925
+ fn ptr_or(&mut self, opts: &Options) {
2926
+ if opts.memory64 {
2927
+ self.instruction(I64Or);
2928
+ } else {
2929
+ self.instruction(I32Or);
2930
+ }
2931
+ }
2932
+
2933
+ fn ptr_xor(&mut self, opts: &Options) {
2934
+ if opts.memory64 {
2935
+ self.instruction(I64Xor);
2936
+ } else {
2937
+ self.instruction(I32Xor);
2938
+ }
2939
+ }
2940
+
2941
+ fn ptr_if(&mut self, opts: &Options, ty: BlockType) {
2942
+ if opts.memory64 {
2943
+ self.instruction(I64Const(0));
2944
+ self.instruction(I64Ne);
2945
+ }
2946
+ self.instruction(If(ty));
2947
+ }
2948
+
2949
+ fn ptr_br_if(&mut self, opts: &Options, depth: u32) {
2950
+ if opts.memory64 {
2951
+ self.instruction(I64Const(0));
2952
+ self.instruction(I64Ne);
2953
+ }
2954
+ self.instruction(BrIf(depth));
2955
+ }
2956
+
2957
+ fn f32_load(&mut self, mem: &Memory) {
2958
+ self.instruction(LocalGet(mem.addr.idx));
2959
+ self.instruction(F32Load(mem.memarg(2)));
2960
+ }
2961
+
2962
+ fn f64_load(&mut self, mem: &Memory) {
2963
+ self.instruction(LocalGet(mem.addr.idx));
2964
+ self.instruction(F64Load(mem.memarg(3)));
2965
+ }
2966
+
2967
+ fn push_dst_addr(&mut self, dst: &Destination) {
2968
+ if let Destination::Memory(mem) = dst {
2969
+ self.instruction(LocalGet(mem.addr.idx));
2970
+ }
2971
+ }
2972
+
2973
+ fn i32_store8(&mut self, mem: &Memory) {
2974
+ self.instruction(I32Store8(mem.memarg(0)));
2975
+ }
2976
+
2977
+ fn i32_store16(&mut self, mem: &Memory) {
2978
+ self.instruction(I32Store16(mem.memarg(1)));
2979
+ }
2980
+
2981
+ fn i32_store(&mut self, mem: &Memory) {
2982
+ self.instruction(I32Store(mem.memarg(2)));
2983
+ }
2984
+
2985
+ fn i64_store(&mut self, mem: &Memory) {
2986
+ self.instruction(I64Store(mem.memarg(3)));
2987
+ }
2988
+
2989
+ fn ptr_store(&mut self, mem: &Memory) {
2990
+ if mem.opts.memory64 {
2991
+ self.i64_store(mem);
2992
+ } else {
2993
+ self.i32_store(mem);
2994
+ }
2995
+ }
2996
+
2997
+ fn f32_store(&mut self, mem: &Memory) {
2998
+ self.instruction(F32Store(mem.memarg(2)));
2999
+ }
3000
+
3001
+ fn f64_store(&mut self, mem: &Memory) {
3002
+ self.instruction(F64Store(mem.memarg(3)));
3003
+ }
3004
+ }
3005
+
3006
+ impl<'a> Source<'a> {
3007
+ /// Given this `Source` returns an iterator over the `Source` for each of
3008
+ /// the component `fields` specified.
3009
+ ///
3010
+ /// This will automatically slice stack-based locals to the appropriate
3011
+ /// width for each component type and additionally calculate the appropriate
3012
+ /// offset for each memory-based type.
3013
+ fn record_field_srcs<'b>(
3014
+ &'b self,
3015
+ types: &'b ComponentTypesBuilder,
3016
+ fields: impl IntoIterator<Item = InterfaceType> + 'b,
3017
+ ) -> impl Iterator<Item = Source<'a>> + 'b
3018
+ where
3019
+ 'a: 'b,
3020
+ {
3021
+ let mut offset = 0;
3022
+ fields.into_iter().map(move |ty| match self {
3023
+ Source::Memory(mem) => {
3024
+ let mem = next_field_offset(&mut offset, types, &ty, mem);
3025
+ Source::Memory(mem)
3026
+ }
3027
+ Source::Stack(stack) => {
3028
+ let cnt = types.flat_types(&ty).unwrap().len() as u32;
3029
+ offset += cnt;
3030
+ Source::Stack(stack.slice((offset - cnt) as usize..offset as usize))
3031
+ }
3032
+ })
3033
+ }
3034
+
3035
+ /// Returns the corresponding discriminant source and payload source f
3036
+ fn payload_src(
3037
+ &self,
3038
+ types: &ComponentTypesBuilder,
3039
+ info: &VariantInfo,
3040
+ case: Option<&InterfaceType>,
3041
+ ) -> Source<'a> {
3042
+ match self {
3043
+ Source::Stack(s) => {
3044
+ let flat_len = match case {
3045
+ Some(case) => types.flat_types(case).unwrap().len(),
3046
+ None => 0,
3047
+ };
3048
+ Source::Stack(s.slice(1..s.locals.len()).slice(0..flat_len))
3049
+ }
3050
+ Source::Memory(mem) => {
3051
+ let mem = if mem.opts.memory64 {
3052
+ mem.bump(info.payload_offset64)
3053
+ } else {
3054
+ mem.bump(info.payload_offset32)
3055
+ };
3056
+ Source::Memory(mem)
3057
+ }
3058
+ }
3059
+ }
3060
+
3061
+ fn opts(&self) -> &'a Options {
3062
+ match self {
3063
+ Source::Stack(s) => s.opts,
3064
+ Source::Memory(mem) => mem.opts,
3065
+ }
3066
+ }
3067
+ }
3068
+
3069
+ impl<'a> Destination<'a> {
3070
+ /// Same as `Source::record_field_srcs` but for destinations.
3071
+ fn record_field_dsts<'b>(
3072
+ &'b self,
3073
+ types: &'b ComponentTypesBuilder,
3074
+ fields: impl IntoIterator<Item = InterfaceType> + 'b,
3075
+ ) -> impl Iterator<Item = Destination> + 'b
3076
+ where
3077
+ 'a: 'b,
3078
+ {
3079
+ let mut offset = 0;
3080
+ fields.into_iter().map(move |ty| match self {
3081
+ Destination::Memory(mem) => {
3082
+ let mem = next_field_offset(&mut offset, types, &ty, mem);
3083
+ Destination::Memory(mem)
3084
+ }
3085
+ Destination::Stack(s, opts) => {
3086
+ let cnt = types.flat_types(&ty).unwrap().len() as u32;
3087
+ offset += cnt;
3088
+ Destination::Stack(&s[(offset - cnt) as usize..offset as usize], opts)
3089
+ }
3090
+ })
3091
+ }
3092
+
3093
+ /// Returns the corresponding discriminant source and payload source f
3094
+ fn payload_dst(
3095
+ &self,
3096
+ types: &ComponentTypesBuilder,
3097
+ info: &VariantInfo,
3098
+ case: Option<&InterfaceType>,
3099
+ ) -> Destination {
3100
+ match self {
3101
+ Destination::Stack(s, opts) => {
3102
+ let flat_len = match case {
3103
+ Some(case) => types.flat_types(case).unwrap().len(),
3104
+ None => 0,
3105
+ };
3106
+ Destination::Stack(&s[1..][..flat_len], opts)
3107
+ }
3108
+ Destination::Memory(mem) => {
3109
+ let mem = if mem.opts.memory64 {
3110
+ mem.bump(info.payload_offset64)
3111
+ } else {
3112
+ mem.bump(info.payload_offset32)
3113
+ };
3114
+ Destination::Memory(mem)
3115
+ }
3116
+ }
3117
+ }
3118
+
3119
+ fn opts(&self) -> &'a Options {
3120
+ match self {
3121
+ Destination::Stack(_, opts) => opts,
3122
+ Destination::Memory(mem) => mem.opts,
3123
+ }
3124
+ }
3125
+ }
3126
+
3127
+ fn next_field_offset<'a>(
3128
+ offset: &mut u32,
3129
+ types: &ComponentTypesBuilder,
3130
+ field: &InterfaceType,
3131
+ mem: &Memory<'a>,
3132
+ ) -> Memory<'a> {
3133
+ let abi = types.canonical_abi(field);
3134
+ let offset = if mem.opts.memory64 {
3135
+ abi.next_field64(offset)
3136
+ } else {
3137
+ abi.next_field32(offset)
3138
+ };
3139
+ mem.bump(offset)
3140
+ }
3141
+
3142
+ impl<'a> Memory<'a> {
3143
+ fn memarg(&self, align: u32) -> MemArg {
3144
+ MemArg {
3145
+ offset: u64::from(self.offset),
3146
+ align,
3147
+ memory_index: self.opts.memory.unwrap().as_u32(),
3148
+ }
3149
+ }
3150
+
3151
+ fn bump(&self, offset: u32) -> Memory<'a> {
3152
+ Memory {
3153
+ opts: self.opts,
3154
+ addr: TempLocal::new(self.addr.idx, self.addr.ty),
3155
+ offset: self.offset + offset,
3156
+ }
3157
+ }
3158
+ }
3159
+
3160
+ impl<'a> Stack<'a> {
3161
+ fn slice(&self, range: Range<usize>) -> Stack<'a> {
3162
+ Stack {
3163
+ locals: &self.locals[range],
3164
+ opts: self.opts,
3165
+ }
3166
+ }
3167
+ }
3168
+
3169
+ struct VariantCase<'a> {
3170
+ src_i: u32,
3171
+ src_ty: Option<&'a InterfaceType>,
3172
+ dst_i: u32,
3173
+ dst_ty: Option<&'a InterfaceType>,
3174
+ }
3175
+
3176
+ fn variant_info<'a, I>(types: &ComponentTypesBuilder, cases: I) -> VariantInfo
3177
+ where
3178
+ I: IntoIterator<Item = Option<&'a InterfaceType>>,
3179
+ I::IntoIter: ExactSizeIterator,
3180
+ {
3181
+ VariantInfo::new(
3182
+ cases
3183
+ .into_iter()
3184
+ .map(|ty| ty.map(|ty| types.canonical_abi(ty))),
3185
+ )
3186
+ .0
3187
+ }
3188
+
3189
+ enum MallocSize {
3190
+ Const(u32),
3191
+ Local(u32),
3192
+ }
3193
+
3194
+ struct WasmString<'a> {
3195
+ ptr: TempLocal,
3196
+ len: TempLocal,
3197
+ opts: &'a Options,
3198
+ }
3199
+
3200
+ struct TempLocal {
3201
+ idx: u32,
3202
+ ty: ValType,
3203
+ needs_free: bool,
3204
+ }
3205
+
3206
+ impl TempLocal {
3207
+ fn new(idx: u32, ty: ValType) -> TempLocal {
3208
+ TempLocal {
3209
+ idx,
3210
+ ty,
3211
+ needs_free: false,
3212
+ }
3213
+ }
3214
+ }
3215
+
3216
+ impl std::ops::Drop for TempLocal {
3217
+ fn drop(&mut self) {
3218
+ if self.needs_free {
3219
+ panic!("temporary local not free'd");
3220
+ }
3221
+ }
3222
+ }
3223
+
3224
+ impl From<FlatType> for ValType {
3225
+ fn from(ty: FlatType) -> ValType {
3226
+ match ty {
3227
+ FlatType::I32 => ValType::I32,
3228
+ FlatType::I64 => ValType::I64,
3229
+ FlatType::F32 => ValType::F32,
3230
+ FlatType::F64 => ValType::F64,
3231
+ }
3232
+ }
3233
+ }