wasmtime 15.0.1 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1212) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +83 -103
  3. data/ext/Cargo.toml +6 -6
  4. data/ext/cargo-vendor/cranelift-bforest-0.103.0/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.103.0/Cargo.toml +40 -0
  6. data/ext/cargo-vendor/cranelift-bforest-0.103.0/src/lib.rs +183 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.103.0/.cargo-checksum.json +1 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.103.0/Cargo.toml +175 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/binemit/mod.rs +171 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/cost.rs +171 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/elaborate.rs +750 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph.rs +703 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/dfg.rs +1735 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/pcc.rs +1682 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/aarch64/lower/isle.rs +874 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst/mod.rs +2041 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst.isle +2928 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/lower.isle +2864 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/s390x/lower/isle.rs +1029 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/lower/isle.rs +1064 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/pcc.rs +916 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isle_prelude.rs +977 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/lib.rs +106 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/machinst/isle.rs +896 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/arithmetic.isle +152 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/cprop.isle +237 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/icmp.isle +199 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/selects.isle +76 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts.rs +172 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/prelude.isle +649 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/timing.rs +297 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/unionfind.rs +75 -0
  33. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/.cargo-checksum.json +1 -0
  34. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/Cargo.toml +35 -0
  35. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/.cargo-checksum.json +1 -0
  36. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/Cargo.toml +22 -0
  37. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/src/lib.rs +10 -0
  38. data/ext/cargo-vendor/cranelift-control-0.103.0/.cargo-checksum.json +1 -0
  39. data/ext/cargo-vendor/cranelift-control-0.103.0/Cargo.toml +30 -0
  40. data/ext/cargo-vendor/cranelift-entity-0.103.0/.cargo-checksum.json +1 -0
  41. data/ext/cargo-vendor/cranelift-entity-0.103.0/Cargo.toml +50 -0
  42. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/lib.rs +317 -0
  43. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/primary.rs +516 -0
  44. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/unsigned.rs +71 -0
  45. data/ext/cargo-vendor/cranelift-frontend-0.103.0/.cargo-checksum.json +1 -0
  46. data/ext/cargo-vendor/cranelift-frontend-0.103.0/Cargo.toml +68 -0
  47. data/ext/cargo-vendor/cranelift-frontend-0.103.0/src/lib.rs +189 -0
  48. data/ext/cargo-vendor/cranelift-isle-0.103.0/.cargo-checksum.json +1 -0
  49. data/ext/cargo-vendor/cranelift-isle-0.103.0/Cargo.toml +46 -0
  50. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_constructor_main.rs +88 -0
  51. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_extractor_main.rs +63 -0
  52. data/ext/cargo-vendor/cranelift-isle-0.103.0/src/codegen.rs +886 -0
  53. data/ext/cargo-vendor/cranelift-native-0.103.0/.cargo-checksum.json +1 -0
  54. data/ext/cargo-vendor/cranelift-native-0.103.0/Cargo.toml +43 -0
  55. data/ext/cargo-vendor/cranelift-native-0.103.0/src/lib.rs +184 -0
  56. data/ext/cargo-vendor/cranelift-wasm-0.103.0/.cargo-checksum.json +1 -0
  57. data/ext/cargo-vendor/cranelift-wasm-0.103.0/Cargo.toml +106 -0
  58. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/environ/dummy.rs +953 -0
  59. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/lib.rs +62 -0
  60. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/translation_utils.rs +89 -0
  61. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/.cargo-checksum.json +1 -0
  62. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/Cargo.toml +102 -0
  63. data/ext/cargo-vendor/wasi-common-16.0.0/.cargo-checksum.json +1 -0
  64. data/ext/cargo-vendor/wasi-common-16.0.0/Cargo.toml +131 -0
  65. data/ext/cargo-vendor/wasi-common-16.0.0/src/lib.rs +76 -0
  66. data/ext/cargo-vendor/wasi-common-16.0.0/src/snapshots/preview_1.rs +1492 -0
  67. data/ext/cargo-vendor/wasmtime-16.0.0/.cargo-checksum.json +1 -0
  68. data/ext/cargo-vendor/wasmtime-16.0.0/Cargo.toml +211 -0
  69. data/ext/cargo-vendor/wasmtime-16.0.0/src/compiler.rs +682 -0
  70. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/component.rs +505 -0
  71. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/func/typed.rs +2400 -0
  72. data/ext/cargo-vendor/wasmtime-16.0.0/src/config.rs +2422 -0
  73. data/ext/cargo-vendor/wasmtime-16.0.0/src/func.rs +2391 -0
  74. data/ext/cargo-vendor/wasmtime-16.0.0/src/lib.rs +520 -0
  75. data/ext/cargo-vendor/wasmtime-16.0.0/src/memory.rs +998 -0
  76. data/ext/cargo-vendor/wasmtime-16.0.0/src/module.rs +1370 -0
  77. data/ext/cargo-vendor/wasmtime-16.0.0/src/stack.rs +73 -0
  78. data/ext/cargo-vendor/wasmtime-16.0.0/src/v128.rs +122 -0
  79. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/.cargo-checksum.json +1 -0
  80. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/Cargo.toml +22 -0
  81. data/ext/cargo-vendor/wasmtime-cache-16.0.0/.cargo-checksum.json +1 -0
  82. data/ext/cargo-vendor/wasmtime-cache-16.0.0/Cargo.toml +81 -0
  83. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/lib.rs +235 -0
  84. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/worker.rs +890 -0
  85. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/Cargo.toml +67 -0
  87. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/.cargo-checksum.json +1 -0
  88. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/Cargo.toml +25 -0
  89. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/.cargo-checksum.json +1 -0
  90. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/Cargo.toml +112 -0
  91. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler/component.rs +959 -0
  92. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler.rs +1317 -0
  93. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/expression.rs +1252 -0
  94. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/simulate.rs +410 -0
  95. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug.rs +18 -0
  96. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/func_environ.rs +2750 -0
  97. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/.cargo-checksum.json +1 -0
  98. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/Cargo.toml +71 -0
  99. data/ext/cargo-vendor/wasmtime-environ-16.0.0/.cargo-checksum.json +1 -0
  100. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.lock +660 -0
  101. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.toml +125 -0
  102. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/compilation.rs +402 -0
  103. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/compiler.rs +47 -0
  104. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/translate.rs +951 -0
  105. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/types.rs +1876 -0
  106. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/lib.rs +59 -0
  107. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module.rs +1075 -0
  108. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_environ.rs +892 -0
  109. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_types.rs +120 -0
  110. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/scopevec.rs +78 -0
  111. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/.cargo-checksum.json +1 -0
  112. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/Cargo.toml +63 -0
  113. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/lib.rs +328 -0
  114. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/unix.rs +265 -0
  115. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/windows.c +9 -0
  116. data/ext/cargo-vendor/wasmtime-jit-16.0.0/.cargo-checksum.json +1 -0
  117. data/ext/cargo-vendor/wasmtime-jit-16.0.0/Cargo.toml +125 -0
  118. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/code_memory.rs +319 -0
  119. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/instantiate.rs +772 -0
  120. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/lib.rs +21 -0
  121. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/.cargo-checksum.json +1 -0
  122. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/Cargo.toml +67 -0
  123. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/.cargo-checksum.json +1 -0
  124. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/Cargo.toml +46 -0
  125. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/.cargo-checksum.json +1 -0
  126. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/Cargo.toml +139 -0
  127. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/build.rs +28 -0
  128. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/proptest-regressions/instance/allocator/pooling/memory_pool.txt +9 -0
  129. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/aarch64.rs +120 -0
  130. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/mod.rs +32 -0
  131. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/riscv64.rs +88 -0
  132. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/s390x.rs +61 -0
  133. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/x86_64.rs +106 -0
  134. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/cow.rs +888 -0
  135. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/helpers.c +113 -0
  136. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/memory_pool.rs +1005 -0
  137. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/stack_pool.rs +242 -0
  138. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/table_pool.rs +227 -0
  139. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling.rs +698 -0
  140. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/lib.rs +264 -0
  141. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/libcalls.rs +776 -0
  142. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mmap.rs +214 -0
  143. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/enabled.rs +204 -0
  144. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/pkru.rs +102 -0
  145. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/mod.rs +10 -0
  146. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/traphandlers.rs +42 -0
  147. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/unwind.rs +17 -0
  148. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/vm.rs +63 -0
  149. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/mod.rs +30 -0
  150. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/machports.rs +487 -0
  151. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/macos_traphandlers.rs +28 -0
  152. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/mod.rs +21 -0
  153. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/signals.rs +402 -0
  154. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/unwind.rs +91 -0
  155. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/vm.rs +208 -0
  156. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/mod.rs +6 -0
  157. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/traphandlers.rs +105 -0
  158. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/unwind.rs +46 -0
  159. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/vm.rs +79 -0
  160. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers/backtrace.rs +265 -0
  161. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers.rs +733 -0
  162. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/vmcontext.rs +1197 -0
  163. data/ext/cargo-vendor/wasmtime-types-16.0.0/.cargo-checksum.json +1 -0
  164. data/ext/cargo-vendor/wasmtime-types-16.0.0/Cargo.toml +36 -0
  165. data/ext/cargo-vendor/wasmtime-types-16.0.0/src/lib.rs +504 -0
  166. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/.cargo-checksum.json +1 -0
  167. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/Cargo.toml +32 -0
  168. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/.cargo-checksum.json +1 -0
  169. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/Cargo.toml +261 -0
  170. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/lib.rs +137 -0
  171. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/io.rs +368 -0
  172. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/network.rs +570 -0
  173. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/tcp.rs +632 -0
  174. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/udp.rs +550 -0
  175. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/mod.rs +328 -0
  176. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview0.rs +870 -0
  177. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview1.rs +2348 -0
  178. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stdio.rs +259 -0
  179. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stream.rs +182 -0
  180. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/table.rs +337 -0
  181. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/api.rs +218 -0
  182. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/async_.rs +360 -0
  183. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/main.rs +113 -0
  184. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/preview1.rs +239 -0
  185. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/sync.rs +299 -0
  186. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/process_stdin.rs +165 -0
  187. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/command-extended.wit +6 -0
  188. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/command.wit +7 -0
  189. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/imports.wit +20 -0
  190. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/proxy.wit +32 -0
  191. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/types.wit +570 -0
  192. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/test.wit +22 -0
  193. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/typenames.witx +746 -0
  194. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/wasi_unstable.witx +513 -0
  195. data/ext/cargo-vendor/wasmtime-winch-16.0.0/.cargo-checksum.json +1 -0
  196. data/ext/cargo-vendor/wasmtime-winch-16.0.0/Cargo.toml +77 -0
  197. data/ext/cargo-vendor/wasmtime-winch-16.0.0/src/compiler.rs +243 -0
  198. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/.cargo-checksum.json +1 -0
  199. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/Cargo.toml +41 -0
  200. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/.cargo-checksum.json +1 -0
  201. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/Cargo.toml +29 -0
  202. data/ext/cargo-vendor/wiggle-16.0.0/.cargo-checksum.json +1 -0
  203. data/ext/cargo-vendor/wiggle-16.0.0/Cargo.toml +115 -0
  204. data/ext/cargo-vendor/wiggle-16.0.0/src/lib.rs +1198 -0
  205. data/ext/cargo-vendor/wiggle-generate-16.0.0/.cargo-checksum.json +1 -0
  206. data/ext/cargo-vendor/wiggle-generate-16.0.0/Cargo.toml +65 -0
  207. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/handle.rs +84 -0
  208. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/record.rs +132 -0
  209. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/variant.rs +191 -0
  210. data/ext/cargo-vendor/wiggle-macro-16.0.0/.cargo-checksum.json +1 -0
  211. data/ext/cargo-vendor/wiggle-macro-16.0.0/Cargo.toml +55 -0
  212. data/ext/cargo-vendor/winch-codegen-0.14.0/.cargo-checksum.json +1 -0
  213. data/ext/cargo-vendor/winch-codegen-0.14.0/Cargo.toml +76 -0
  214. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/local.rs +81 -0
  215. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/mod.rs +614 -0
  216. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/call.rs +345 -0
  217. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/context.rs +545 -0
  218. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/control.rs +497 -0
  219. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/env.rs +251 -0
  220. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/mod.rs +428 -0
  221. data/ext/cargo-vendor/winch-codegen-0.14.0/src/frame/mod.rs +221 -0
  222. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/abi.rs +313 -0
  223. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/masm.rs +444 -0
  224. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/mod.rs +137 -0
  225. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/mod.rs +225 -0
  226. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/abi.rs +524 -0
  227. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/asm.rs +1117 -0
  228. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/masm.rs +994 -0
  229. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/mod.rs +172 -0
  230. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/regs.rs +247 -0
  231. data/ext/cargo-vendor/winch-codegen-0.14.0/src/masm.rs +679 -0
  232. data/ext/cargo-vendor/winch-codegen-0.14.0/src/stack.rs +436 -0
  233. data/ext/cargo-vendor/winch-codegen-0.14.0/src/trampoline.rs +734 -0
  234. data/ext/cargo-vendor/winch-codegen-0.14.0/src/visitor.rs +1383 -0
  235. data/lib/wasmtime/version.rb +1 -1
  236. metadata +903 -977
  237. data/ext/cargo-vendor/cranelift-bforest-0.102.1/.cargo-checksum.json +0 -1
  238. data/ext/cargo-vendor/cranelift-bforest-0.102.1/Cargo.toml +0 -31
  239. data/ext/cargo-vendor/cranelift-bforest-0.102.1/src/lib.rs +0 -184
  240. data/ext/cargo-vendor/cranelift-codegen-0.102.1/.cargo-checksum.json +0 -1
  241. data/ext/cargo-vendor/cranelift-codegen-0.102.1/Cargo.toml +0 -164
  242. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/binemit/mod.rs +0 -171
  243. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/cost.rs +0 -91
  244. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/elaborate.rs +0 -731
  245. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph.rs +0 -678
  246. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/dfg.rs +0 -1730
  247. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/pcc.rs +0 -1682
  248. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/aarch64/lower/isle.rs +0 -875
  249. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst/mod.rs +0 -2041
  250. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst.isle +0 -2909
  251. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/lower.isle +0 -2860
  252. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/s390x/lower/isle.rs +0 -1029
  253. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/lower/isle.rs +0 -1070
  254. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/pcc.rs +0 -884
  255. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isle_prelude.rs +0 -972
  256. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/lib.rs +0 -108
  257. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/machinst/isle.rs +0 -897
  258. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/arithmetic.isle +0 -128
  259. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/cprop.isle +0 -210
  260. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/icmp.isle +0 -177
  261. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/selects.isle +0 -59
  262. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts.rs +0 -138
  263. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/prelude.isle +0 -646
  264. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/timing.rs +0 -271
  265. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/unionfind.rs +0 -74
  266. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/.cargo-checksum.json +0 -1
  267. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/Cargo.toml +0 -26
  268. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/.cargo-checksum.json +0 -1
  269. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/Cargo.toml +0 -22
  270. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/src/lib.rs +0 -12
  271. data/ext/cargo-vendor/cranelift-control-0.102.1/.cargo-checksum.json +0 -1
  272. data/ext/cargo-vendor/cranelift-control-0.102.1/Cargo.toml +0 -30
  273. data/ext/cargo-vendor/cranelift-entity-0.102.1/.cargo-checksum.json +0 -1
  274. data/ext/cargo-vendor/cranelift-entity-0.102.1/Cargo.toml +0 -41
  275. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/lib.rs +0 -316
  276. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/primary.rs +0 -456
  277. data/ext/cargo-vendor/cranelift-frontend-0.102.1/.cargo-checksum.json +0 -1
  278. data/ext/cargo-vendor/cranelift-frontend-0.102.1/Cargo.toml +0 -59
  279. data/ext/cargo-vendor/cranelift-frontend-0.102.1/src/lib.rs +0 -191
  280. data/ext/cargo-vendor/cranelift-isle-0.102.1/.cargo-checksum.json +0 -1
  281. data/ext/cargo-vendor/cranelift-isle-0.102.1/Cargo.toml +0 -37
  282. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_constructor_main.rs +0 -71
  283. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_extractor_main.rs +0 -50
  284. data/ext/cargo-vendor/cranelift-isle-0.102.1/src/codegen.rs +0 -763
  285. data/ext/cargo-vendor/cranelift-native-0.102.1/.cargo-checksum.json +0 -1
  286. data/ext/cargo-vendor/cranelift-native-0.102.1/Cargo.toml +0 -43
  287. data/ext/cargo-vendor/cranelift-native-0.102.1/src/lib.rs +0 -190
  288. data/ext/cargo-vendor/cranelift-wasm-0.102.1/.cargo-checksum.json +0 -1
  289. data/ext/cargo-vendor/cranelift-wasm-0.102.1/Cargo.toml +0 -97
  290. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/environ/dummy.rs +0 -953
  291. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/lib.rs +0 -64
  292. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/translation_utils.rs +0 -97
  293. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/.cargo-checksum.json +0 -1
  294. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/Cargo.toml +0 -93
  295. data/ext/cargo-vendor/wasi-common-15.0.1/.cargo-checksum.json +0 -1
  296. data/ext/cargo-vendor/wasi-common-15.0.1/Cargo.toml +0 -122
  297. data/ext/cargo-vendor/wasi-common-15.0.1/src/lib.rs +0 -73
  298. data/ext/cargo-vendor/wasi-common-15.0.1/src/snapshots/preview_1.rs +0 -1490
  299. data/ext/cargo-vendor/wasm-encoder-0.36.2/.cargo-checksum.json +0 -1
  300. data/ext/cargo-vendor/wasm-encoder-0.36.2/Cargo.toml +0 -37
  301. data/ext/cargo-vendor/wasm-encoder-0.36.2/README.md +0 -80
  302. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/aliases.rs +0 -160
  303. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/builder.rs +0 -455
  304. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/canonicals.rs +0 -159
  305. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/components.rs +0 -29
  306. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/exports.rs +0 -124
  307. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/imports.rs +0 -175
  308. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/instances.rs +0 -200
  309. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/modules.rs +0 -29
  310. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/names.rs +0 -149
  311. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/start.rs +0 -52
  312. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/types.rs +0 -771
  313. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component.rs +0 -168
  314. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/code.rs +0 -2989
  315. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/custom.rs +0 -73
  316. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/data.rs +0 -185
  317. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/dump.rs +0 -627
  318. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/elements.rs +0 -220
  319. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/exports.rs +0 -98
  320. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/functions.rs +0 -63
  321. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/globals.rs +0 -100
  322. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/imports.rs +0 -155
  323. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/linking.rs +0 -263
  324. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/memories.rs +0 -111
  325. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/names.rs +0 -265
  326. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/producers.rs +0 -180
  327. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/start.rs +0 -39
  328. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tables.rs +0 -115
  329. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tags.rs +0 -104
  330. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/types.rs +0 -584
  331. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core.rs +0 -168
  332. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/lib.rs +0 -215
  333. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/raw.rs +0 -30
  334. data/ext/cargo-vendor/wasmparser-0.116.1/.cargo-checksum.json +0 -1
  335. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.lock +0 -674
  336. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.toml +0 -60
  337. data/ext/cargo-vendor/wasmparser-0.116.1/README.md +0 -36
  338. data/ext/cargo-vendor/wasmparser-0.116.1/benches/benchmark.rs +0 -370
  339. data/ext/cargo-vendor/wasmparser-0.116.1/examples/simple.rs +0 -37
  340. data/ext/cargo-vendor/wasmparser-0.116.1/src/binary_reader.rs +0 -1706
  341. data/ext/cargo-vendor/wasmparser-0.116.1/src/define_types.rs +0 -782
  342. data/ext/cargo-vendor/wasmparser-0.116.1/src/lib.rs +0 -729
  343. data/ext/cargo-vendor/wasmparser-0.116.1/src/limits.rs +0 -58
  344. data/ext/cargo-vendor/wasmparser-0.116.1/src/parser.rs +0 -1612
  345. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/aliases.rs +0 -119
  346. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/canonicals.rs +0 -120
  347. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/exports.rs +0 -135
  348. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/imports.rs +0 -129
  349. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/instances.rs +0 -163
  350. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/names.rs +0 -102
  351. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/start.rs +0 -30
  352. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/types.rs +0 -549
  353. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component.rs +0 -17
  354. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/code.rs +0 -146
  355. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/coredumps.rs +0 -243
  356. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/custom.rs +0 -63
  357. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/data.rs +0 -96
  358. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/dylink0.rs +0 -132
  359. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/elements.rs +0 -152
  360. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/exports.rs +0 -65
  361. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/functions.rs +0 -17
  362. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/globals.rs +0 -49
  363. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/imports.rs +0 -76
  364. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/init.rs +0 -51
  365. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/memories.rs +0 -56
  366. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/names.rs +0 -153
  367. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/operators.rs +0 -354
  368. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/producers.rs +0 -83
  369. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tables.rs +0 -87
  370. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tags.rs +0 -32
  371. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/types.rs +0 -544
  372. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core.rs +0 -37
  373. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers.rs +0 -316
  374. data/ext/cargo-vendor/wasmparser-0.116.1/src/resources.rs +0 -398
  375. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/component.rs +0 -3203
  376. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/core.rs +0 -1341
  377. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/func.rs +0 -348
  378. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/names.rs +0 -859
  379. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/operators.rs +0 -3466
  380. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/types.rs +0 -4011
  381. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator.rs +0 -1603
  382. data/ext/cargo-vendor/wasmparser-0.116.1/tests/big-module.rs +0 -33
  383. data/ext/cargo-vendor/wasmtime-15.0.1/.cargo-checksum.json +0 -1
  384. data/ext/cargo-vendor/wasmtime-15.0.1/Cargo.toml +0 -202
  385. data/ext/cargo-vendor/wasmtime-15.0.1/src/compiler.rs +0 -682
  386. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/component.rs +0 -505
  387. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/func/typed.rs +0 -2398
  388. data/ext/cargo-vendor/wasmtime-15.0.1/src/config.rs +0 -2422
  389. data/ext/cargo-vendor/wasmtime-15.0.1/src/func.rs +0 -2428
  390. data/ext/cargo-vendor/wasmtime-15.0.1/src/lib.rs +0 -518
  391. data/ext/cargo-vendor/wasmtime-15.0.1/src/memory.rs +0 -996
  392. data/ext/cargo-vendor/wasmtime-15.0.1/src/module.rs +0 -1370
  393. data/ext/cargo-vendor/wasmtime-15.0.1/src/stack.rs +0 -73
  394. data/ext/cargo-vendor/wasmtime-15.0.1/src/v128.rs +0 -151
  395. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/.cargo-checksum.json +0 -1
  396. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/Cargo.toml +0 -22
  397. data/ext/cargo-vendor/wasmtime-cache-15.0.1/.cargo-checksum.json +0 -1
  398. data/ext/cargo-vendor/wasmtime-cache-15.0.1/Cargo.toml +0 -72
  399. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/lib.rs +0 -238
  400. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/worker.rs +0 -894
  401. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/.cargo-checksum.json +0 -1
  402. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/Cargo.toml +0 -58
  403. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/.cargo-checksum.json +0 -1
  404. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/Cargo.toml +0 -25
  405. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/.cargo-checksum.json +0 -1
  406. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/Cargo.toml +0 -103
  407. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler/component.rs +0 -959
  408. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler.rs +0 -1317
  409. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/expression.rs +0 -1250
  410. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/simulate.rs +0 -410
  411. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug.rs +0 -18
  412. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/func_environ.rs +0 -2746
  413. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/.cargo-checksum.json +0 -1
  414. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/Cargo.toml +0 -62
  415. data/ext/cargo-vendor/wasmtime-environ-15.0.1/.cargo-checksum.json +0 -1
  416. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.lock +0 -677
  417. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.toml +0 -116
  418. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/compilation.rs +0 -402
  419. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/compiler.rs +0 -47
  420. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/translate.rs +0 -951
  421. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/types.rs +0 -1870
  422. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/lib.rs +0 -59
  423. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module.rs +0 -1083
  424. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_environ.rs +0 -876
  425. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_types.rs +0 -78
  426. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/scopevec.rs +0 -57
  427. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/.cargo-checksum.json +0 -1
  428. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/Cargo.toml +0 -54
  429. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/lib.rs +0 -327
  430. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/unix.rs +0 -265
  431. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/windows.c +0 -9
  432. data/ext/cargo-vendor/wasmtime-jit-15.0.1/.cargo-checksum.json +0 -1
  433. data/ext/cargo-vendor/wasmtime-jit-15.0.1/Cargo.toml +0 -115
  434. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/code_memory.rs +0 -321
  435. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/instantiate.rs +0 -766
  436. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/lib.rs +0 -22
  437. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/miri.rs +0 -15
  438. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/systemv.rs +0 -90
  439. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/winx64.rs +0 -44
  440. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind.rs +0 -14
  441. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/.cargo-checksum.json +0 -1
  442. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/Cargo.toml +0 -58
  443. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/.cargo-checksum.json +0 -1
  444. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/Cargo.toml +0 -37
  445. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/.cargo-checksum.json +0 -1
  446. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/Cargo.toml +0 -126
  447. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/build.rs +0 -19
  448. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/proptest-regressions/instance/allocator/pooling/memory_pool.txt +0 -8
  449. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/cow.rs +0 -1060
  450. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/helpers.c +0 -108
  451. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/memory_pool.rs +0 -999
  452. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/stack_pool.rs +0 -242
  453. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/table_pool.rs +0 -225
  454. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/unix.rs +0 -56
  455. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/windows.rs +0 -38
  456. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling.rs +0 -708
  457. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/lib.rs +0 -279
  458. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/libcalls.rs +0 -775
  459. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mmap.rs +0 -226
  460. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/enabled.rs +0 -201
  461. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/pkru.rs +0 -93
  462. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/aarch64.rs +0 -42
  463. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/riscv64.rs +0 -45
  464. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/s390x.rs +0 -25
  465. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/x86_64.rs +0 -64
  466. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines.rs +0 -19
  467. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/aarch64.rs +0 -55
  468. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/riscv64.rs +0 -18
  469. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/s390x.rs +0 -22
  470. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/x86_64.rs +0 -20
  471. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace.rs +0 -291
  472. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/macos.rs +0 -492
  473. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/unix.rs +0 -402
  474. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/windows.rs +0 -89
  475. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers.rs +0 -815
  476. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/vmcontext.rs +0 -1197
  477. data/ext/cargo-vendor/wasmtime-types-15.0.1/.cargo-checksum.json +0 -1
  478. data/ext/cargo-vendor/wasmtime-types-15.0.1/Cargo.toml +0 -36
  479. data/ext/cargo-vendor/wasmtime-types-15.0.1/src/lib.rs +0 -504
  480. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/.cargo-checksum.json +0 -1
  481. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/Cargo.toml +0 -32
  482. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/.cargo-checksum.json +0 -1
  483. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/Cargo.toml +0 -248
  484. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/lib.rs +0 -135
  485. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/io.rs +0 -368
  486. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/network.rs +0 -515
  487. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/tcp.rs +0 -630
  488. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/udp.rs +0 -543
  489. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/mod.rs +0 -326
  490. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/preview1.rs +0 -2342
  491. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stdio.rs +0 -450
  492. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stream.rs +0 -182
  493. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/table.rs +0 -258
  494. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/command-extended.wit +0 -6
  495. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/command.wit +0 -7
  496. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/reactor.wit +0 -31
  497. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/proxy.wit +0 -33
  498. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/types.wit +0 -559
  499. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/test.wit +0 -22
  500. data/ext/cargo-vendor/wasmtime-winch-15.0.1/.cargo-checksum.json +0 -1
  501. data/ext/cargo-vendor/wasmtime-winch-15.0.1/Cargo.toml +0 -68
  502. data/ext/cargo-vendor/wasmtime-winch-15.0.1/src/compiler.rs +0 -242
  503. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/.cargo-checksum.json +0 -1
  504. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/Cargo.toml +0 -32
  505. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/.cargo-checksum.json +0 -1
  506. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/Cargo.toml +0 -22
  507. data/ext/cargo-vendor/wiggle-15.0.1/.cargo-checksum.json +0 -1
  508. data/ext/cargo-vendor/wiggle-15.0.1/Cargo.toml +0 -106
  509. data/ext/cargo-vendor/wiggle-15.0.1/src/lib.rs +0 -1198
  510. data/ext/cargo-vendor/wiggle-generate-15.0.1/.cargo-checksum.json +0 -1
  511. data/ext/cargo-vendor/wiggle-generate-15.0.1/Cargo.toml +0 -58
  512. data/ext/cargo-vendor/wiggle-generate-15.0.1/LICENSE +0 -220
  513. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/handle.rs +0 -84
  514. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/record.rs +0 -132
  515. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/variant.rs +0 -191
  516. data/ext/cargo-vendor/wiggle-macro-15.0.1/.cargo-checksum.json +0 -1
  517. data/ext/cargo-vendor/wiggle-macro-15.0.1/Cargo.toml +0 -55
  518. data/ext/cargo-vendor/wiggle-macro-15.0.1/LICENSE +0 -220
  519. data/ext/cargo-vendor/winch-codegen-0.13.1/.cargo-checksum.json +0 -1
  520. data/ext/cargo-vendor/winch-codegen-0.13.1/Cargo.toml +0 -67
  521. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/local.rs +0 -70
  522. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/mod.rs +0 -304
  523. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/call.rs +0 -353
  524. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/context.rs +0 -465
  525. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/control.rs +0 -456
  526. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/env.rs +0 -181
  527. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/mod.rs +0 -436
  528. data/ext/cargo-vendor/winch-codegen-0.13.1/src/frame/mod.rs +0 -189
  529. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/abi.rs +0 -267
  530. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/masm.rs +0 -436
  531. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/mod.rs +0 -136
  532. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/mod.rs +0 -218
  533. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/abi.rs +0 -410
  534. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/asm.rs +0 -1106
  535. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/masm.rs +0 -953
  536. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/mod.rs +0 -172
  537. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/regs.rs +0 -247
  538. data/ext/cargo-vendor/winch-codegen-0.13.1/src/masm.rs +0 -592
  539. data/ext/cargo-vendor/winch-codegen-0.13.1/src/stack.rs +0 -366
  540. data/ext/cargo-vendor/winch-codegen-0.13.1/src/trampoline.rs +0 -489
  541. data/ext/cargo-vendor/winch-codegen-0.13.1/src/visitor.rs +0 -1339
  542. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/LICENSE +0 -0
  543. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/README.md +0 -0
  544. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/map.rs +0 -0
  545. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/node.rs +0 -0
  546. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/path.rs +0 -0
  547. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/pool.rs +0 -0
  548. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/set.rs +0 -0
  549. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/LICENSE +0 -0
  550. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/README.md +0 -0
  551. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/benches/x64-evex-encoding.rs +0 -0
  552. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/build.rs +0 -0
  553. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/alias_analysis.rs +0 -0
  554. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/binemit/stack_map.rs +0 -0
  555. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/bitset.rs +0 -0
  556. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cfg_printer.rs +0 -0
  557. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/constant_hash.rs +0 -0
  558. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/context.rs +0 -0
  559. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ctxhash.rs +0 -0
  560. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cursor.rs +0 -0
  561. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/data_value.rs +0 -0
  562. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dbg.rs +0 -0
  563. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dce.rs +0 -0
  564. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dominator_tree.rs +0 -0
  565. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/egraph/domtree.rs +0 -0
  566. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/flowgraph.rs +0 -0
  567. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/fx.rs +0 -0
  568. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/incremental_cache.rs +0 -0
  569. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/inst_predicates.rs +0 -0
  570. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/atomic_rmw_op.rs +0 -0
  571. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/builder.rs +0 -0
  572. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/condcodes.rs +0 -0
  573. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/constant.rs +0 -0
  574. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/dynamic_type.rs +0 -0
  575. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/entities.rs +0 -0
  576. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extfunc.rs +0 -0
  577. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extname.rs +0 -0
  578. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/function.rs +0 -0
  579. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/globalvalue.rs +0 -0
  580. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/immediates.rs +0 -0
  581. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/instructions.rs +0 -0
  582. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/jumptable.rs +0 -0
  583. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/known_symbol.rs +0 -0
  584. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/layout.rs +0 -0
  585. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/libcall.rs +0 -0
  586. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memflags.rs +0 -0
  587. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memtype.rs +0 -0
  588. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/mod.rs +0 -0
  589. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/progpoint.rs +0 -0
  590. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/sourceloc.rs +0 -0
  591. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/stackslot.rs +0 -0
  592. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/table.rs +0 -0
  593. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/trapcode.rs +0 -0
  594. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/types.rs +0 -0
  595. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/abi.rs +0 -0
  596. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/args.rs +0 -0
  597. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit.rs +0 -0
  598. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  599. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/imms.rs +0 -0
  600. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/mod.rs +0 -0
  601. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/regs.rs +0 -0
  602. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  603. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  604. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst.isle +0 -0
  605. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst_neon.isle +0 -0
  606. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  607. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.isle +0 -0
  608. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.rs +0 -0
  609. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  610. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/mod.rs +0 -0
  611. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/pcc.rs +0 -0
  612. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/settings.rs +0 -0
  613. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/call_conv.rs +0 -0
  614. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/mod.rs +0 -0
  615. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/abi.rs +0 -0
  616. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/args.rs +0 -0
  617. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit.rs +0 -0
  618. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  619. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/encode.rs +0 -0
  620. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/imms.rs +0 -0
  621. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/regs.rs +0 -0
  622. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  623. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  624. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/vector.rs +0 -0
  625. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst_vector.isle +0 -0
  626. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  627. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle.rs +0 -0
  628. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower.rs +0 -0
  629. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/mod.rs +0 -0
  630. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/settings.rs +0 -0
  631. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/abi.rs +0 -0
  632. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/args.rs +0 -0
  633. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit.rs +0 -0
  634. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit_tests.rs +0 -0
  635. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/imms.rs +0 -0
  636. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/mod.rs +0 -0
  637. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/regs.rs +0 -0
  638. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  639. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind.rs +0 -0
  640. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst.isle +0 -0
  641. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  642. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.isle +0 -0
  643. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.rs +0 -0
  644. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/mod.rs +0 -0
  645. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/settings.rs +0 -0
  646. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/systemv.rs +0 -0
  647. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/winx64.rs +0 -0
  648. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind.rs +0 -0
  649. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/abi.rs +0 -0
  650. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/evex.rs +0 -0
  651. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/mod.rs +0 -0
  652. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/rex.rs +0 -0
  653. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/vex.rs +0 -0
  654. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/args.rs +0 -0
  655. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit.rs +0 -0
  656. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_state.rs +0 -0
  657. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_tests.rs +0 -0
  658. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/mod.rs +0 -0
  659. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/regs.rs +0 -0
  660. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  661. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  662. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind.rs +0 -0
  663. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst.isle +0 -0
  664. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  665. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.isle +0 -0
  666. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.rs +0 -0
  667. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/mod.rs +0 -0
  668. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/settings.rs +0 -0
  669. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/iterators.rs +0 -0
  670. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/globalvalue.rs +0 -0
  671. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/mod.rs +0 -0
  672. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/table.rs +0 -0
  673. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/loop_analysis.rs +0 -0
  674. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/abi.rs +0 -0
  675. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/blockorder.rs +0 -0
  676. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/buffer.rs +0 -0
  677. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/compile.rs +0 -0
  678. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/helpers.rs +0 -0
  679. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/inst_common.rs +0 -0
  680. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/lower.rs +0 -0
  681. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/mod.rs +0 -0
  682. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/pcc.rs +0 -0
  683. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/reg.rs +0 -0
  684. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/valueregs.rs +0 -0
  685. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/vcode.rs +0 -0
  686. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/nan_canonicalization.rs +0 -0
  687. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/README.md +0 -0
  688. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/bitops.isle +0 -0
  689. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/extends.isle +0 -0
  690. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/generated_code.rs +0 -0
  691. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/remat.isle +0 -0
  692. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/shifts.isle +0 -0
  693. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/vector.isle +0 -0
  694. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_lower.isle +0 -0
  695. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_opt.isle +0 -0
  696. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/print_errors.rs +0 -0
  697. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/remove_constant_phis.rs +0 -0
  698. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/result.rs +0 -0
  699. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/scoped_hash_map.rs +0 -0
  700. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/settings.rs +0 -0
  701. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/souper_harvest.rs +0 -0
  702. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/unreachable_code.rs +0 -0
  703. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/value_label.rs +0 -0
  704. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/verifier/mod.rs +0 -0
  705. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/write.rs +0 -0
  706. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/LICENSE +0 -0
  707. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/README.md +0 -0
  708. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/formats.rs +0 -0
  709. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/instructions.rs +0 -0
  710. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/isa.rs +0 -0
  711. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/mod.rs +0 -0
  712. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/operands.rs +0 -0
  713. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/settings.rs +0 -0
  714. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/types.rs +0 -0
  715. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/typevar.rs +0 -0
  716. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/constant_hash.rs +0 -0
  717. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/error.rs +0 -0
  718. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_inst.rs +0 -0
  719. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_settings.rs +0 -0
  720. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_types.rs +0 -0
  721. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/arm64.rs +0 -0
  722. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/mod.rs +0 -0
  723. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/riscv64.rs +0 -0
  724. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/s390x.rs +0 -0
  725. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/x86.rs +0 -0
  726. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/lib.rs +0 -0
  727. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/entities.rs +0 -0
  728. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/formats.rs +0 -0
  729. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/immediates.rs +0 -0
  730. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/instructions.rs +0 -0
  731. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/mod.rs +0 -0
  732. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/settings.rs +0 -0
  733. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/types.rs +0 -0
  734. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/srcgen.rs +0 -0
  735. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/unique_table.rs +0 -0
  736. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/LICENSE +0 -0
  737. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/README.md +0 -0
  738. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constant_hash.rs +0 -0
  739. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constants.rs +0 -0
  740. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/LICENSE +0 -0
  741. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/README.md +0 -0
  742. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/chaos.rs +0 -0
  743. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/lib.rs +0 -0
  744. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/zero_sized.rs +0 -0
  745. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/LICENSE +0 -0
  746. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/README.md +0 -0
  747. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/boxed_slice.rs +0 -0
  748. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/iter.rs +0 -0
  749. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/keys.rs +0 -0
  750. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/list.rs +0 -0
  751. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/map.rs +0 -0
  752. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/packed_option.rs +0 -0
  753. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/set.rs +0 -0
  754. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/sparse.rs +0 -0
  755. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/LICENSE +0 -0
  756. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/README.md +0 -0
  757. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/frontend.rs +0 -0
  758. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/ssa.rs +0 -0
  759. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/switch.rs +0 -0
  760. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/variable.rs +0 -0
  761. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/README.md +0 -0
  762. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/build.rs +0 -0
  763. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bad_converters.isle +0 -0
  764. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  765. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  766. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/error1.isle +0 -0
  767. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/extra_parens.isle +0 -0
  768. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_expression.isle +0 -0
  769. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_rhs.isle +0 -0
  770. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  771. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_prio.isle +0 -0
  772. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows.isle +0 -0
  773. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows_main.rs +0 -0
  774. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets.isle +0 -0
  775. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets_main.rs +0 -0
  776. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_constructor.isle +0 -0
  777. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_extractor.isle +0 -0
  778. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test.isle +0 -0
  779. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test_main.rs +0 -0
  780. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/bound_var.isle +0 -0
  781. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  782. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions.isle +0 -0
  783. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions_extern.isle +0 -0
  784. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/let.isle +0 -0
  785. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/nodebug.isle +0 -0
  786. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  787. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test2.isle +0 -0
  788. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test3.isle +0 -0
  789. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test4.isle +0 -0
  790. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/tutorial.isle +0 -0
  791. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst.isle +0 -0
  792. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst_main.rs +0 -0
  793. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing.isle +0 -0
  794. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  795. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/ast.rs +0 -0
  796. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/compile.rs +0 -0
  797. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/error.rs +0 -0
  798. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lexer.rs +0 -0
  799. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lib.rs +0 -0
  800. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/log.rs +0 -0
  801. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/overlap.rs +0 -0
  802. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/parser.rs +0 -0
  803. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/sema.rs +0 -0
  804. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/serialize.rs +0 -0
  805. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/trie_again.rs +0 -0
  806. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/tests/run_tests.rs +0 -0
  807. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/LICENSE +0 -0
  808. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/README.md +0 -0
  809. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/src/riscv.rs +0 -0
  810. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/LICENSE +0 -0
  811. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/README.md +0 -0
  812. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator/bounds_checks.rs +0 -0
  813. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator.rs +0 -0
  814. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/mod.rs +0 -0
  815. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/spec.rs +0 -0
  816. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/func_translator.rs +0 -0
  817. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/heap.rs +0 -0
  818. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/module_translator.rs +0 -0
  819. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/sections_translator.rs +0 -0
  820. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/state.rs +0 -0
  821. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/tests/wasm_testsuite.rs +0 -0
  822. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/arith.wat +0 -0
  823. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/br_table.wat +0 -0
  824. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call-simd.wat +0 -0
  825. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call.wat +0 -0
  826. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fannkuch.wat +0 -0
  827. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fasta.wat +0 -0
  828. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_ifs.wat +0 -0
  829. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_primes.wat +0 -0
  830. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fac-multi-value.wat +0 -0
  831. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fibonacci.wat +0 -0
  832. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/globals.wat +0 -0
  833. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall-simd.wat +0 -0
  834. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall.wat +0 -0
  835. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-0.wat +0 -0
  836. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-1.wat +0 -0
  837. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-2.wat +0 -0
  838. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-3.wat +0 -0
  839. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-4.wat +0 -0
  840. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-5.wat +0 -0
  841. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-6.wat +0 -0
  842. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params-2.wat +0 -0
  843. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params.wat +0 -0
  844. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  845. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/memory.wat +0 -0
  846. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-0.wat +0 -0
  847. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-1.wat +0 -0
  848. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-10.wat +0 -0
  849. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-11.wat +0 -0
  850. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-12.wat +0 -0
  851. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-13.wat +0 -0
  852. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-14.wat +0 -0
  853. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-15.wat +0 -0
  854. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-16.wat +0 -0
  855. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-17.wat +0 -0
  856. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-2.wat +0 -0
  857. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-3.wat +0 -0
  858. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-4.wat +0 -0
  859. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-5.wat +0 -0
  860. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-6.wat +0 -0
  861. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-7.wat +0 -0
  862. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-8.wat +0 -0
  863. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-9.wat +0 -0
  864. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/nullref.wat +0 -0
  865. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/passive-data.wat +0 -0
  866. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2303.wat +0 -0
  867. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2559.wat +0 -0
  868. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/ref-func-0.wat +0 -0
  869. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/rust_fannkuch.wat +0 -0
  870. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/select.wat +0 -0
  871. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd-store.wat +0 -0
  872. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd.wat +0 -0
  873. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/table-copy.wat +0 -0
  874. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/unreachable_code.wat +0 -0
  875. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/LICENSE +0 -0
  876. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/README.md +0 -0
  877. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/clocks.rs +0 -0
  878. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/dir.rs +0 -0
  879. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/file.rs +0 -0
  880. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/lib.rs +0 -0
  881. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/net.rs +0 -0
  882. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/unix.rs +0 -0
  883. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/windows.rs +0 -0
  884. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched.rs +0 -0
  885. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/stdio.rs +0 -0
  886. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/LICENSE +0 -0
  887. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/README.md +0 -0
  888. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/README.md +0 -0
  889. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/docs/README.md +0 -0
  890. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/README.md +0 -0
  891. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/docs.md +0 -0
  892. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  893. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  894. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  895. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  896. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  897. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  898. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  899. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  900. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  901. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  902. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  903. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/docs.md +0 -0
  904. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  905. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  906. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.html +0 -0
  907. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.md +0 -0
  908. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  909. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  910. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposal-template/README.md +0 -0
  911. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposals/README.md +0 -0
  912. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/snapshots/README.md +0 -0
  913. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/standard/README.md +0 -0
  914. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/build.rs +0 -0
  915. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/clocks.rs +0 -0
  916. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/ctx.rs +0 -0
  917. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/dir.rs +0 -0
  918. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/error.rs +0 -0
  919. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/file.rs +0 -0
  920. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/pipe.rs +0 -0
  921. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/random.rs +0 -0
  922. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched/subscription.rs +0 -0
  923. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched.rs +0 -0
  924. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/mod.rs +0 -0
  925. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_0.rs +0 -0
  926. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_1/error.rs +0 -0
  927. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/string_array.rs +0 -0
  928. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/table.rs +0 -0
  929. /data/ext/cargo-vendor/{wasm-encoder-0.36.2 → wasmtime-16.0.0}/LICENSE +0 -0
  930. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/README.md +0 -0
  931. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/code.rs +0 -0
  932. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/host.rs +0 -0
  933. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/options.rs +0 -0
  934. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func.rs +0 -0
  935. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/instance.rs +0 -0
  936. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/linker.rs +0 -0
  937. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/matching.rs +0 -0
  938. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/mod.rs +0 -0
  939. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/resources.rs +0 -0
  940. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/storage.rs +0 -0
  941. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/store.rs +0 -0
  942. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/types.rs +0 -0
  943. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/values.rs +0 -0
  944. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/coredump.rs +0 -0
  945. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine/serialization.rs +0 -0
  946. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine.rs +0 -0
  947. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/global.rs +0 -0
  948. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/table.rs +0 -0
  949. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals.rs +0 -0
  950. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/func/typed.rs +0 -0
  951. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/instance.rs +0 -0
  952. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/limits.rs +0 -0
  953. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/linker.rs +0 -0
  954. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/module/registry.rs +0 -0
  955. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/profiling.rs +0 -0
  956. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/ref.rs +0 -0
  957. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/resources.rs +0 -0
  958. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/signatures.rs +0 -0
  959. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/context.rs +0 -0
  960. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/data.rs +0 -0
  961. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/func_refs.rs +0 -0
  962. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store.rs +0 -0
  963. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/func.rs +0 -0
  964. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/global.rs +0 -0
  965. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/memory.rs +0 -0
  966. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/table.rs +0 -0
  967. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline.rs +0 -0
  968. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trap.rs +0 -0
  969. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types/matching.rs +0 -0
  970. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types.rs +0 -0
  971. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/unix.rs +0 -0
  972. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/values.rs +0 -0
  973. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/windows.rs +0 -0
  974. /data/ext/cargo-vendor/{wasmtime-asm-macros-15.0.1 → wasmtime-asm-macros-16.0.0}/src/lib.rs +0 -0
  975. /data/ext/cargo-vendor/{wasmparser-0.116.1 → wasmtime-cache-16.0.0}/LICENSE +0 -0
  976. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/build.rs +0 -0
  977. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config/tests.rs +0 -0
  978. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config.rs +0 -0
  979. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/tests.rs +0 -0
  980. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  981. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests.rs +0 -0
  982. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/tests/cache_write_default_config.rs +0 -0
  983. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/bindgen.rs +0 -0
  984. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/component.rs +0 -0
  985. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/lib.rs +0 -0
  986. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/char.wit +0 -0
  987. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/conventions.wit +0 -0
  988. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/direct-import.wit +0 -0
  989. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/empty.wit +0 -0
  990. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/flags.wit +0 -0
  991. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/floats.wit +0 -0
  992. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/function-new.wit +0 -0
  993. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/integers.wit +0 -0
  994. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/lists.wit +0 -0
  995. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/many-arguments.wit +0 -0
  996. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multi-return.wit +0 -0
  997. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  998. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  999. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/root.wit +0 -0
  1000. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/records.wit +0 -0
  1001. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/rename.wit +0 -0
  1002. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-export.wit +0 -0
  1003. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-import.wit +0 -0
  1004. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/share-types.wit +0 -0
  1005. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-functions.wit +0 -0
  1006. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-lists.wit +0 -0
  1007. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-wasi.wit +0 -0
  1008. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/small-anonymous.wit +0 -0
  1009. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-default.wit +0 -0
  1010. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-export.wit +0 -0
  1011. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke.wit +0 -0
  1012. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/strings.wit +0 -0
  1013. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/use-paths.wit +0 -0
  1014. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/variants.wit +0 -0
  1015. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  1016. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen.rs +0 -0
  1017. /data/ext/cargo-vendor/{wasmtime-component-util-15.0.1 → wasmtime-component-util-16.0.0}/src/lib.rs +0 -0
  1018. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-cranelift-16.0.0}/LICENSE +0 -0
  1019. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/SECURITY.md +0 -0
  1020. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/builder.rs +0 -0
  1021. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/gc.rs +0 -0
  1022. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/address_transform.rs +0 -0
  1023. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/attr.rs +0 -0
  1024. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/line_program.rs +0 -0
  1025. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/mod.rs +0 -0
  1026. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1027. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/refs.rs +0 -0
  1028. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/unit.rs +0 -0
  1029. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/utils.rs +0 -0
  1030. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/write_debuginfo.rs +0 -0
  1031. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/lib.rs +0 -0
  1032. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/compiled_function.rs +0 -0
  1033. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/isa_builder.rs +0 -0
  1034. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/lib.rs +0 -0
  1035. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/obj.rs +0 -0
  1036. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-environ-16.0.0}/LICENSE +0 -0
  1037. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/examples/factc.rs +0 -0
  1038. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/address_map.rs +0 -0
  1039. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/builtin.rs +0 -0
  1040. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/dfg.rs +0 -0
  1041. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/info.rs +0 -0
  1042. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/adapt.rs +0 -0
  1043. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/inline.rs +0 -0
  1044. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/types/resources.rs +0 -0
  1045. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1046. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component.rs +0 -0
  1047. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/core_types.rs +0 -0
  1048. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/signature.rs +0 -0
  1049. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/trampoline.rs +0 -0
  1050. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/transcode.rs +0 -0
  1051. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/traps.rs +0 -0
  1052. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact.rs +0 -0
  1053. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/obj.rs +0 -0
  1054. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/ref_bits.rs +0 -0
  1055. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/stack_map.rs +0 -0
  1056. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/trap_encoding.rs +0 -0
  1057. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/tunables.rs +0 -0
  1058. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/vmoffsets.rs +0 -0
  1059. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-fiber-16.0.0}/LICENSE +0 -0
  1060. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/build.rs +0 -0
  1061. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/aarch64.rs +0 -0
  1062. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/arm.rs +0 -0
  1063. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/riscv64.rs +0 -0
  1064. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/s390x.S +0 -0
  1065. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86.rs +0 -0
  1066. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86_64.rs +0 -0
  1067. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/windows.rs +0 -0
  1068. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-jit-16.0.0}/LICENSE +0 -0
  1069. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/debug.rs +0 -0
  1070. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/demangling.rs +0 -0
  1071. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/jitdump.rs +0 -0
  1072. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/perfmap.rs +0 -0
  1073. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/vtune.rs +0 -0
  1074. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling.rs +0 -0
  1075. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/README.md +0 -0
  1076. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/gdb_jit_int.rs +0 -0
  1077. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/lib.rs +0 -0
  1078. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/perf_jitdump.rs +0 -0
  1079. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/lib.rs +0 -0
  1080. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/libc.rs +0 -0
  1081. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/miri.rs +0 -0
  1082. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/win.rs +0 -0
  1083. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-runtime-16.0.0}/LICENSE +0 -0
  1084. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/trampolines → wasmtime-runtime-16.0.0/src/arch}/s390x.S +0 -0
  1085. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/libcalls.rs +0 -0
  1086. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/resources.rs +0 -0
  1087. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component.rs +0 -0
  1088. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/debug_builtins.rs +0 -0
  1089. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/export.rs +0 -0
  1090. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/externref.rs +0 -0
  1091. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/imports.rs +0 -0
  1092. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/on_demand.rs +0 -0
  1093. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1094. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator.rs +0 -0
  1095. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance.rs +0 -0
  1096. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/memory.rs +0 -0
  1097. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mmap_vec.rs +0 -0
  1098. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/module_id.rs +0 -0
  1099. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/disabled.rs +0 -0
  1100. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/mod.rs +0 -0
  1101. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/sys.rs +0 -0
  1102. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/parking_spot.rs +0 -0
  1103. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/send_sync_ptr.rs +0 -0
  1104. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/store_box.rs +0 -0
  1105. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/miri.rs → wasmtime-runtime-16.0.0/src/sys/miri/mmap.rs} +0 -0
  1106. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/unix.rs → wasmtime-runtime-16.0.0/src/sys/unix/mmap.rs} +0 -0
  1107. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/windows.rs → wasmtime-runtime-16.0.0/src/sys/windows/mmap.rs} +0 -0
  1108. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/table.rs +0 -0
  1109. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/traphandlers/coredump.rs +0 -0
  1110. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/vmcontext/vm_host_func_context.rs +0 -0
  1111. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-types-16.0.0}/LICENSE +0 -0
  1112. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wasmtime-types-16.0.0}/src/error.rs +0 -0
  1113. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-15.0.1 → wasmtime-versioned-export-macros-16.0.0}/src/lib.rs +0 -0
  1114. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-wasi-16.0.0}/LICENSE +0 -0
  1115. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/README.md +0 -0
  1116. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/build.rs +0 -0
  1117. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks/host.rs +0 -0
  1118. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks.rs +0 -0
  1119. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/command.rs +0 -0
  1120. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ctx.rs +0 -0
  1121. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/error.rs +0 -0
  1122. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/filesystem.rs +0 -0
  1123. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/clocks.rs +0 -0
  1124. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/env.rs +0 -0
  1125. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/exit.rs +0 -0
  1126. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem/sync.rs +0 -0
  1127. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem.rs +0 -0
  1128. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/instance_network.rs +0 -0
  1129. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/mod.rs +0 -0
  1130. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/random.rs +0 -0
  1131. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/tcp_create_socket.rs +0 -0
  1132. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/udp_create_socket.rs +0 -0
  1133. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ip_name_lookup.rs +0 -0
  1134. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/network.rs +0 -0
  1135. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/pipe.rs +0 -0
  1136. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/poll.rs +0 -0
  1137. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/random.rs +0 -0
  1138. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/stdio/worker_thread_stdin.rs +0 -0
  1139. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/tcp.rs +0 -0
  1140. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/udp.rs +0 -0
  1141. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/write_stream.rs +0 -0
  1142. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/environment.wit +0 -0
  1143. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/exit.wit +0 -0
  1144. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/run.wit +0 -0
  1145. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/stdio.wit +0 -0
  1146. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/terminal.wit +0 -0
  1147. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1148. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  1149. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/world.wit +0 -0
  1150. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  1151. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/types.wit +0 -0
  1152. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/world.wit +0 -0
  1153. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/http/handler.wit +0 -0
  1154. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/error.wit +0 -0
  1155. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/poll.wit +0 -0
  1156. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/streams.wit +0 -0
  1157. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/world.wit +0 -0
  1158. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  1159. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure.wit +0 -0
  1160. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/random.wit +0 -0
  1161. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/world.wit +0 -0
  1162. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  1163. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1164. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/network.wit +0 -0
  1165. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1166. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp.wit +0 -0
  1167. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1168. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp.wit +0 -0
  1169. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/world.wit +0 -0
  1170. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/typenames.witx +0 -0
  1171. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/wasi_snapshot_preview1.witx +0 -0
  1172. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/LICENSE +0 -0
  1173. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/builder.rs +0 -0
  1174. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/lib.rs +0 -0
  1175. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/lib.rs +0 -0
  1176. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/rust.rs +0 -0
  1177. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/source.rs +0 -0
  1178. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/types.rs +0 -0
  1179. /data/ext/cargo-vendor/{wasmtime-wmemcheck-15.0.1 → wasmtime-wmemcheck-16.0.0}/src/lib.rs +0 -0
  1180. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wiggle-16.0.0}/LICENSE +0 -0
  1181. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/README.md +0 -0
  1182. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/borrow.rs +0 -0
  1183. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/error.rs +0 -0
  1184. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/guest_type.rs +0 -0
  1185. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/region.rs +0 -0
  1186. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/wasmtime.rs +0 -0
  1187. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wiggle-generate-16.0.0}/LICENSE +0 -0
  1188. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/README.md +0 -0
  1189. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/codegen_settings.rs +0 -0
  1190. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/config.rs +0 -0
  1191. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/funcs.rs +0 -0
  1192. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lib.rs +0 -0
  1193. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lifetimes.rs +0 -0
  1194. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/module_trait.rs +0 -0
  1195. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/names.rs +0 -0
  1196. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/error.rs +0 -0
  1197. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/flags.rs +0 -0
  1198. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/mod.rs +0 -0
  1199. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/wasmtime.rs +0 -0
  1200. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-macro-16.0.0}/LICENSE +0 -0
  1201. /data/ext/cargo-vendor/{wiggle-macro-15.0.1 → wiggle-macro-16.0.0}/src/lib.rs +0 -0
  1202. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/LICENSE +0 -0
  1203. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/build.rs +0 -0
  1204. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/codegen/builtin.rs +0 -0
  1205. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/address.rs +0 -0
  1206. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/asm.rs +0 -0
  1207. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/regs.rs +0 -0
  1208. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/reg.rs +0 -0
  1209. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/x64/address.rs +0 -0
  1210. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/lib.rs +0 -0
  1211. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regalloc.rs +0 -0
  1212. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regset.rs +0 -0
@@ -0,0 +1,1876 @@
1
+ use crate::component::{MAX_FLAT_PARAMS, MAX_FLAT_RESULTS};
2
+ use crate::{
3
+ EntityType, ModuleTypes, ModuleTypesBuilder, PrimaryMap, SignatureIndex, TypeConvert,
4
+ WasmHeapType, WasmType,
5
+ };
6
+ use anyhow::{bail, Result};
7
+ use cranelift_entity::EntityRef;
8
+ use indexmap::{IndexMap, IndexSet};
9
+ use serde_derive::{Deserialize, Serialize};
10
+ use std::collections::HashMap;
11
+ use std::hash::Hash;
12
+ use std::ops::Index;
13
+ use wasmparser::names::KebabString;
14
+ use wasmparser::types;
15
+ use wasmtime_component_util::{DiscriminantSize, FlagsSize};
16
+
17
+ pub use wasmtime_types::StaticModuleIndex;
18
+
19
+ mod resources;
20
+ pub use resources::ResourcesBuilder;
21
+
22
+ /// Maximum nesting depth of a type allowed in Wasmtime.
23
+ ///
24
+ /// This constant isn't chosen via any scientific means and its main purpose is
25
+ /// to enable most of Wasmtime to handle types via recursion without worrying
26
+ /// about stack overflow.
27
+ ///
28
+ /// Some more information about this can be found in #4814
29
+ const MAX_TYPE_DEPTH: u32 = 100;
30
+
31
+ macro_rules! indices {
32
+ ($(
33
+ $(#[$a:meta])*
34
+ pub struct $name:ident(u32);
35
+ )*) => ($(
36
+ $(#[$a])*
37
+ #[derive(
38
+ Copy, Clone, PartialEq, Eq, Hash, PartialOrd, Ord, Debug,
39
+ Serialize, Deserialize,
40
+ )]
41
+ #[repr(transparent)]
42
+ pub struct $name(u32);
43
+ cranelift_entity::entity_impl!($name);
44
+ )*);
45
+ }
46
+
47
+ indices! {
48
+ // ========================================================================
49
+ // These indices are used during compile time only when we're translating a
50
+ // component at this time. The actual indices are not persisted beyond the
51
+ // compile phase to when we're actually working with the component at
52
+ // runtime.
53
+
54
+ /// Index within a component's component type index space.
55
+ pub struct ComponentTypeIndex(u32);
56
+
57
+ /// Index within a component's module index space.
58
+ pub struct ModuleIndex(u32);
59
+
60
+ /// Index within a component's component index space.
61
+ pub struct ComponentIndex(u32);
62
+
63
+ /// Index within a component's module instance index space.
64
+ pub struct ModuleInstanceIndex(u32);
65
+
66
+ /// Index within a component's component instance index space.
67
+ pub struct ComponentInstanceIndex(u32);
68
+
69
+ /// Index within a component's component function index space.
70
+ pub struct ComponentFuncIndex(u32);
71
+
72
+ // ========================================================================
73
+ // These indices are used to lookup type information within a `TypeTables`
74
+ // structure. These represent generally deduplicated type information across
75
+ // an entire component and are a form of RTTI in a sense.
76
+
77
+ /// Index pointing to a component's type (exports/imports with
78
+ /// component-model types)
79
+ pub struct TypeComponentIndex(u32);
80
+
81
+ /// Index pointing to a component instance's type (exports with
82
+ /// component-model types, no imports)
83
+ pub struct TypeComponentInstanceIndex(u32);
84
+
85
+ /// Index pointing to a core wasm module's type (exports/imports with
86
+ /// core wasm types)
87
+ pub struct TypeModuleIndex(u32);
88
+
89
+ /// Index pointing to a component model function type with arguments/result
90
+ /// as interface types.
91
+ pub struct TypeFuncIndex(u32);
92
+
93
+ /// Index pointing to a record type in the component model (aka a struct).
94
+ pub struct TypeRecordIndex(u32);
95
+ /// Index pointing to a variant type in the component model (aka an enum).
96
+ pub struct TypeVariantIndex(u32);
97
+ /// Index pointing to a tuple type in the component model.
98
+ pub struct TypeTupleIndex(u32);
99
+ /// Index pointing to a flags type in the component model.
100
+ pub struct TypeFlagsIndex(u32);
101
+ /// Index pointing to an enum type in the component model.
102
+ pub struct TypeEnumIndex(u32);
103
+ /// Index pointing to an option type in the component model (aka a
104
+ /// `Option<T, E>`)
105
+ pub struct TypeOptionIndex(u32);
106
+ /// Index pointing to an result type in the component model (aka a
107
+ /// `Result<T, E>`)
108
+ pub struct TypeResultIndex(u32);
109
+ /// Index pointing to a list type in the component model.
110
+ pub struct TypeListIndex(u32);
111
+
112
+ /// Index pointing to a resource table within a component.
113
+ ///
114
+ /// This is a Wasmtime-specific type index which isn't part of the component
115
+ /// model per-se (or at least not the binary format). This index represents
116
+ /// a pointer to a table of runtime information tracking state for resources
117
+ /// within a component. Tables are generated per-resource-per-component
118
+ /// meaning that if the exact same resource is imported into 4 subcomponents
119
+ /// then that's 5 tables: one for the defining component and one for each
120
+ /// subcomponent.
121
+ ///
122
+ /// All resource-related intrinsics operate on table-local indices which
123
+ /// indicate which table the intrinsic is modifying. Each resource table has
124
+ /// an origin resource type (defined by `ResourceIndex`) along with a
125
+ /// component instance that it's recorded for.
126
+ pub struct TypeResourceTableIndex(u32);
127
+
128
+ /// Index pointing to a resource within a component.
129
+ ///
130
+ /// This index space covers all unique resource type definitions. For
131
+ /// example all unique imports come first and then all locally-defined
132
+ /// resources come next. Note that this does not count the number of runtime
133
+ /// tables required to track resources (that's `TypeResourceTableIndex`
134
+ /// instead). Instead this is a count of the number of unique
135
+ /// `(type (resource (rep ..)))` declarations within a component, plus
136
+ /// imports.
137
+ ///
138
+ /// This is then used for correlating various information such as
139
+ /// destructors, origin information, etc.
140
+ pub struct ResourceIndex(u32);
141
+
142
+ /// Index pointing to a local resource defined within a component.
143
+ ///
144
+ /// This is similar to `FooIndex` and `DefinedFooIndex` for core wasm and
145
+ /// the idea here is that this is guaranteed to be a wasm-defined resource
146
+ /// which is connected to a component instance for example.
147
+ pub struct DefinedResourceIndex(u32);
148
+
149
+ // ========================================================================
150
+ // Index types used to identify modules and components during compilation.
151
+
152
+ /// Index into a "closed over variables" list for components used to
153
+ /// implement outer aliases. For more information on this see the
154
+ /// documentation for the `LexicalScope` structure.
155
+ pub struct ModuleUpvarIndex(u32);
156
+
157
+ /// Same as `ModuleUpvarIndex` but for components.
158
+ pub struct ComponentUpvarIndex(u32);
159
+
160
+ /// Same as `StaticModuleIndex` but for components.
161
+ pub struct StaticComponentIndex(u32);
162
+
163
+ // ========================================================================
164
+ // These indices are actually used at runtime when managing a component at
165
+ // this time.
166
+
167
+ /// Index that represents a core wasm instance created at runtime.
168
+ ///
169
+ /// This is used to keep track of when instances are created and is able to
170
+ /// refer back to previously created instances for exports and such.
171
+ pub struct RuntimeInstanceIndex(u32);
172
+
173
+ /// Same as `RuntimeInstanceIndex` but tracks component instances instead.
174
+ pub struct RuntimeComponentInstanceIndex(u32);
175
+
176
+ /// Used to index imports into a `Component`
177
+ ///
178
+ /// This does not correspond to anything in the binary format for the
179
+ /// component model.
180
+ pub struct ImportIndex(u32);
181
+
182
+ /// Index that represents a leaf item imported into a component where a
183
+ /// "leaf" means "not an instance".
184
+ ///
185
+ /// This does not correspond to anything in the binary format for the
186
+ /// component model.
187
+ pub struct RuntimeImportIndex(u32);
188
+
189
+ /// Index that represents a lowered host function and is used to represent
190
+ /// host function lowerings with options and such.
191
+ ///
192
+ /// This does not correspond to anything in the binary format for the
193
+ /// component model.
194
+ pub struct LoweredIndex(u32);
195
+
196
+ /// Index representing a linear memory extracted from a wasm instance
197
+ /// which is stored in a `VMComponentContext`. This is used to deduplicate
198
+ /// references to the same linear memory where it's only stored once in a
199
+ /// `VMComponentContext`.
200
+ ///
201
+ /// This does not correspond to anything in the binary format for the
202
+ /// component model.
203
+ pub struct RuntimeMemoryIndex(u32);
204
+
205
+ /// Same as `RuntimeMemoryIndex` except for the `realloc` function.
206
+ pub struct RuntimeReallocIndex(u32);
207
+
208
+ /// Same as `RuntimeMemoryIndex` except for the `post-return` function.
209
+ pub struct RuntimePostReturnIndex(u32);
210
+
211
+ /// Index for all trampolines that are compiled in Cranelift for a
212
+ /// component.
213
+ ///
214
+ /// This is used to point to various bits of metadata within a compiled
215
+ /// component and is stored in the final compilation artifact. This does not
216
+ /// have a direct corresponance to any wasm definition.
217
+ pub struct TrampolineIndex(u32);
218
+ }
219
+
220
+ // Reexport for convenience some core-wasm indices which are also used in the
221
+ // component model, typically for when aliasing exports of core wasm modules.
222
+ pub use crate::{FuncIndex, GlobalIndex, MemoryIndex, TableIndex, TypeIndex};
223
+
224
+ /// Equivalent of `EntityIndex` but for the component model instead of core
225
+ /// wasm.
226
+ #[derive(Debug, Clone, Copy)]
227
+ #[allow(missing_docs)]
228
+ pub enum ComponentItem {
229
+ Func(ComponentFuncIndex),
230
+ Module(ModuleIndex),
231
+ Component(ComponentIndex),
232
+ ComponentInstance(ComponentInstanceIndex),
233
+ Type(types::ComponentAnyTypeId),
234
+ }
235
+
236
+ /// Runtime information about the type information contained within a component.
237
+ ///
238
+ /// One of these is created per top-level component which describes all of the
239
+ /// types contained within the top-level component itself. Each sub-component
240
+ /// will have a pointer to this value as well.
241
+ #[derive(Default, Serialize, Deserialize)]
242
+ pub struct ComponentTypes {
243
+ modules: PrimaryMap<TypeModuleIndex, TypeModule>,
244
+ components: PrimaryMap<TypeComponentIndex, TypeComponent>,
245
+ component_instances: PrimaryMap<TypeComponentInstanceIndex, TypeComponentInstance>,
246
+ functions: PrimaryMap<TypeFuncIndex, TypeFunc>,
247
+ lists: PrimaryMap<TypeListIndex, TypeList>,
248
+ records: PrimaryMap<TypeRecordIndex, TypeRecord>,
249
+ variants: PrimaryMap<TypeVariantIndex, TypeVariant>,
250
+ tuples: PrimaryMap<TypeTupleIndex, TypeTuple>,
251
+ enums: PrimaryMap<TypeEnumIndex, TypeEnum>,
252
+ flags: PrimaryMap<TypeFlagsIndex, TypeFlags>,
253
+ options: PrimaryMap<TypeOptionIndex, TypeOption>,
254
+ results: PrimaryMap<TypeResultIndex, TypeResult>,
255
+ resource_tables: PrimaryMap<TypeResourceTableIndex, TypeResourceTable>,
256
+
257
+ module_types: ModuleTypes,
258
+ }
259
+
260
+ impl ComponentTypes {
261
+ /// Returns the core wasm module types known within this component.
262
+ pub fn module_types(&self) -> &ModuleTypes {
263
+ &self.module_types
264
+ }
265
+
266
+ /// Returns the canonical ABI information about the specified type.
267
+ pub fn canonical_abi(&self, ty: &InterfaceType) -> &CanonicalAbiInfo {
268
+ match ty {
269
+ InterfaceType::U8 | InterfaceType::S8 | InterfaceType::Bool => {
270
+ &CanonicalAbiInfo::SCALAR1
271
+ }
272
+
273
+ InterfaceType::U16 | InterfaceType::S16 => &CanonicalAbiInfo::SCALAR2,
274
+
275
+ InterfaceType::U32
276
+ | InterfaceType::S32
277
+ | InterfaceType::Float32
278
+ | InterfaceType::Char
279
+ | InterfaceType::Own(_)
280
+ | InterfaceType::Borrow(_) => &CanonicalAbiInfo::SCALAR4,
281
+
282
+ InterfaceType::U64 | InterfaceType::S64 | InterfaceType::Float64 => {
283
+ &CanonicalAbiInfo::SCALAR8
284
+ }
285
+
286
+ InterfaceType::String | InterfaceType::List(_) => &CanonicalAbiInfo::POINTER_PAIR,
287
+
288
+ InterfaceType::Record(i) => &self[*i].abi,
289
+ InterfaceType::Variant(i) => &self[*i].abi,
290
+ InterfaceType::Tuple(i) => &self[*i].abi,
291
+ InterfaceType::Flags(i) => &self[*i].abi,
292
+ InterfaceType::Enum(i) => &self[*i].abi,
293
+ InterfaceType::Option(i) => &self[*i].abi,
294
+ InterfaceType::Result(i) => &self[*i].abi,
295
+ }
296
+ }
297
+ }
298
+
299
+ macro_rules! impl_index {
300
+ ($(impl Index<$ty:ident> for ComponentTypes { $output:ident => $field:ident })*) => ($(
301
+ impl std::ops::Index<$ty> for ComponentTypes {
302
+ type Output = $output;
303
+ #[inline]
304
+ fn index(&self, idx: $ty) -> &$output {
305
+ &self.$field[idx]
306
+ }
307
+ }
308
+
309
+ impl std::ops::Index<$ty> for ComponentTypesBuilder {
310
+ type Output = $output;
311
+ #[inline]
312
+ fn index(&self, idx: $ty) -> &$output {
313
+ &self.component_types[idx]
314
+ }
315
+ }
316
+ )*)
317
+ }
318
+
319
+ impl_index! {
320
+ impl Index<TypeModuleIndex> for ComponentTypes { TypeModule => modules }
321
+ impl Index<TypeComponentIndex> for ComponentTypes { TypeComponent => components }
322
+ impl Index<TypeComponentInstanceIndex> for ComponentTypes { TypeComponentInstance => component_instances }
323
+ impl Index<TypeFuncIndex> for ComponentTypes { TypeFunc => functions }
324
+ impl Index<TypeRecordIndex> for ComponentTypes { TypeRecord => records }
325
+ impl Index<TypeVariantIndex> for ComponentTypes { TypeVariant => variants }
326
+ impl Index<TypeTupleIndex> for ComponentTypes { TypeTuple => tuples }
327
+ impl Index<TypeEnumIndex> for ComponentTypes { TypeEnum => enums }
328
+ impl Index<TypeFlagsIndex> for ComponentTypes { TypeFlags => flags }
329
+ impl Index<TypeOptionIndex> for ComponentTypes { TypeOption => options }
330
+ impl Index<TypeResultIndex> for ComponentTypes { TypeResult => results }
331
+ impl Index<TypeListIndex> for ComponentTypes { TypeList => lists }
332
+ impl Index<TypeResourceTableIndex> for ComponentTypes { TypeResourceTable => resource_tables }
333
+ }
334
+
335
+ // Additionally forward anything that can index `ModuleTypes` to `ModuleTypes`
336
+ // (aka `SignatureIndex`)
337
+ impl<T> Index<T> for ComponentTypes
338
+ where
339
+ ModuleTypes: Index<T>,
340
+ {
341
+ type Output = <ModuleTypes as Index<T>>::Output;
342
+ fn index(&self, idx: T) -> &Self::Output {
343
+ self.module_types.index(idx)
344
+ }
345
+ }
346
+
347
+ impl<T> Index<T> for ComponentTypesBuilder
348
+ where
349
+ ModuleTypes: Index<T>,
350
+ {
351
+ type Output = <ModuleTypes as Index<T>>::Output;
352
+ fn index(&self, idx: T) -> &Self::Output {
353
+ self.module_types.index(idx)
354
+ }
355
+ }
356
+
357
+ /// Structured used to build a [`ComponentTypes`] during translation.
358
+ ///
359
+ /// This contains tables to intern any component types found as well as
360
+ /// managing building up core wasm [`ModuleTypes`] as well.
361
+ #[derive(Default)]
362
+ pub struct ComponentTypesBuilder {
363
+ functions: HashMap<TypeFunc, TypeFuncIndex>,
364
+ lists: HashMap<TypeList, TypeListIndex>,
365
+ records: HashMap<TypeRecord, TypeRecordIndex>,
366
+ variants: HashMap<TypeVariant, TypeVariantIndex>,
367
+ tuples: HashMap<TypeTuple, TypeTupleIndex>,
368
+ enums: HashMap<TypeEnum, TypeEnumIndex>,
369
+ flags: HashMap<TypeFlags, TypeFlagsIndex>,
370
+ options: HashMap<TypeOption, TypeOptionIndex>,
371
+ results: HashMap<TypeResult, TypeResultIndex>,
372
+
373
+ component_types: ComponentTypes,
374
+ module_types: ModuleTypesBuilder,
375
+
376
+ // Cache of what the "flat" representation of all types are which is only
377
+ // used at compile-time and not used at runtime, hence the location here
378
+ // as opposed to `ComponentTypes`.
379
+ type_info: TypeInformationCache,
380
+
381
+ resources: ResourcesBuilder,
382
+ }
383
+
384
+ macro_rules! intern_and_fill_flat_types {
385
+ ($me:ident, $name:ident, $val:ident) => {{
386
+ if let Some(idx) = $me.$name.get(&$val) {
387
+ return *idx;
388
+ }
389
+ let idx = $me.component_types.$name.push($val.clone());
390
+ let mut info = TypeInformation::new();
391
+ info.$name($me, &$val);
392
+ let idx2 = $me.type_info.$name.push(info);
393
+ assert_eq!(idx, idx2);
394
+ $me.$name.insert($val, idx);
395
+ return idx;
396
+ }};
397
+ }
398
+
399
+ impl ComponentTypesBuilder {
400
+ /// Finishes this list of component types and returns the finished
401
+ /// structure.
402
+ pub fn finish(mut self) -> ComponentTypes {
403
+ self.component_types.module_types = self.module_types.finish();
404
+ self.component_types
405
+ }
406
+
407
+ /// Smaller helper method to find a `SignatureIndex` which corresponds to
408
+ /// the `resource.drop` intrinsic in components, namely a core wasm function
409
+ /// type which takes one `i32` argument and has no results.
410
+ ///
411
+ /// This is a bit of a hack right now as ideally this find operation
412
+ /// wouldn't be needed and instead the `SignatureIndex` itself would be
413
+ /// threaded through appropriately, but that's left for a future
414
+ /// refactoring. Try not to lean too hard on this method though.
415
+ pub fn find_resource_drop_signature(&self) -> Option<SignatureIndex> {
416
+ self.module_types
417
+ .wasm_signatures()
418
+ .find(|(_, sig)| {
419
+ sig.params().len() == 1
420
+ && sig.returns().len() == 0
421
+ && sig.params()[0] == WasmType::I32
422
+ })
423
+ .map(|(i, _)| i)
424
+ }
425
+
426
+ /// Returns the underlying builder used to build up core wasm module types.
427
+ ///
428
+ /// Note that this is shared across all modules found within a component to
429
+ /// improve the wins from deduplicating function signatures.
430
+ pub fn module_types_builder(&self) -> &ModuleTypesBuilder {
431
+ &self.module_types
432
+ }
433
+
434
+ /// Same as `module_types_builder`, but `mut`.
435
+ pub fn module_types_builder_mut(&mut self) -> &mut ModuleTypesBuilder {
436
+ &mut self.module_types
437
+ }
438
+
439
+ /// Returns the number of resource tables allocated so far, or the maximum
440
+ /// `TypeResourceTableIndex`.
441
+ pub fn num_resource_tables(&self) -> usize {
442
+ self.component_types.resource_tables.len()
443
+ }
444
+
445
+ /// Returns a mutable reference to the underlying `ResourcesBuilder`.
446
+ pub fn resources_mut(&mut self) -> &mut ResourcesBuilder {
447
+ &mut self.resources
448
+ }
449
+
450
+ /// Work around the borrow checker to borrow two sub-fields simultaneously
451
+ /// externally.
452
+ pub fn resources_mut_and_types(&mut self) -> (&mut ResourcesBuilder, &ComponentTypes) {
453
+ (&mut self.resources, &self.component_types)
454
+ }
455
+
456
+ /// Converts a wasmparser `ComponentFuncType` into Wasmtime's type
457
+ /// representation.
458
+ pub fn convert_component_func_type(
459
+ &mut self,
460
+ types: types::TypesRef<'_>,
461
+ id: types::ComponentFuncTypeId,
462
+ ) -> Result<TypeFuncIndex> {
463
+ let ty = &types[id];
464
+ let params = ty
465
+ .params
466
+ .iter()
467
+ .map(|(_name, ty)| self.valtype(types, ty))
468
+ .collect::<Result<_>>()?;
469
+ let results = ty
470
+ .results
471
+ .iter()
472
+ .map(|(_name, ty)| self.valtype(types, ty))
473
+ .collect::<Result<_>>()?;
474
+ let ty = TypeFunc {
475
+ params: self.new_tuple_type(params),
476
+ results: self.new_tuple_type(results),
477
+ };
478
+ Ok(self.add_func_type(ty))
479
+ }
480
+
481
+ /// Converts a wasmparser `ComponentEntityType` into Wasmtime's type
482
+ /// representation.
483
+ pub fn convert_component_entity_type(
484
+ &mut self,
485
+ types: types::TypesRef<'_>,
486
+ ty: types::ComponentEntityType,
487
+ ) -> Result<TypeDef> {
488
+ Ok(match ty {
489
+ types::ComponentEntityType::Module(id) => {
490
+ TypeDef::Module(self.convert_module(types, id)?)
491
+ }
492
+ types::ComponentEntityType::Component(id) => {
493
+ TypeDef::Component(self.convert_component(types, id)?)
494
+ }
495
+ types::ComponentEntityType::Instance(id) => {
496
+ TypeDef::ComponentInstance(self.convert_instance(types, id)?)
497
+ }
498
+ types::ComponentEntityType::Func(id) => {
499
+ TypeDef::ComponentFunc(self.convert_component_func_type(types, id)?)
500
+ }
501
+ types::ComponentEntityType::Type { created, .. } => match created {
502
+ types::ComponentAnyTypeId::Defined(id) => {
503
+ TypeDef::Interface(self.defined_type(types, id)?)
504
+ }
505
+ types::ComponentAnyTypeId::Resource(id) => {
506
+ TypeDef::Resource(self.resource_id(id.resource()))
507
+ }
508
+ _ => bail!("unsupported type export"),
509
+ },
510
+ types::ComponentEntityType::Value(_) => bail!("values not supported"),
511
+ })
512
+ }
513
+
514
+ /// Converts a wasmparser `Type` into Wasmtime's type representation.
515
+ pub fn convert_type(
516
+ &mut self,
517
+ types: types::TypesRef<'_>,
518
+ id: types::ComponentAnyTypeId,
519
+ ) -> Result<TypeDef> {
520
+ Ok(match id {
521
+ types::ComponentAnyTypeId::Defined(id) => {
522
+ TypeDef::Interface(self.defined_type(types, id)?)
523
+ }
524
+ types::ComponentAnyTypeId::Component(id) => {
525
+ TypeDef::Component(self.convert_component(types, id)?)
526
+ }
527
+ types::ComponentAnyTypeId::Instance(id) => {
528
+ TypeDef::ComponentInstance(self.convert_instance(types, id)?)
529
+ }
530
+ types::ComponentAnyTypeId::Func(id) => {
531
+ TypeDef::ComponentFunc(self.convert_component_func_type(types, id)?)
532
+ }
533
+ types::ComponentAnyTypeId::Resource(id) => {
534
+ TypeDef::Resource(self.resource_id(id.resource()))
535
+ }
536
+ })
537
+ }
538
+
539
+ fn convert_component(
540
+ &mut self,
541
+ types: types::TypesRef<'_>,
542
+ id: types::ComponentTypeId,
543
+ ) -> Result<TypeComponentIndex> {
544
+ let ty = &types[id];
545
+ let mut result = TypeComponent::default();
546
+ for (name, ty) in ty.imports.iter() {
547
+ result.imports.insert(
548
+ name.clone(),
549
+ self.convert_component_entity_type(types, *ty)?,
550
+ );
551
+ }
552
+ for (name, ty) in ty.exports.iter() {
553
+ result.exports.insert(
554
+ name.clone(),
555
+ self.convert_component_entity_type(types, *ty)?,
556
+ );
557
+ }
558
+ Ok(self.component_types.components.push(result))
559
+ }
560
+
561
+ fn convert_instance(
562
+ &mut self,
563
+ types: types::TypesRef<'_>,
564
+ id: types::ComponentInstanceTypeId,
565
+ ) -> Result<TypeComponentInstanceIndex> {
566
+ let ty = &types[id];
567
+ let mut result = TypeComponentInstance::default();
568
+ for (name, ty) in ty.exports.iter() {
569
+ result.exports.insert(
570
+ name.clone(),
571
+ self.convert_component_entity_type(types, *ty)?,
572
+ );
573
+ }
574
+ Ok(self.component_types.component_instances.push(result))
575
+ }
576
+
577
+ fn convert_module(
578
+ &mut self,
579
+ types: types::TypesRef<'_>,
580
+ id: types::ComponentCoreModuleTypeId,
581
+ ) -> Result<TypeModuleIndex> {
582
+ let ty = &types[id];
583
+ let mut result = TypeModule::default();
584
+ for ((module, field), ty) in ty.imports.iter() {
585
+ result.imports.insert(
586
+ (module.clone(), field.clone()),
587
+ self.entity_type(types, ty)?,
588
+ );
589
+ }
590
+ for (name, ty) in ty.exports.iter() {
591
+ result
592
+ .exports
593
+ .insert(name.clone(), self.entity_type(types, ty)?);
594
+ }
595
+ Ok(self.component_types.modules.push(result))
596
+ }
597
+
598
+ fn entity_type(
599
+ &mut self,
600
+ types: types::TypesRef<'_>,
601
+ ty: &types::EntityType,
602
+ ) -> Result<EntityType> {
603
+ Ok(match ty {
604
+ types::EntityType::Func(idx) => {
605
+ let ty = types[*idx].unwrap_func();
606
+ let ty = self.convert_func_type(ty);
607
+ EntityType::Function(self.module_types_builder_mut().wasm_func_type(*idx, ty))
608
+ }
609
+ types::EntityType::Table(ty) => EntityType::Table(self.convert_table_type(ty)),
610
+ types::EntityType::Memory(ty) => EntityType::Memory(ty.clone().into()),
611
+ types::EntityType::Global(ty) => EntityType::Global(self.convert_global_type(ty)),
612
+ types::EntityType::Tag(_) => bail!("exceptions proposal not implemented"),
613
+ })
614
+ }
615
+
616
+ fn defined_type(
617
+ &mut self,
618
+ types: types::TypesRef<'_>,
619
+ id: types::ComponentDefinedTypeId,
620
+ ) -> Result<InterfaceType> {
621
+ let ret = match &types[id] {
622
+ types::ComponentDefinedType::Primitive(ty) => ty.into(),
623
+ types::ComponentDefinedType::Record(e) => {
624
+ InterfaceType::Record(self.record_type(types, e)?)
625
+ }
626
+ types::ComponentDefinedType::Variant(e) => {
627
+ InterfaceType::Variant(self.variant_type(types, e)?)
628
+ }
629
+ types::ComponentDefinedType::List(e) => InterfaceType::List(self.list_type(types, e)?),
630
+ types::ComponentDefinedType::Tuple(e) => {
631
+ InterfaceType::Tuple(self.tuple_type(types, e)?)
632
+ }
633
+ types::ComponentDefinedType::Flags(e) => InterfaceType::Flags(self.flags_type(e)),
634
+ types::ComponentDefinedType::Enum(e) => InterfaceType::Enum(self.enum_type(e)),
635
+ types::ComponentDefinedType::Option(e) => {
636
+ InterfaceType::Option(self.option_type(types, e)?)
637
+ }
638
+ types::ComponentDefinedType::Result { ok, err } => {
639
+ InterfaceType::Result(self.result_type(types, ok, err)?)
640
+ }
641
+ types::ComponentDefinedType::Own(r) => {
642
+ InterfaceType::Own(self.resource_id(r.resource()))
643
+ }
644
+ types::ComponentDefinedType::Borrow(r) => {
645
+ InterfaceType::Borrow(self.resource_id(r.resource()))
646
+ }
647
+ };
648
+ let info = self.type_information(&ret);
649
+ if info.depth > MAX_TYPE_DEPTH {
650
+ bail!("type nesting is too deep");
651
+ }
652
+ Ok(ret)
653
+ }
654
+
655
+ fn valtype(
656
+ &mut self,
657
+ types: types::TypesRef<'_>,
658
+ ty: &types::ComponentValType,
659
+ ) -> Result<InterfaceType> {
660
+ match ty {
661
+ types::ComponentValType::Primitive(p) => Ok(p.into()),
662
+ types::ComponentValType::Type(id) => self.defined_type(types, *id),
663
+ }
664
+ }
665
+
666
+ fn record_type(
667
+ &mut self,
668
+ types: types::TypesRef<'_>,
669
+ ty: &types::RecordType,
670
+ ) -> Result<TypeRecordIndex> {
671
+ let fields = ty
672
+ .fields
673
+ .iter()
674
+ .map(|(name, ty)| {
675
+ Ok(RecordField {
676
+ name: name.to_string(),
677
+ ty: self.valtype(types, ty)?,
678
+ })
679
+ })
680
+ .collect::<Result<Box<[_]>>>()?;
681
+ let abi = CanonicalAbiInfo::record(
682
+ fields
683
+ .iter()
684
+ .map(|field| self.component_types.canonical_abi(&field.ty)),
685
+ );
686
+ Ok(self.add_record_type(TypeRecord { fields, abi }))
687
+ }
688
+
689
+ fn variant_type(
690
+ &mut self,
691
+ types: types::TypesRef<'_>,
692
+ ty: &types::VariantType,
693
+ ) -> Result<TypeVariantIndex> {
694
+ let cases = ty
695
+ .cases
696
+ .iter()
697
+ .map(|(name, case)| {
698
+ // FIXME: need to implement `refines`, not sure what that
699
+ // is at this time.
700
+ if case.refines.is_some() {
701
+ bail!("refines is not supported at this time");
702
+ }
703
+ Ok(VariantCase {
704
+ name: name.to_string(),
705
+ ty: match &case.ty.as_ref() {
706
+ Some(ty) => Some(self.valtype(types, ty)?),
707
+ None => None,
708
+ },
709
+ })
710
+ })
711
+ .collect::<Result<Box<[_]>>>()?;
712
+ let (info, abi) = VariantInfo::new(cases.iter().map(|c| {
713
+ c.ty.as_ref()
714
+ .map(|ty| self.component_types.canonical_abi(ty))
715
+ }));
716
+ Ok(self.add_variant_type(TypeVariant { cases, abi, info }))
717
+ }
718
+
719
+ fn tuple_type(
720
+ &mut self,
721
+ types: types::TypesRef<'_>,
722
+ ty: &types::TupleType,
723
+ ) -> Result<TypeTupleIndex> {
724
+ let types = ty
725
+ .types
726
+ .iter()
727
+ .map(|ty| self.valtype(types, ty))
728
+ .collect::<Result<Box<[_]>>>()?;
729
+ Ok(self.new_tuple_type(types))
730
+ }
731
+
732
+ fn new_tuple_type(&mut self, types: Box<[InterfaceType]>) -> TypeTupleIndex {
733
+ let abi = CanonicalAbiInfo::record(
734
+ types
735
+ .iter()
736
+ .map(|ty| self.component_types.canonical_abi(ty)),
737
+ );
738
+ self.add_tuple_type(TypeTuple { types, abi })
739
+ }
740
+
741
+ fn flags_type(&mut self, flags: &IndexSet<KebabString>) -> TypeFlagsIndex {
742
+ let flags = TypeFlags {
743
+ names: flags.iter().map(|s| s.to_string()).collect(),
744
+ abi: CanonicalAbiInfo::flags(flags.len()),
745
+ };
746
+ self.add_flags_type(flags)
747
+ }
748
+
749
+ fn enum_type(&mut self, variants: &IndexSet<KebabString>) -> TypeEnumIndex {
750
+ let names = variants.iter().map(|s| s.to_string()).collect::<Box<[_]>>();
751
+ let (info, abi) = VariantInfo::new(names.iter().map(|_| None));
752
+ self.add_enum_type(TypeEnum { names, abi, info })
753
+ }
754
+
755
+ fn option_type(
756
+ &mut self,
757
+ types: types::TypesRef<'_>,
758
+ ty: &types::ComponentValType,
759
+ ) -> Result<TypeOptionIndex> {
760
+ let ty = self.valtype(types, ty)?;
761
+ let (info, abi) = VariantInfo::new([None, Some(self.component_types.canonical_abi(&ty))]);
762
+ Ok(self.add_option_type(TypeOption { ty, abi, info }))
763
+ }
764
+
765
+ fn result_type(
766
+ &mut self,
767
+ types: types::TypesRef<'_>,
768
+ ok: &Option<types::ComponentValType>,
769
+ err: &Option<types::ComponentValType>,
770
+ ) -> Result<TypeResultIndex> {
771
+ let ok = match ok {
772
+ Some(ty) => Some(self.valtype(types, ty)?),
773
+ None => None,
774
+ };
775
+ let err = match err {
776
+ Some(ty) => Some(self.valtype(types, ty)?),
777
+ None => None,
778
+ };
779
+ let (info, abi) = VariantInfo::new([
780
+ ok.as_ref().map(|t| self.component_types.canonical_abi(t)),
781
+ err.as_ref().map(|t| self.component_types.canonical_abi(t)),
782
+ ]);
783
+ Ok(self.add_result_type(TypeResult { ok, err, abi, info }))
784
+ }
785
+
786
+ fn list_type(
787
+ &mut self,
788
+ types: types::TypesRef<'_>,
789
+ ty: &types::ComponentValType,
790
+ ) -> Result<TypeListIndex> {
791
+ let element = self.valtype(types, ty)?;
792
+ Ok(self.add_list_type(TypeList { element }))
793
+ }
794
+
795
+ /// Converts a wasmparser `id`, which must point to a resource, to its
796
+ /// corresponding `TypeResourceTableIndex`.
797
+ pub fn resource_id(&mut self, id: types::ResourceId) -> TypeResourceTableIndex {
798
+ self.resources.convert(id, &mut self.component_types)
799
+ }
800
+
801
+ /// Interns a new function type within this type information.
802
+ pub fn add_func_type(&mut self, ty: TypeFunc) -> TypeFuncIndex {
803
+ intern(&mut self.functions, &mut self.component_types.functions, ty)
804
+ }
805
+
806
+ /// Interns a new record type within this type information.
807
+ pub fn add_record_type(&mut self, ty: TypeRecord) -> TypeRecordIndex {
808
+ intern_and_fill_flat_types!(self, records, ty)
809
+ }
810
+
811
+ /// Interns a new flags type within this type information.
812
+ pub fn add_flags_type(&mut self, ty: TypeFlags) -> TypeFlagsIndex {
813
+ intern_and_fill_flat_types!(self, flags, ty)
814
+ }
815
+
816
+ /// Interns a new tuple type within this type information.
817
+ pub fn add_tuple_type(&mut self, ty: TypeTuple) -> TypeTupleIndex {
818
+ intern_and_fill_flat_types!(self, tuples, ty)
819
+ }
820
+
821
+ /// Interns a new variant type within this type information.
822
+ pub fn add_variant_type(&mut self, ty: TypeVariant) -> TypeVariantIndex {
823
+ intern_and_fill_flat_types!(self, variants, ty)
824
+ }
825
+
826
+ /// Interns a new enum type within this type information.
827
+ pub fn add_enum_type(&mut self, ty: TypeEnum) -> TypeEnumIndex {
828
+ intern_and_fill_flat_types!(self, enums, ty)
829
+ }
830
+
831
+ /// Interns a new option type within this type information.
832
+ pub fn add_option_type(&mut self, ty: TypeOption) -> TypeOptionIndex {
833
+ intern_and_fill_flat_types!(self, options, ty)
834
+ }
835
+
836
+ /// Interns a new result type within this type information.
837
+ pub fn add_result_type(&mut self, ty: TypeResult) -> TypeResultIndex {
838
+ intern_and_fill_flat_types!(self, results, ty)
839
+ }
840
+
841
+ /// Interns a new type within this type information.
842
+ pub fn add_list_type(&mut self, ty: TypeList) -> TypeListIndex {
843
+ intern_and_fill_flat_types!(self, lists, ty)
844
+ }
845
+
846
+ /// Returns the canonical ABI information about the specified type.
847
+ pub fn canonical_abi(&self, ty: &InterfaceType) -> &CanonicalAbiInfo {
848
+ self.component_types.canonical_abi(ty)
849
+ }
850
+
851
+ /// Returns the "flat types" for the given interface type used in the
852
+ /// canonical ABI.
853
+ ///
854
+ /// Returns `None` if the type is too large to be represented via flat types
855
+ /// in the canonical abi.
856
+ pub fn flat_types(&self, ty: &InterfaceType) -> Option<FlatTypes<'_>> {
857
+ self.type_information(ty).flat.as_flat_types()
858
+ }
859
+
860
+ /// Returns whether the type specified contains any borrowed resources
861
+ /// within it.
862
+ pub fn ty_contains_borrow_resource(&self, ty: &InterfaceType) -> bool {
863
+ self.type_information(ty).has_borrow
864
+ }
865
+
866
+ fn type_information(&self, ty: &InterfaceType) -> &TypeInformation {
867
+ match ty {
868
+ InterfaceType::U8
869
+ | InterfaceType::S8
870
+ | InterfaceType::Bool
871
+ | InterfaceType::U16
872
+ | InterfaceType::S16
873
+ | InterfaceType::U32
874
+ | InterfaceType::S32
875
+ | InterfaceType::Char
876
+ | InterfaceType::Own(_) => {
877
+ static INFO: TypeInformation = TypeInformation::primitive(FlatType::I32);
878
+ &INFO
879
+ }
880
+ InterfaceType::Borrow(_) => {
881
+ static INFO: TypeInformation = {
882
+ let mut info = TypeInformation::primitive(FlatType::I32);
883
+ info.has_borrow = true;
884
+ info
885
+ };
886
+ &INFO
887
+ }
888
+ InterfaceType::U64 | InterfaceType::S64 => {
889
+ static INFO: TypeInformation = TypeInformation::primitive(FlatType::I64);
890
+ &INFO
891
+ }
892
+ InterfaceType::Float32 => {
893
+ static INFO: TypeInformation = TypeInformation::primitive(FlatType::F32);
894
+ &INFO
895
+ }
896
+ InterfaceType::Float64 => {
897
+ static INFO: TypeInformation = TypeInformation::primitive(FlatType::F64);
898
+ &INFO
899
+ }
900
+ InterfaceType::String => {
901
+ static INFO: TypeInformation = TypeInformation::string();
902
+ &INFO
903
+ }
904
+
905
+ InterfaceType::List(i) => &self.type_info.lists[*i],
906
+ InterfaceType::Record(i) => &self.type_info.records[*i],
907
+ InterfaceType::Variant(i) => &self.type_info.variants[*i],
908
+ InterfaceType::Tuple(i) => &self.type_info.tuples[*i],
909
+ InterfaceType::Flags(i) => &self.type_info.flags[*i],
910
+ InterfaceType::Enum(i) => &self.type_info.enums[*i],
911
+ InterfaceType::Option(i) => &self.type_info.options[*i],
912
+ InterfaceType::Result(i) => &self.type_info.results[*i],
913
+ }
914
+ }
915
+ }
916
+
917
+ impl TypeConvert for ComponentTypesBuilder {
918
+ fn lookup_heap_type(&self, _index: wasmparser::UnpackedIndex) -> WasmHeapType {
919
+ panic!("heap types are not supported yet")
920
+ }
921
+ }
922
+
923
+ fn intern<T, U>(map: &mut HashMap<T, U>, list: &mut PrimaryMap<U, T>, item: T) -> U
924
+ where
925
+ T: Hash + Clone + Eq,
926
+ U: Copy + EntityRef,
927
+ {
928
+ if let Some(idx) = map.get(&item) {
929
+ return *idx;
930
+ }
931
+ let idx = list.push(item.clone());
932
+ map.insert(item, idx);
933
+ return idx;
934
+ }
935
+
936
+ /// Types of imports and exports in the component model.
937
+ ///
938
+ /// These types are what's available for import and export in components. Note
939
+ /// that all indirect indices contained here are intended to be looked up
940
+ /// through a sibling `ComponentTypes` structure.
941
+ #[derive(Copy, Clone, Debug, Serialize, Deserialize)]
942
+ pub enum TypeDef {
943
+ /// A component and its type.
944
+ Component(TypeComponentIndex),
945
+ /// An instance of a component.
946
+ ComponentInstance(TypeComponentInstanceIndex),
947
+ /// A component function, not to be confused with a core wasm function.
948
+ ComponentFunc(TypeFuncIndex),
949
+ /// An interface type.
950
+ Interface(InterfaceType),
951
+ /// A core wasm module and its type.
952
+ Module(TypeModuleIndex),
953
+ /// A core wasm function using only core wasm types.
954
+ CoreFunc(SignatureIndex),
955
+ /// A resource type which operates on the specified resource table.
956
+ ///
957
+ /// Note that different resource tables may point to the same underlying
958
+ /// actual resource type, but that's a private detail.
959
+ Resource(TypeResourceTableIndex),
960
+ }
961
+
962
+ // NB: Note that maps below are stored as an `IndexMap` now but the order
963
+ // typically does not matter. As a minor implementation detail we want the
964
+ // serialization of this type to always be deterministic and using `IndexMap`
965
+ // gets us that over using a `HashMap` for example.
966
+
967
+ /// The type of a module in the component model.
968
+ ///
969
+ /// Note that this is not to be confused with `TypeComponent` below. This is
970
+ /// intended only for core wasm modules, not for components.
971
+ #[derive(Serialize, Deserialize, Default)]
972
+ pub struct TypeModule {
973
+ /// The values that this module imports.
974
+ ///
975
+ /// Note that the value of this map is a core wasm `EntityType`, not a
976
+ /// component model `TypeRef`. Additionally note that this reflects the
977
+ /// two-level namespace of core WebAssembly, but unlike core wasm all import
978
+ /// names are required to be unique to describe a module in the component
979
+ /// model.
980
+ pub imports: IndexMap<(String, String), EntityType>,
981
+
982
+ /// The values that this module exports.
983
+ ///
984
+ /// Note that the value of this map is the core wasm `EntityType` to
985
+ /// represent that core wasm items are being exported.
986
+ pub exports: IndexMap<String, EntityType>,
987
+ }
988
+
989
+ /// The type of a component in the component model.
990
+ #[derive(Serialize, Deserialize, Default)]
991
+ pub struct TypeComponent {
992
+ /// The named values that this component imports.
993
+ pub imports: IndexMap<String, TypeDef>,
994
+ /// The named values that this component exports.
995
+ pub exports: IndexMap<String, TypeDef>,
996
+ }
997
+
998
+ /// The type of a component instance in the component model, or an instantiated
999
+ /// component.
1000
+ ///
1001
+ /// Component instances only have exports of types in the component model.
1002
+ #[derive(Serialize, Deserialize, Default)]
1003
+ pub struct TypeComponentInstance {
1004
+ /// The list of exports that this component has along with their types.
1005
+ pub exports: IndexMap<String, TypeDef>,
1006
+ }
1007
+
1008
+ /// A component function type in the component model.
1009
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1010
+ pub struct TypeFunc {
1011
+ /// Parameters to the function represented as a tuple.
1012
+ pub params: TypeTupleIndex,
1013
+ /// Results of the function represented as a tuple.
1014
+ pub results: TypeTupleIndex,
1015
+ }
1016
+
1017
+ /// All possible interface types that values can have.
1018
+ ///
1019
+ /// This list represents an exhaustive listing of interface types and the
1020
+ /// shapes that they can take. Note that this enum is considered an "index" of
1021
+ /// forms where for non-primitive types a `ComponentTypes` structure is used to
1022
+ /// lookup further information based on the index found here.
1023
+ #[derive(Serialize, Deserialize, Copy, Clone, Hash, Eq, PartialEq, Debug)]
1024
+ #[allow(missing_docs)]
1025
+ pub enum InterfaceType {
1026
+ Bool,
1027
+ S8,
1028
+ U8,
1029
+ S16,
1030
+ U16,
1031
+ S32,
1032
+ U32,
1033
+ S64,
1034
+ U64,
1035
+ Float32,
1036
+ Float64,
1037
+ Char,
1038
+ String,
1039
+ Record(TypeRecordIndex),
1040
+ Variant(TypeVariantIndex),
1041
+ List(TypeListIndex),
1042
+ Tuple(TypeTupleIndex),
1043
+ Flags(TypeFlagsIndex),
1044
+ Enum(TypeEnumIndex),
1045
+ Option(TypeOptionIndex),
1046
+ Result(TypeResultIndex),
1047
+ Own(TypeResourceTableIndex),
1048
+ Borrow(TypeResourceTableIndex),
1049
+ }
1050
+
1051
+ impl From<&wasmparser::PrimitiveValType> for InterfaceType {
1052
+ fn from(ty: &wasmparser::PrimitiveValType) -> InterfaceType {
1053
+ match ty {
1054
+ wasmparser::PrimitiveValType::Bool => InterfaceType::Bool,
1055
+ wasmparser::PrimitiveValType::S8 => InterfaceType::S8,
1056
+ wasmparser::PrimitiveValType::U8 => InterfaceType::U8,
1057
+ wasmparser::PrimitiveValType::S16 => InterfaceType::S16,
1058
+ wasmparser::PrimitiveValType::U16 => InterfaceType::U16,
1059
+ wasmparser::PrimitiveValType::S32 => InterfaceType::S32,
1060
+ wasmparser::PrimitiveValType::U32 => InterfaceType::U32,
1061
+ wasmparser::PrimitiveValType::S64 => InterfaceType::S64,
1062
+ wasmparser::PrimitiveValType::U64 => InterfaceType::U64,
1063
+ wasmparser::PrimitiveValType::Float32 => InterfaceType::Float32,
1064
+ wasmparser::PrimitiveValType::Float64 => InterfaceType::Float64,
1065
+ wasmparser::PrimitiveValType::Char => InterfaceType::Char,
1066
+ wasmparser::PrimitiveValType::String => InterfaceType::String,
1067
+ }
1068
+ }
1069
+ }
1070
+
1071
+ /// Bye information about a type in the canonical ABI, with metadata for both
1072
+ /// memory32 and memory64-based types.
1073
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1074
+ pub struct CanonicalAbiInfo {
1075
+ /// The byte-size of this type in a 32-bit memory.
1076
+ pub size32: u32,
1077
+ /// The byte-alignment of this type in a 32-bit memory.
1078
+ pub align32: u32,
1079
+ /// The byte-size of this type in a 64-bit memory.
1080
+ pub size64: u32,
1081
+ /// The byte-alignment of this type in a 64-bit memory.
1082
+ pub align64: u32,
1083
+ /// The number of types it takes to represents this type in the "flat"
1084
+ /// representation of the canonical abi where everything is passed as
1085
+ /// immediate arguments or results.
1086
+ ///
1087
+ /// If this is `None` then this type is not representable in the flat ABI
1088
+ /// because it is too large.
1089
+ pub flat_count: Option<u8>,
1090
+ }
1091
+
1092
+ impl Default for CanonicalAbiInfo {
1093
+ fn default() -> CanonicalAbiInfo {
1094
+ CanonicalAbiInfo {
1095
+ size32: 0,
1096
+ align32: 1,
1097
+ size64: 0,
1098
+ align64: 1,
1099
+ flat_count: Some(0),
1100
+ }
1101
+ }
1102
+ }
1103
+
1104
+ const fn align_to(a: u32, b: u32) -> u32 {
1105
+ assert!(b.is_power_of_two());
1106
+ (a + (b - 1)) & !(b - 1)
1107
+ }
1108
+
1109
+ const fn max(a: u32, b: u32) -> u32 {
1110
+ if a > b {
1111
+ a
1112
+ } else {
1113
+ b
1114
+ }
1115
+ }
1116
+
1117
+ impl CanonicalAbiInfo {
1118
+ /// ABI information for zero-sized types.
1119
+ const ZERO: CanonicalAbiInfo = CanonicalAbiInfo {
1120
+ size32: 0,
1121
+ align32: 1,
1122
+ size64: 0,
1123
+ align64: 1,
1124
+ flat_count: Some(0),
1125
+ };
1126
+
1127
+ /// ABI information for one-byte scalars.
1128
+ pub const SCALAR1: CanonicalAbiInfo = CanonicalAbiInfo::scalar(1);
1129
+ /// ABI information for two-byte scalars.
1130
+ pub const SCALAR2: CanonicalAbiInfo = CanonicalAbiInfo::scalar(2);
1131
+ /// ABI information for four-byte scalars.
1132
+ pub const SCALAR4: CanonicalAbiInfo = CanonicalAbiInfo::scalar(4);
1133
+ /// ABI information for eight-byte scalars.
1134
+ pub const SCALAR8: CanonicalAbiInfo = CanonicalAbiInfo::scalar(8);
1135
+
1136
+ const fn scalar(size: u32) -> CanonicalAbiInfo {
1137
+ CanonicalAbiInfo {
1138
+ size32: size,
1139
+ align32: size,
1140
+ size64: size,
1141
+ align64: size,
1142
+ flat_count: Some(1),
1143
+ }
1144
+ }
1145
+
1146
+ /// ABI information for lists/strings which are "pointer pairs"
1147
+ pub const POINTER_PAIR: CanonicalAbiInfo = CanonicalAbiInfo {
1148
+ size32: 8,
1149
+ align32: 4,
1150
+ size64: 16,
1151
+ align64: 8,
1152
+ flat_count: Some(2),
1153
+ };
1154
+
1155
+ /// Returns the abi for a record represented by the specified fields.
1156
+ pub fn record<'a>(fields: impl Iterator<Item = &'a CanonicalAbiInfo>) -> CanonicalAbiInfo {
1157
+ // NB: this is basically a duplicate copy of
1158
+ // `CanonicalAbiInfo::record_static` and the two should be kept in sync.
1159
+
1160
+ let mut ret = CanonicalAbiInfo::default();
1161
+ for field in fields {
1162
+ ret.size32 = align_to(ret.size32, field.align32) + field.size32;
1163
+ ret.align32 = ret.align32.max(field.align32);
1164
+ ret.size64 = align_to(ret.size64, field.align64) + field.size64;
1165
+ ret.align64 = ret.align64.max(field.align64);
1166
+ ret.flat_count = add_flat(ret.flat_count, field.flat_count);
1167
+ }
1168
+ ret.size32 = align_to(ret.size32, ret.align32);
1169
+ ret.size64 = align_to(ret.size64, ret.align64);
1170
+ return ret;
1171
+ }
1172
+
1173
+ /// Same as `CanonicalAbiInfo::record` but in a `const`-friendly context.
1174
+ pub const fn record_static(fields: &[CanonicalAbiInfo]) -> CanonicalAbiInfo {
1175
+ // NB: this is basically a duplicate copy of `CanonicalAbiInfo::record`
1176
+ // and the two should be kept in sync.
1177
+
1178
+ let mut ret = CanonicalAbiInfo::ZERO;
1179
+ let mut i = 0;
1180
+ while i < fields.len() {
1181
+ let field = &fields[i];
1182
+ ret.size32 = align_to(ret.size32, field.align32) + field.size32;
1183
+ ret.align32 = max(ret.align32, field.align32);
1184
+ ret.size64 = align_to(ret.size64, field.align64) + field.size64;
1185
+ ret.align64 = max(ret.align64, field.align64);
1186
+ ret.flat_count = add_flat(ret.flat_count, field.flat_count);
1187
+ i += 1;
1188
+ }
1189
+ ret.size32 = align_to(ret.size32, ret.align32);
1190
+ ret.size64 = align_to(ret.size64, ret.align64);
1191
+ return ret;
1192
+ }
1193
+
1194
+ /// Returns the delta from the current value of `offset` to align properly
1195
+ /// and read the next record field of type `abi` for 32-bit memories.
1196
+ pub fn next_field32(&self, offset: &mut u32) -> u32 {
1197
+ *offset = align_to(*offset, self.align32) + self.size32;
1198
+ *offset - self.size32
1199
+ }
1200
+
1201
+ /// Same as `next_field32`, but bumps a usize pointer
1202
+ pub fn next_field32_size(&self, offset: &mut usize) -> usize {
1203
+ let cur = u32::try_from(*offset).unwrap();
1204
+ let cur = align_to(cur, self.align32) + self.size32;
1205
+ *offset = usize::try_from(cur).unwrap();
1206
+ usize::try_from(cur - self.size32).unwrap()
1207
+ }
1208
+
1209
+ /// Returns the delta from the current value of `offset` to align properly
1210
+ /// and read the next record field of type `abi` for 64-bit memories.
1211
+ pub fn next_field64(&self, offset: &mut u32) -> u32 {
1212
+ *offset = align_to(*offset, self.align64) + self.size64;
1213
+ *offset - self.size64
1214
+ }
1215
+
1216
+ /// Same as `next_field64`, but bumps a usize pointer
1217
+ pub fn next_field64_size(&self, offset: &mut usize) -> usize {
1218
+ let cur = u32::try_from(*offset).unwrap();
1219
+ let cur = align_to(cur, self.align64) + self.size64;
1220
+ *offset = usize::try_from(cur).unwrap();
1221
+ usize::try_from(cur - self.size64).unwrap()
1222
+ }
1223
+
1224
+ /// Returns ABI information for a structure which contains `count` flags.
1225
+ pub const fn flags(count: usize) -> CanonicalAbiInfo {
1226
+ let (size, align, flat_count) = match FlagsSize::from_count(count) {
1227
+ FlagsSize::Size0 => (0, 1, 0),
1228
+ FlagsSize::Size1 => (1, 1, 1),
1229
+ FlagsSize::Size2 => (2, 2, 1),
1230
+ FlagsSize::Size4Plus(n) => ((n as u32) * 4, 4, n),
1231
+ };
1232
+ CanonicalAbiInfo {
1233
+ size32: size,
1234
+ align32: align,
1235
+ size64: size,
1236
+ align64: align,
1237
+ flat_count: Some(flat_count),
1238
+ }
1239
+ }
1240
+
1241
+ fn variant<'a, I>(cases: I) -> CanonicalAbiInfo
1242
+ where
1243
+ I: IntoIterator<Item = Option<&'a CanonicalAbiInfo>>,
1244
+ I::IntoIter: ExactSizeIterator,
1245
+ {
1246
+ // NB: this is basically a duplicate definition of
1247
+ // `CanonicalAbiInfo::variant_static`, these should be kept in sync.
1248
+
1249
+ let cases = cases.into_iter();
1250
+ let discrim_size = u32::from(DiscriminantSize::from_count(cases.len()).unwrap());
1251
+ let mut max_size32 = 0;
1252
+ let mut max_align32 = discrim_size;
1253
+ let mut max_size64 = 0;
1254
+ let mut max_align64 = discrim_size;
1255
+ let mut max_case_count = Some(0);
1256
+ for case in cases {
1257
+ if let Some(case) = case {
1258
+ max_size32 = max_size32.max(case.size32);
1259
+ max_align32 = max_align32.max(case.align32);
1260
+ max_size64 = max_size64.max(case.size64);
1261
+ max_align64 = max_align64.max(case.align64);
1262
+ max_case_count = max_flat(max_case_count, case.flat_count);
1263
+ }
1264
+ }
1265
+ CanonicalAbiInfo {
1266
+ size32: align_to(
1267
+ align_to(discrim_size, max_align32) + max_size32,
1268
+ max_align32,
1269
+ ),
1270
+ align32: max_align32,
1271
+ size64: align_to(
1272
+ align_to(discrim_size, max_align64) + max_size64,
1273
+ max_align64,
1274
+ ),
1275
+ align64: max_align64,
1276
+ flat_count: add_flat(max_case_count, Some(1)),
1277
+ }
1278
+ }
1279
+
1280
+ /// Same as `CanonicalAbiInfo::variant` but `const`-safe
1281
+ pub const fn variant_static(cases: &[Option<CanonicalAbiInfo>]) -> CanonicalAbiInfo {
1282
+ // NB: this is basically a duplicate definition of
1283
+ // `CanonicalAbiInfo::variant`, these should be kept in sync.
1284
+
1285
+ let discrim_size = match DiscriminantSize::from_count(cases.len()) {
1286
+ Some(size) => size.byte_size(),
1287
+ None => unreachable!(),
1288
+ };
1289
+ let mut max_size32 = 0;
1290
+ let mut max_align32 = discrim_size;
1291
+ let mut max_size64 = 0;
1292
+ let mut max_align64 = discrim_size;
1293
+ let mut max_case_count = Some(0);
1294
+ let mut i = 0;
1295
+ while i < cases.len() {
1296
+ let case = &cases[i];
1297
+ if let Some(case) = case {
1298
+ max_size32 = max(max_size32, case.size32);
1299
+ max_align32 = max(max_align32, case.align32);
1300
+ max_size64 = max(max_size64, case.size64);
1301
+ max_align64 = max(max_align64, case.align64);
1302
+ max_case_count = max_flat(max_case_count, case.flat_count);
1303
+ }
1304
+ i += 1;
1305
+ }
1306
+ CanonicalAbiInfo {
1307
+ size32: align_to(
1308
+ align_to(discrim_size, max_align32) + max_size32,
1309
+ max_align32,
1310
+ ),
1311
+ align32: max_align32,
1312
+ size64: align_to(
1313
+ align_to(discrim_size, max_align64) + max_size64,
1314
+ max_align64,
1315
+ ),
1316
+ align64: max_align64,
1317
+ flat_count: add_flat(max_case_count, Some(1)),
1318
+ }
1319
+ }
1320
+
1321
+ /// Returns the flat count of this ABI information so long as the count
1322
+ /// doesn't exceed the `max` specified.
1323
+ pub fn flat_count(&self, max: usize) -> Option<usize> {
1324
+ let flat = usize::from(self.flat_count?);
1325
+ if flat > max {
1326
+ None
1327
+ } else {
1328
+ Some(flat)
1329
+ }
1330
+ }
1331
+ }
1332
+
1333
+ /// ABI information about the representation of a variant.
1334
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1335
+ pub struct VariantInfo {
1336
+ /// The size of the discriminant used.
1337
+ #[serde(with = "serde_discrim_size")]
1338
+ pub size: DiscriminantSize,
1339
+ /// The offset of the payload from the start of the variant in 32-bit
1340
+ /// memories.
1341
+ pub payload_offset32: u32,
1342
+ /// The offset of the payload from the start of the variant in 64-bit
1343
+ /// memories.
1344
+ pub payload_offset64: u32,
1345
+ }
1346
+
1347
+ impl VariantInfo {
1348
+ /// Returns the abi information for a variant represented by the specified
1349
+ /// cases.
1350
+ pub fn new<'a, I>(cases: I) -> (VariantInfo, CanonicalAbiInfo)
1351
+ where
1352
+ I: IntoIterator<Item = Option<&'a CanonicalAbiInfo>>,
1353
+ I::IntoIter: ExactSizeIterator,
1354
+ {
1355
+ let cases = cases.into_iter();
1356
+ let size = DiscriminantSize::from_count(cases.len()).unwrap();
1357
+ let abi = CanonicalAbiInfo::variant(cases);
1358
+ (
1359
+ VariantInfo {
1360
+ size,
1361
+ payload_offset32: align_to(u32::from(size), abi.align32),
1362
+ payload_offset64: align_to(u32::from(size), abi.align64),
1363
+ },
1364
+ abi,
1365
+ )
1366
+ }
1367
+ /// TODO
1368
+ pub const fn new_static(cases: &[Option<CanonicalAbiInfo>]) -> VariantInfo {
1369
+ let size = match DiscriminantSize::from_count(cases.len()) {
1370
+ Some(size) => size,
1371
+ None => unreachable!(),
1372
+ };
1373
+ let abi = CanonicalAbiInfo::variant_static(cases);
1374
+ VariantInfo {
1375
+ size,
1376
+ payload_offset32: align_to(size.byte_size(), abi.align32),
1377
+ payload_offset64: align_to(size.byte_size(), abi.align64),
1378
+ }
1379
+ }
1380
+ }
1381
+
1382
+ mod serde_discrim_size {
1383
+ use super::DiscriminantSize;
1384
+ use serde::{de::Error, Deserialize, Deserializer, Serialize, Serializer};
1385
+
1386
+ pub fn serialize<S>(disc: &DiscriminantSize, ser: S) -> Result<S::Ok, S::Error>
1387
+ where
1388
+ S: Serializer,
1389
+ {
1390
+ u32::from(*disc).serialize(ser)
1391
+ }
1392
+
1393
+ pub fn deserialize<'de, D>(deser: D) -> Result<DiscriminantSize, D::Error>
1394
+ where
1395
+ D: Deserializer<'de>,
1396
+ {
1397
+ match u32::deserialize(deser)? {
1398
+ 1 => Ok(DiscriminantSize::Size1),
1399
+ 2 => Ok(DiscriminantSize::Size2),
1400
+ 4 => Ok(DiscriminantSize::Size4),
1401
+ _ => Err(D::Error::custom("invalid discriminant size")),
1402
+ }
1403
+ }
1404
+ }
1405
+
1406
+ /// Shape of a "record" type in interface types.
1407
+ ///
1408
+ /// This is equivalent to a `struct` in Rust.
1409
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1410
+ pub struct TypeRecord {
1411
+ /// The fields that are contained within this struct type.
1412
+ pub fields: Box<[RecordField]>,
1413
+ /// Byte information about this type in the canonical ABI.
1414
+ pub abi: CanonicalAbiInfo,
1415
+ }
1416
+
1417
+ /// One field within a record.
1418
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1419
+ pub struct RecordField {
1420
+ /// The name of the field, unique amongst all fields in a record.
1421
+ pub name: String,
1422
+ /// The type that this field contains.
1423
+ pub ty: InterfaceType,
1424
+ }
1425
+
1426
+ /// Shape of a "variant" type in interface types.
1427
+ ///
1428
+ /// Variants are close to Rust `enum` declarations where a value is one of many
1429
+ /// cases and each case has a unique name and an optional payload associated
1430
+ /// with it.
1431
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1432
+ pub struct TypeVariant {
1433
+ /// The list of cases that this variant can take.
1434
+ pub cases: Box<[VariantCase]>,
1435
+ /// Byte information about this type in the canonical ABI.
1436
+ pub abi: CanonicalAbiInfo,
1437
+ /// Byte information about this variant type.
1438
+ pub info: VariantInfo,
1439
+ }
1440
+
1441
+ /// One case of a `variant` type which contains the name of the variant as well
1442
+ /// as the payload.
1443
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1444
+ pub struct VariantCase {
1445
+ /// Name of the variant, unique amongst all cases in a variant.
1446
+ pub name: String,
1447
+ /// Optional type associated with this payload.
1448
+ pub ty: Option<InterfaceType>,
1449
+ }
1450
+
1451
+ /// Shape of a "tuple" type in interface types.
1452
+ ///
1453
+ /// This is largely the same as a tuple in Rust, basically a record with
1454
+ /// unnamed fields.
1455
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1456
+ pub struct TypeTuple {
1457
+ /// The types that are contained within this tuple.
1458
+ pub types: Box<[InterfaceType]>,
1459
+ /// Byte information about this type in the canonical ABI.
1460
+ pub abi: CanonicalAbiInfo,
1461
+ }
1462
+
1463
+ /// Shape of a "flags" type in interface types.
1464
+ ///
1465
+ /// This can be thought of as a record-of-bools, although the representation is
1466
+ /// more efficient as bitflags.
1467
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1468
+ pub struct TypeFlags {
1469
+ /// The names of all flags, all of which are unique.
1470
+ pub names: Box<[String]>,
1471
+ /// Byte information about this type in the canonical ABI.
1472
+ pub abi: CanonicalAbiInfo,
1473
+ }
1474
+
1475
+ /// Shape of an "enum" type in interface types, not to be confused with a Rust
1476
+ /// `enum` type.
1477
+ ///
1478
+ /// In interface types enums are simply a bag of names, and can be seen as a
1479
+ /// variant where all payloads are `Unit`.
1480
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1481
+ pub struct TypeEnum {
1482
+ /// The names of this enum, all of which are unique.
1483
+ pub names: Box<[String]>,
1484
+ /// Byte information about this type in the canonical ABI.
1485
+ pub abi: CanonicalAbiInfo,
1486
+ /// Byte information about this variant type.
1487
+ pub info: VariantInfo,
1488
+ }
1489
+
1490
+ /// Shape of an "option" interface type.
1491
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1492
+ pub struct TypeOption {
1493
+ /// The `T` in `Result<T, E>`
1494
+ pub ty: InterfaceType,
1495
+ /// Byte information about this type in the canonical ABI.
1496
+ pub abi: CanonicalAbiInfo,
1497
+ /// Byte information about this variant type.
1498
+ pub info: VariantInfo,
1499
+ }
1500
+
1501
+ /// Shape of a "result" interface type.
1502
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1503
+ pub struct TypeResult {
1504
+ /// The `T` in `Result<T, E>`
1505
+ pub ok: Option<InterfaceType>,
1506
+ /// The `E` in `Result<T, E>`
1507
+ pub err: Option<InterfaceType>,
1508
+ /// Byte information about this type in the canonical ABI.
1509
+ pub abi: CanonicalAbiInfo,
1510
+ /// Byte information about this variant type.
1511
+ pub info: VariantInfo,
1512
+ }
1513
+
1514
+ /// Metadata about a resource table added to a component.
1515
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1516
+ pub struct TypeResourceTable {
1517
+ /// The original resource that this table contains.
1518
+ ///
1519
+ /// This is used when destroying resources within this table since this
1520
+ /// original definition will know how to execute destructors.
1521
+ pub ty: ResourceIndex,
1522
+
1523
+ /// The component instance that contains this resource table.
1524
+ pub instance: RuntimeComponentInstanceIndex,
1525
+ }
1526
+
1527
+ /// Shape of a "list" interface type.
1528
+ #[derive(Serialize, Deserialize, Clone, Hash, Eq, PartialEq, Debug)]
1529
+ pub struct TypeList {
1530
+ /// The element type of the list.
1531
+ pub element: InterfaceType,
1532
+ }
1533
+
1534
+ const MAX_FLAT_TYPES: usize = if MAX_FLAT_PARAMS > MAX_FLAT_RESULTS {
1535
+ MAX_FLAT_PARAMS
1536
+ } else {
1537
+ MAX_FLAT_RESULTS
1538
+ };
1539
+
1540
+ const fn add_flat(a: Option<u8>, b: Option<u8>) -> Option<u8> {
1541
+ const MAX: u8 = MAX_FLAT_TYPES as u8;
1542
+ let sum = match (a, b) {
1543
+ (Some(a), Some(b)) => match a.checked_add(b) {
1544
+ Some(c) => c,
1545
+ None => return None,
1546
+ },
1547
+ _ => return None,
1548
+ };
1549
+ if sum > MAX {
1550
+ None
1551
+ } else {
1552
+ Some(sum)
1553
+ }
1554
+ }
1555
+
1556
+ const fn max_flat(a: Option<u8>, b: Option<u8>) -> Option<u8> {
1557
+ match (a, b) {
1558
+ (Some(a), Some(b)) => {
1559
+ if a > b {
1560
+ Some(a)
1561
+ } else {
1562
+ Some(b)
1563
+ }
1564
+ }
1565
+ _ => None,
1566
+ }
1567
+ }
1568
+
1569
+ /// Flat representation of a type in just core wasm types.
1570
+ pub struct FlatTypes<'a> {
1571
+ /// The flat representation of this type in 32-bit memories.
1572
+ pub memory32: &'a [FlatType],
1573
+ /// The flat representation of this type in 64-bit memories.
1574
+ pub memory64: &'a [FlatType],
1575
+ }
1576
+
1577
+ #[allow(missing_docs)]
1578
+ impl FlatTypes<'_> {
1579
+ /// Returns the number of flat types used to represent this type.
1580
+ ///
1581
+ /// Note that this length is the same regardless to the size of memory.
1582
+ pub fn len(&self) -> usize {
1583
+ assert_eq!(self.memory32.len(), self.memory64.len());
1584
+ self.memory32.len()
1585
+ }
1586
+ }
1587
+
1588
+ // Note that this is intentionally duplicated here to keep the size to 1 byte
1589
+ // irregardless to changes in the core wasm type system since this will only
1590
+ // ever use integers/floats for the forseeable future.
1591
+ #[derive(PartialEq, Eq, Copy, Clone)]
1592
+ #[allow(missing_docs)]
1593
+ pub enum FlatType {
1594
+ I32,
1595
+ I64,
1596
+ F32,
1597
+ F64,
1598
+ }
1599
+
1600
+ struct FlatTypesStorage {
1601
+ // This could be represented as `Vec<FlatType>` but on 64-bit architectures
1602
+ // that's 24 bytes. Otherwise `FlatType` is 1 byte large and
1603
+ // `MAX_FLAT_TYPES` is 16, so it should ideally be more space-efficient to
1604
+ // use a flat array instead of a heap-based vector.
1605
+ memory32: [FlatType; MAX_FLAT_TYPES],
1606
+ memory64: [FlatType; MAX_FLAT_TYPES],
1607
+
1608
+ // Tracks the number of flat types pushed into this storage. If this is
1609
+ // `MAX_FLAT_TYPES + 1` then this storage represents an un-reprsentable
1610
+ // type in flat types.
1611
+ len: u8,
1612
+ }
1613
+
1614
+ impl FlatTypesStorage {
1615
+ const fn new() -> FlatTypesStorage {
1616
+ FlatTypesStorage {
1617
+ memory32: [FlatType::I32; MAX_FLAT_TYPES],
1618
+ memory64: [FlatType::I32; MAX_FLAT_TYPES],
1619
+ len: 0,
1620
+ }
1621
+ }
1622
+
1623
+ fn as_flat_types(&self) -> Option<FlatTypes<'_>> {
1624
+ let len = usize::from(self.len);
1625
+ if len > MAX_FLAT_TYPES {
1626
+ assert_eq!(len, MAX_FLAT_TYPES + 1);
1627
+ None
1628
+ } else {
1629
+ Some(FlatTypes {
1630
+ memory32: &self.memory32[..len],
1631
+ memory64: &self.memory64[..len],
1632
+ })
1633
+ }
1634
+ }
1635
+
1636
+ /// Pushes a new flat type into this list using `t32` for 32-bit memories
1637
+ /// and `t64` for 64-bit memories.
1638
+ ///
1639
+ /// Returns whether the type was actually pushed or whether this list of
1640
+ /// flat types just exceeded the maximum meaning that it is now
1641
+ /// unrepresentable with a flat list of types.
1642
+ fn push(&mut self, t32: FlatType, t64: FlatType) -> bool {
1643
+ let len = usize::from(self.len);
1644
+ if len < MAX_FLAT_TYPES {
1645
+ self.memory32[len] = t32;
1646
+ self.memory64[len] = t64;
1647
+ self.len += 1;
1648
+ true
1649
+ } else {
1650
+ // If this was the first one to go over then flag the length as
1651
+ // being incompatible with a flat representation.
1652
+ if len == MAX_FLAT_TYPES {
1653
+ self.len += 1;
1654
+ }
1655
+ false
1656
+ }
1657
+ }
1658
+ }
1659
+
1660
+ impl FlatType {
1661
+ fn join(&mut self, other: FlatType) {
1662
+ if *self == other {
1663
+ return;
1664
+ }
1665
+ *self = match (*self, other) {
1666
+ (FlatType::I32, FlatType::F32) | (FlatType::F32, FlatType::I32) => FlatType::I32,
1667
+ _ => FlatType::I64,
1668
+ };
1669
+ }
1670
+ }
1671
+
1672
+ #[derive(Default)]
1673
+ struct TypeInformationCache {
1674
+ records: PrimaryMap<TypeRecordIndex, TypeInformation>,
1675
+ variants: PrimaryMap<TypeVariantIndex, TypeInformation>,
1676
+ tuples: PrimaryMap<TypeTupleIndex, TypeInformation>,
1677
+ enums: PrimaryMap<TypeEnumIndex, TypeInformation>,
1678
+ flags: PrimaryMap<TypeFlagsIndex, TypeInformation>,
1679
+ options: PrimaryMap<TypeOptionIndex, TypeInformation>,
1680
+ results: PrimaryMap<TypeResultIndex, TypeInformation>,
1681
+ lists: PrimaryMap<TypeListIndex, TypeInformation>,
1682
+ }
1683
+
1684
+ struct TypeInformation {
1685
+ depth: u32,
1686
+ flat: FlatTypesStorage,
1687
+ has_borrow: bool,
1688
+ }
1689
+
1690
+ impl TypeInformation {
1691
+ const fn new() -> TypeInformation {
1692
+ TypeInformation {
1693
+ depth: 0,
1694
+ flat: FlatTypesStorage::new(),
1695
+ has_borrow: false,
1696
+ }
1697
+ }
1698
+
1699
+ const fn primitive(flat: FlatType) -> TypeInformation {
1700
+ let mut info = TypeInformation::new();
1701
+ info.depth = 1;
1702
+ info.flat.memory32[0] = flat;
1703
+ info.flat.memory64[0] = flat;
1704
+ info.flat.len = 1;
1705
+ info
1706
+ }
1707
+
1708
+ const fn string() -> TypeInformation {
1709
+ let mut info = TypeInformation::new();
1710
+ info.depth = 1;
1711
+ info.flat.memory32[0] = FlatType::I32;
1712
+ info.flat.memory32[1] = FlatType::I32;
1713
+ info.flat.memory64[0] = FlatType::I64;
1714
+ info.flat.memory64[1] = FlatType::I64;
1715
+ info.flat.len = 2;
1716
+ info
1717
+ }
1718
+
1719
+ /// Builds up all flat types internally using the specified representation
1720
+ /// for all of the component fields of the record.
1721
+ fn build_record<'a>(&mut self, types: impl Iterator<Item = &'a TypeInformation>) {
1722
+ self.depth = 1;
1723
+ for info in types {
1724
+ self.depth = self.depth.max(1 + info.depth);
1725
+ self.has_borrow = self.has_borrow || info.has_borrow;
1726
+ match info.flat.as_flat_types() {
1727
+ Some(types) => {
1728
+ for (t32, t64) in types.memory32.iter().zip(types.memory64) {
1729
+ if !self.flat.push(*t32, *t64) {
1730
+ break;
1731
+ }
1732
+ }
1733
+ }
1734
+ None => {
1735
+ self.flat.len = u8::try_from(MAX_FLAT_TYPES + 1).unwrap();
1736
+ }
1737
+ }
1738
+ }
1739
+ }
1740
+
1741
+ /// Builds up the flat types used to represent a `variant` which notably
1742
+ /// handles "join"ing types together so each case is representable as a
1743
+ /// single flat list of types.
1744
+ ///
1745
+ /// The iterator item is:
1746
+ ///
1747
+ /// * `None` - no payload for this case
1748
+ /// * `Some(None)` - this case has a payload but can't be represented with
1749
+ /// flat types
1750
+ /// * `Some(Some(types))` - this case has a payload and is represented with
1751
+ /// the types specified in the flat representation.
1752
+ fn build_variant<'a, I>(&mut self, cases: I)
1753
+ where
1754
+ I: IntoIterator<Item = Option<&'a TypeInformation>>,
1755
+ {
1756
+ let cases = cases.into_iter();
1757
+ self.flat.push(FlatType::I32, FlatType::I32);
1758
+ self.depth = 1;
1759
+
1760
+ for info in cases {
1761
+ let info = match info {
1762
+ Some(info) => info,
1763
+ // If this case doesn't have a payload then it doesn't change
1764
+ // the depth/flat representation
1765
+ None => continue,
1766
+ };
1767
+ self.depth = self.depth.max(1 + info.depth);
1768
+ self.has_borrow = self.has_borrow || info.has_borrow;
1769
+
1770
+ // If this variant is already unrepresentable in a flat
1771
+ // representation then this can be skipped.
1772
+ if usize::from(self.flat.len) > MAX_FLAT_TYPES {
1773
+ continue;
1774
+ }
1775
+
1776
+ let types = match info.flat.as_flat_types() {
1777
+ Some(types) => types,
1778
+ // If this case isn't representable with a flat list of types
1779
+ // then this variant also isn't representable.
1780
+ None => {
1781
+ self.flat.len = u8::try_from(MAX_FLAT_TYPES + 1).unwrap();
1782
+ continue;
1783
+ }
1784
+ };
1785
+ // If the case used all of the flat types then the discriminant
1786
+ // added for this variant means that this variant is no longer
1787
+ // representable.
1788
+ if types.memory32.len() >= MAX_FLAT_TYPES {
1789
+ self.flat.len = u8::try_from(MAX_FLAT_TYPES + 1).unwrap();
1790
+ continue;
1791
+ }
1792
+ let dst = self
1793
+ .flat
1794
+ .memory32
1795
+ .iter_mut()
1796
+ .zip(&mut self.flat.memory64)
1797
+ .skip(1);
1798
+ for (i, ((t32, t64), (dst32, dst64))) in types
1799
+ .memory32
1800
+ .iter()
1801
+ .zip(types.memory64)
1802
+ .zip(dst)
1803
+ .enumerate()
1804
+ {
1805
+ if i + 1 < usize::from(self.flat.len) {
1806
+ // If this index hs already been set by some previous case
1807
+ // then the types are joined together.
1808
+ dst32.join(*t32);
1809
+ dst64.join(*t64);
1810
+ } else {
1811
+ // Otherwise if this is the first time that the
1812
+ // representation has gotten this large then the destination
1813
+ // is simply whatever the type is. The length is also
1814
+ // increased here to indicate this.
1815
+ self.flat.len += 1;
1816
+ *dst32 = *t32;
1817
+ *dst64 = *t64;
1818
+ }
1819
+ }
1820
+ }
1821
+ }
1822
+
1823
+ fn records(&mut self, types: &ComponentTypesBuilder, ty: &TypeRecord) {
1824
+ self.build_record(ty.fields.iter().map(|f| types.type_information(&f.ty)));
1825
+ }
1826
+
1827
+ fn tuples(&mut self, types: &ComponentTypesBuilder, ty: &TypeTuple) {
1828
+ self.build_record(ty.types.iter().map(|t| types.type_information(t)));
1829
+ }
1830
+
1831
+ fn enums(&mut self, _types: &ComponentTypesBuilder, _ty: &TypeEnum) {
1832
+ self.depth = 1;
1833
+ self.flat.push(FlatType::I32, FlatType::I32);
1834
+ }
1835
+
1836
+ fn flags(&mut self, _types: &ComponentTypesBuilder, ty: &TypeFlags) {
1837
+ self.depth = 1;
1838
+ match FlagsSize::from_count(ty.names.len()) {
1839
+ FlagsSize::Size0 => {}
1840
+ FlagsSize::Size1 | FlagsSize::Size2 => {
1841
+ self.flat.push(FlatType::I32, FlatType::I32);
1842
+ }
1843
+ FlagsSize::Size4Plus(n) => {
1844
+ for _ in 0..n {
1845
+ self.flat.push(FlatType::I32, FlatType::I32);
1846
+ }
1847
+ }
1848
+ }
1849
+ }
1850
+
1851
+ fn variants(&mut self, types: &ComponentTypesBuilder, ty: &TypeVariant) {
1852
+ self.build_variant(
1853
+ ty.cases
1854
+ .iter()
1855
+ .map(|c| c.ty.as_ref().map(|ty| types.type_information(ty))),
1856
+ )
1857
+ }
1858
+
1859
+ fn results(&mut self, types: &ComponentTypesBuilder, ty: &TypeResult) {
1860
+ self.build_variant([
1861
+ ty.ok.as_ref().map(|ty| types.type_information(ty)),
1862
+ ty.err.as_ref().map(|ty| types.type_information(ty)),
1863
+ ])
1864
+ }
1865
+
1866
+ fn options(&mut self, types: &ComponentTypesBuilder, ty: &TypeOption) {
1867
+ self.build_variant([None, Some(types.type_information(&ty.ty))]);
1868
+ }
1869
+
1870
+ fn lists(&mut self, types: &ComponentTypesBuilder, ty: &TypeList) {
1871
+ *self = TypeInformation::string();
1872
+ let info = types.type_information(&ty.element);
1873
+ self.depth += info.depth;
1874
+ self.has_borrow = info.has_borrow;
1875
+ }
1876
+ }