wasmtime 16.0.0 → 17.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1115) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +103 -79
  3. data/ext/Cargo.toml +7 -6
  4. data/ext/cargo-vendor/cranelift-bforest-0.104.1/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.104.1/Cargo.toml +40 -0
  6. data/ext/cargo-vendor/cranelift-codegen-0.104.1/.cargo-checksum.json +1 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.104.1/Cargo.toml +175 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.104.1/build.rs +392 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/egraph/cost.rs +213 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/egraph/elaborate.rs +823 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/egraph.rs +704 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/isa/aarch64/inst.isle +4197 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/isa/aarch64/lower/isle.rs +882 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/isa/x64/abi.rs +1305 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/isle_prelude.rs +957 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/machinst/isle.rs +908 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/machinst/mod.rs +558 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/machinst/pcc.rs +159 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/README.md +87 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/arithmetic.isle +169 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/bitops.isle +188 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/cprop.isle +246 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/extends.isle +124 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/icmp.isle +197 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/selects.isle +77 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/shifts.isle +307 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts/spaceship.isle +194 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/opts.rs +265 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/prelude.isle +641 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/prelude_lower.isle +1073 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.104.1/src/prelude_opt.isle +134 -0
  32. data/ext/cargo-vendor/cranelift-codegen-meta-0.104.1/.cargo-checksum.json +1 -0
  33. data/ext/cargo-vendor/cranelift-codegen-meta-0.104.1/Cargo.toml +35 -0
  34. data/ext/cargo-vendor/cranelift-codegen-shared-0.104.1/.cargo-checksum.json +1 -0
  35. data/ext/cargo-vendor/cranelift-codegen-shared-0.104.1/Cargo.toml +22 -0
  36. data/ext/cargo-vendor/cranelift-control-0.104.1/.cargo-checksum.json +1 -0
  37. data/ext/cargo-vendor/cranelift-control-0.104.1/Cargo.toml +30 -0
  38. data/ext/cargo-vendor/cranelift-entity-0.104.1/.cargo-checksum.json +1 -0
  39. data/ext/cargo-vendor/cranelift-entity-0.104.1/Cargo.toml +50 -0
  40. data/ext/cargo-vendor/cranelift-entity-0.104.1/src/primary.rs +541 -0
  41. data/ext/cargo-vendor/cranelift-frontend-0.104.1/.cargo-checksum.json +1 -0
  42. data/ext/cargo-vendor/cranelift-frontend-0.104.1/Cargo.toml +68 -0
  43. data/ext/cargo-vendor/cranelift-isle-0.104.1/.cargo-checksum.json +1 -0
  44. data/ext/cargo-vendor/cranelift-isle-0.104.1/Cargo.toml +46 -0
  45. data/ext/cargo-vendor/cranelift-native-0.104.1/.cargo-checksum.json +1 -0
  46. data/ext/cargo-vendor/cranelift-native-0.104.1/Cargo.toml +43 -0
  47. data/ext/cargo-vendor/cranelift-wasm-0.104.1/.cargo-checksum.json +1 -0
  48. data/ext/cargo-vendor/cranelift-wasm-0.104.1/Cargo.toml +106 -0
  49. data/ext/cargo-vendor/cranelift-wasm-0.104.1/src/code_translator.rs +3646 -0
  50. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/.cargo-checksum.json +1 -0
  51. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/Cargo.toml +49 -0
  52. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/README.md +52 -0
  53. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/src/clocks.rs +56 -0
  54. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/src/lib.rs +24 -0
  55. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/src/noop_scheduler.rs +25 -0
  56. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/tests/clocks.rs +33 -0
  57. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/tests/common/mod.rs +33 -0
  58. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/tests/random.rs +17 -0
  59. data/ext/cargo-vendor/deterministic-wasi-ctx-0.1.18/tests/scheduler.rs +24 -0
  60. data/ext/cargo-vendor/rand_pcg-0.3.1/.cargo-checksum.json +1 -0
  61. data/ext/cargo-vendor/rand_pcg-0.3.1/CHANGELOG.md +37 -0
  62. data/ext/cargo-vendor/rand_pcg-0.3.1/COPYRIGHT +12 -0
  63. data/ext/cargo-vendor/rand_pcg-0.3.1/Cargo.toml +37 -0
  64. data/ext/cargo-vendor/rand_pcg-0.3.1/LICENSE-APACHE +201 -0
  65. data/ext/cargo-vendor/rand_pcg-0.3.1/LICENSE-MIT +26 -0
  66. data/ext/cargo-vendor/rand_pcg-0.3.1/README.md +42 -0
  67. data/ext/cargo-vendor/rand_pcg-0.3.1/src/lib.rs +45 -0
  68. data/ext/cargo-vendor/rand_pcg-0.3.1/src/pcg128.rs +296 -0
  69. data/ext/cargo-vendor/rand_pcg-0.3.1/src/pcg64.rs +166 -0
  70. data/ext/cargo-vendor/rand_pcg-0.3.1/tests/lcg128xsl64.rs +77 -0
  71. data/ext/cargo-vendor/rand_pcg-0.3.1/tests/lcg64xsh32.rs +70 -0
  72. data/ext/cargo-vendor/rand_pcg-0.3.1/tests/mcg128xsl64.rs +75 -0
  73. data/ext/cargo-vendor/wasi-cap-std-sync-17.0.1/.cargo-checksum.json +1 -0
  74. data/ext/cargo-vendor/wasi-cap-std-sync-17.0.1/Cargo.toml +102 -0
  75. data/ext/cargo-vendor/wasi-common-17.0.1/.cargo-checksum.json +1 -0
  76. data/ext/cargo-vendor/wasi-common-17.0.1/Cargo.toml +131 -0
  77. data/ext/cargo-vendor/wasi-common-17.0.1/src/error.rs +26 -0
  78. data/ext/cargo-vendor/wasi-common-17.0.1/src/snapshots/preview_1/error.rs +266 -0
  79. data/ext/cargo-vendor/wasmtime-17.0.1/.cargo-checksum.json +1 -0
  80. data/ext/cargo-vendor/wasmtime-17.0.1/Cargo.toml +211 -0
  81. data/ext/cargo-vendor/wasmtime-17.0.1/src/component/component.rs +545 -0
  82. data/ext/cargo-vendor/wasmtime-17.0.1/src/component/instance.rs +815 -0
  83. data/ext/cargo-vendor/wasmtime-17.0.1/src/component/linker.rs +580 -0
  84. data/ext/cargo-vendor/wasmtime-17.0.1/src/component/matching.rs +215 -0
  85. data/ext/cargo-vendor/wasmtime-17.0.1/src/component/mod.rs +351 -0
  86. data/ext/cargo-vendor/wasmtime-17.0.1/src/component/resource_table.rs +350 -0
  87. data/ext/cargo-vendor/wasmtime-17.0.1/src/component/resources.rs +823 -0
  88. data/ext/cargo-vendor/wasmtime-17.0.1/src/config.rs +2428 -0
  89. data/ext/cargo-vendor/wasmtime-17.0.1/src/func/typed.rs +638 -0
  90. data/ext/cargo-vendor/wasmtime-17.0.1/src/lib.rs +526 -0
  91. data/ext/cargo-vendor/wasmtime-17.0.1/src/store.rs +2389 -0
  92. data/ext/cargo-vendor/wasmtime-asm-macros-17.0.1/.cargo-checksum.json +1 -0
  93. data/ext/cargo-vendor/wasmtime-asm-macros-17.0.1/Cargo.toml +22 -0
  94. data/ext/cargo-vendor/wasmtime-cache-17.0.1/.cargo-checksum.json +1 -0
  95. data/ext/cargo-vendor/wasmtime-cache-17.0.1/Cargo.toml +81 -0
  96. data/ext/cargo-vendor/wasmtime-component-macro-17.0.1/.cargo-checksum.json +1 -0
  97. data/ext/cargo-vendor/wasmtime-component-macro-17.0.1/Cargo.toml +67 -0
  98. data/ext/cargo-vendor/wasmtime-component-macro-17.0.1/src/bindgen.rs +371 -0
  99. data/ext/cargo-vendor/wasmtime-component-macro-17.0.1/tests/codegen/multiversion/root.wit +8 -0
  100. data/ext/cargo-vendor/wasmtime-component-util-17.0.1/.cargo-checksum.json +1 -0
  101. data/ext/cargo-vendor/wasmtime-component-util-17.0.1/Cargo.toml +25 -0
  102. data/ext/cargo-vendor/wasmtime-cranelift-17.0.1/.cargo-checksum.json +1 -0
  103. data/ext/cargo-vendor/wasmtime-cranelift-17.0.1/Cargo.toml +112 -0
  104. data/ext/cargo-vendor/wasmtime-cranelift-shared-17.0.1/.cargo-checksum.json +1 -0
  105. data/ext/cargo-vendor/wasmtime-cranelift-shared-17.0.1/Cargo.toml +71 -0
  106. data/ext/cargo-vendor/wasmtime-environ-17.0.1/.cargo-checksum.json +1 -0
  107. data/ext/cargo-vendor/wasmtime-environ-17.0.1/Cargo.lock +726 -0
  108. data/ext/cargo-vendor/wasmtime-environ-17.0.1/Cargo.toml +125 -0
  109. data/ext/cargo-vendor/wasmtime-environ-17.0.1/examples/factc.rs +205 -0
  110. data/ext/cargo-vendor/wasmtime-fiber-17.0.1/.cargo-checksum.json +1 -0
  111. data/ext/cargo-vendor/wasmtime-fiber-17.0.1/Cargo.toml +63 -0
  112. data/ext/cargo-vendor/wasmtime-jit-17.0.1/.cargo-checksum.json +1 -0
  113. data/ext/cargo-vendor/wasmtime-jit-17.0.1/Cargo.toml +125 -0
  114. data/ext/cargo-vendor/wasmtime-jit-debug-17.0.1/.cargo-checksum.json +1 -0
  115. data/ext/cargo-vendor/wasmtime-jit-debug-17.0.1/Cargo.toml +67 -0
  116. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-17.0.1/.cargo-checksum.json +1 -0
  117. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-17.0.1/Cargo.toml +46 -0
  118. data/ext/cargo-vendor/wasmtime-runtime-17.0.1/.cargo-checksum.json +1 -0
  119. data/ext/cargo-vendor/wasmtime-runtime-17.0.1/Cargo.toml +139 -0
  120. data/ext/cargo-vendor/wasmtime-runtime-17.0.1/src/instance/allocator/pooling/memory_pool.rs +997 -0
  121. data/ext/cargo-vendor/wasmtime-runtime-17.0.1/src/instance/allocator/pooling.rs +658 -0
  122. data/ext/cargo-vendor/wasmtime-runtime-17.0.1/src/memory.rs +973 -0
  123. data/ext/cargo-vendor/wasmtime-runtime-17.0.1/src/parking_spot.rs +622 -0
  124. data/ext/cargo-vendor/wasmtime-runtime-17.0.1/src/sys/windows/mmap.rs +216 -0
  125. data/ext/cargo-vendor/wasmtime-types-17.0.1/.cargo-checksum.json +1 -0
  126. data/ext/cargo-vendor/wasmtime-types-17.0.1/Cargo.toml +36 -0
  127. data/ext/cargo-vendor/wasmtime-versioned-export-macros-17.0.1/.cargo-checksum.json +1 -0
  128. data/ext/cargo-vendor/wasmtime-versioned-export-macros-17.0.1/Cargo.toml +32 -0
  129. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/.cargo-checksum.json +1 -0
  130. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/Cargo.toml +261 -0
  131. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/ctx.rs +333 -0
  132. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/filesystem.rs +325 -0
  133. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/host/clocks.rs +103 -0
  134. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/host/filesystem.rs +1069 -0
  135. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/host/instance_network.rs +15 -0
  136. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/host/network.rs +625 -0
  137. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/host/tcp.rs +605 -0
  138. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/host/udp.rs +530 -0
  139. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/mod.rs +327 -0
  140. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/network.rs +108 -0
  141. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/poll.rs +175 -0
  142. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/preview1.rs +2362 -0
  143. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/stream.rs +181 -0
  144. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/tcp.rs +335 -0
  145. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/src/preview2/udp.rs +125 -0
  146. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/tests/all/api.rs +217 -0
  147. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/tests/all/async_.rs +364 -0
  148. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/tests/all/main.rs +112 -0
  149. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/tests/all/preview1.rs +243 -0
  150. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/tests/all/sync.rs +303 -0
  151. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/command-extended.wit +6 -0
  152. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/cli/command.wit +7 -0
  153. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/cli/imports.wit +20 -0
  154. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/cli/stdio.wit +17 -0
  155. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/cli/terminal.wit +49 -0
  156. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/clocks/monotonic-clock.wit +45 -0
  157. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/clocks/wall-clock.wit +42 -0
  158. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/clocks/world.wit +6 -0
  159. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/filesystem/preopens.wit +8 -0
  160. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/filesystem/types.wit +634 -0
  161. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/filesystem/world.wit +6 -0
  162. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/http/proxy.wit +32 -0
  163. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/http/types.wit +570 -0
  164. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/io/error.wit +34 -0
  165. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/io/poll.wit +41 -0
  166. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/io/streams.wit +251 -0
  167. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/io/world.wit +6 -0
  168. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/random/insecure-seed.wit +25 -0
  169. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/random/insecure.wit +22 -0
  170. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/random/random.wit +26 -0
  171. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/random/world.wit +7 -0
  172. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/sockets/ip-name-lookup.wit +51 -0
  173. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/sockets/network.wit +145 -0
  174. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/sockets/tcp-create-socket.wit +27 -0
  175. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/sockets/tcp.wit +309 -0
  176. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/sockets/udp-create-socket.wit +27 -0
  177. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/sockets/udp.wit +264 -0
  178. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/deps/sockets/world.wit +11 -0
  179. data/ext/cargo-vendor/wasmtime-wasi-17.0.1/wit/test.wit +22 -0
  180. data/ext/cargo-vendor/wasmtime-winch-17.0.1/.cargo-checksum.json +1 -0
  181. data/ext/cargo-vendor/wasmtime-winch-17.0.1/Cargo.toml +77 -0
  182. data/ext/cargo-vendor/wasmtime-wit-bindgen-17.0.1/.cargo-checksum.json +1 -0
  183. data/ext/cargo-vendor/wasmtime-wit-bindgen-17.0.1/Cargo.toml +41 -0
  184. data/ext/cargo-vendor/wasmtime-wit-bindgen-17.0.1/src/lib.rs +2097 -0
  185. data/ext/cargo-vendor/wasmtime-wmemcheck-17.0.1/.cargo-checksum.json +1 -0
  186. data/ext/cargo-vendor/wasmtime-wmemcheck-17.0.1/Cargo.toml +29 -0
  187. data/ext/cargo-vendor/wiggle-17.0.1/.cargo-checksum.json +1 -0
  188. data/ext/cargo-vendor/wiggle-17.0.1/Cargo.toml +115 -0
  189. data/ext/cargo-vendor/wiggle-generate-17.0.1/.cargo-checksum.json +1 -0
  190. data/ext/cargo-vendor/wiggle-generate-17.0.1/Cargo.toml +65 -0
  191. data/ext/cargo-vendor/wiggle-macro-17.0.1/.cargo-checksum.json +1 -0
  192. data/ext/cargo-vendor/wiggle-macro-17.0.1/Cargo.toml +55 -0
  193. data/ext/cargo-vendor/winch-codegen-0.15.1/.cargo-checksum.json +1 -0
  194. data/ext/cargo-vendor/winch-codegen-0.15.1/Cargo.toml +76 -0
  195. data/ext/cargo-vendor/winch-codegen-0.15.1/src/codegen/context.rs +553 -0
  196. data/ext/cargo-vendor/winch-codegen-0.15.1/src/codegen/env.rs +309 -0
  197. data/ext/cargo-vendor/winch-codegen-0.15.1/src/isa/aarch64/masm.rs +457 -0
  198. data/ext/cargo-vendor/winch-codegen-0.15.1/src/isa/x64/asm.rs +1149 -0
  199. data/ext/cargo-vendor/winch-codegen-0.15.1/src/isa/x64/masm.rs +1044 -0
  200. data/ext/cargo-vendor/winch-codegen-0.15.1/src/masm.rs +708 -0
  201. data/ext/cargo-vendor/winch-codegen-0.15.1/src/stack.rs +452 -0
  202. data/ext/cargo-vendor/winch-codegen-0.15.1/src/visitor.rs +1617 -0
  203. data/ext/src/helpers/mod.rs +4 -0
  204. data/ext/src/helpers/nogvl.rs +29 -0
  205. data/ext/src/helpers/tmplock.rs +45 -0
  206. data/ext/src/ruby_api/engine.rs +7 -3
  207. data/ext/src/ruby_api/mod.rs +3 -0
  208. data/ext/src/ruby_api/module.rs +22 -8
  209. data/ext/src/ruby_api/store.rs +66 -12
  210. data/ext/src/ruby_api/wasi_ctx.rs +110 -0
  211. data/ext/src/ruby_api/wasi_ctx_builder.rs +10 -7
  212. data/lib/wasmtime/version.rb +1 -1
  213. metadata +931 -904
  214. data/ext/cargo-vendor/cranelift-bforest-0.103.0/.cargo-checksum.json +0 -1
  215. data/ext/cargo-vendor/cranelift-bforest-0.103.0/Cargo.toml +0 -40
  216. data/ext/cargo-vendor/cranelift-codegen-0.103.0/.cargo-checksum.json +0 -1
  217. data/ext/cargo-vendor/cranelift-codegen-0.103.0/Cargo.toml +0 -175
  218. data/ext/cargo-vendor/cranelift-codegen-0.103.0/build.rs +0 -391
  219. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/cost.rs +0 -171
  220. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/elaborate.rs +0 -750
  221. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph.rs +0 -703
  222. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/aarch64/inst.isle +0 -4193
  223. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/aarch64/lower/isle.rs +0 -874
  224. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/abi.rs +0 -1300
  225. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isle_prelude.rs +0 -977
  226. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/machinst/isle.rs +0 -896
  227. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/machinst/mod.rs +0 -557
  228. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/machinst/pcc.rs +0 -160
  229. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/README.md +0 -5
  230. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/arithmetic.isle +0 -152
  231. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/bitops.isle +0 -198
  232. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/cprop.isle +0 -237
  233. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/extends.isle +0 -34
  234. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/icmp.isle +0 -199
  235. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/selects.isle +0 -76
  236. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/shifts.isle +0 -310
  237. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts.rs +0 -172
  238. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/prelude.isle +0 -649
  239. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/prelude_lower.isle +0 -1061
  240. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/prelude_opt.isle +0 -58
  241. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/.cargo-checksum.json +0 -1
  242. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/Cargo.toml +0 -35
  243. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/.cargo-checksum.json +0 -1
  244. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/Cargo.toml +0 -22
  245. data/ext/cargo-vendor/cranelift-control-0.103.0/.cargo-checksum.json +0 -1
  246. data/ext/cargo-vendor/cranelift-control-0.103.0/Cargo.toml +0 -30
  247. data/ext/cargo-vendor/cranelift-entity-0.103.0/.cargo-checksum.json +0 -1
  248. data/ext/cargo-vendor/cranelift-entity-0.103.0/Cargo.toml +0 -50
  249. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/primary.rs +0 -516
  250. data/ext/cargo-vendor/cranelift-frontend-0.103.0/.cargo-checksum.json +0 -1
  251. data/ext/cargo-vendor/cranelift-frontend-0.103.0/Cargo.toml +0 -68
  252. data/ext/cargo-vendor/cranelift-isle-0.103.0/.cargo-checksum.json +0 -1
  253. data/ext/cargo-vendor/cranelift-isle-0.103.0/Cargo.toml +0 -46
  254. data/ext/cargo-vendor/cranelift-native-0.103.0/.cargo-checksum.json +0 -1
  255. data/ext/cargo-vendor/cranelift-native-0.103.0/Cargo.toml +0 -43
  256. data/ext/cargo-vendor/cranelift-wasm-0.103.0/.cargo-checksum.json +0 -1
  257. data/ext/cargo-vendor/cranelift-wasm-0.103.0/Cargo.toml +0 -106
  258. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/code_translator.rs +0 -3646
  259. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/.cargo-checksum.json +0 -1
  260. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/Cargo.toml +0 -102
  261. data/ext/cargo-vendor/wasi-common-16.0.0/.cargo-checksum.json +0 -1
  262. data/ext/cargo-vendor/wasi-common-16.0.0/Cargo.toml +0 -131
  263. data/ext/cargo-vendor/wasi-common-16.0.0/src/error.rs +0 -26
  264. data/ext/cargo-vendor/wasi-common-16.0.0/src/snapshots/preview_1/error.rs +0 -265
  265. data/ext/cargo-vendor/wasmtime-16.0.0/.cargo-checksum.json +0 -1
  266. data/ext/cargo-vendor/wasmtime-16.0.0/Cargo.toml +0 -211
  267. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/component.rs +0 -505
  268. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/instance.rs +0 -797
  269. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/linker.rs +0 -523
  270. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/matching.rs +0 -215
  271. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/mod.rs +0 -349
  272. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/resources.rs +0 -725
  273. data/ext/cargo-vendor/wasmtime-16.0.0/src/config.rs +0 -2422
  274. data/ext/cargo-vendor/wasmtime-16.0.0/src/func/typed.rs +0 -638
  275. data/ext/cargo-vendor/wasmtime-16.0.0/src/lib.rs +0 -520
  276. data/ext/cargo-vendor/wasmtime-16.0.0/src/store.rs +0 -2388
  277. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/.cargo-checksum.json +0 -1
  278. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/Cargo.toml +0 -22
  279. data/ext/cargo-vendor/wasmtime-cache-16.0.0/.cargo-checksum.json +0 -1
  280. data/ext/cargo-vendor/wasmtime-cache-16.0.0/Cargo.toml +0 -81
  281. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/.cargo-checksum.json +0 -1
  282. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/Cargo.toml +0 -67
  283. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/src/bindgen.rs +0 -371
  284. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/tests/codegen/multiversion/root.wit +0 -7
  285. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/.cargo-checksum.json +0 -1
  286. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/Cargo.toml +0 -25
  287. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/.cargo-checksum.json +0 -1
  288. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/Cargo.toml +0 -112
  289. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/.cargo-checksum.json +0 -1
  290. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/Cargo.toml +0 -71
  291. data/ext/cargo-vendor/wasmtime-environ-16.0.0/.cargo-checksum.json +0 -1
  292. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.lock +0 -660
  293. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.toml +0 -125
  294. data/ext/cargo-vendor/wasmtime-environ-16.0.0/examples/factc.rs +0 -205
  295. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/.cargo-checksum.json +0 -1
  296. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/Cargo.toml +0 -63
  297. data/ext/cargo-vendor/wasmtime-jit-16.0.0/.cargo-checksum.json +0 -1
  298. data/ext/cargo-vendor/wasmtime-jit-16.0.0/Cargo.toml +0 -125
  299. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/.cargo-checksum.json +0 -1
  300. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/Cargo.toml +0 -67
  301. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/.cargo-checksum.json +0 -1
  302. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/Cargo.toml +0 -46
  303. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/.cargo-checksum.json +0 -1
  304. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/Cargo.toml +0 -139
  305. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/memory_pool.rs +0 -1005
  306. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling.rs +0 -698
  307. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/memory.rs +0 -968
  308. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/parking_spot.rs +0 -520
  309. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/mmap.rs +0 -211
  310. data/ext/cargo-vendor/wasmtime-types-16.0.0/.cargo-checksum.json +0 -1
  311. data/ext/cargo-vendor/wasmtime-types-16.0.0/Cargo.toml +0 -36
  312. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/.cargo-checksum.json +0 -1
  313. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/Cargo.toml +0 -32
  314. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/.cargo-checksum.json +0 -1
  315. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/Cargo.toml +0 -261
  316. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/ctx.rs +0 -325
  317. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/filesystem.rs +0 -326
  318. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/clocks.rs +0 -103
  319. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/filesystem.rs +0 -1069
  320. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/instance_network.rs +0 -15
  321. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/network.rs +0 -570
  322. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/tcp.rs +0 -632
  323. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/udp.rs +0 -550
  324. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/mod.rs +0 -328
  325. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/network.rs +0 -57
  326. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/poll.rs +0 -175
  327. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview1.rs +0 -2348
  328. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stream.rs +0 -182
  329. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/table.rs +0 -337
  330. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/tcp.rs +0 -338
  331. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/udp.rs +0 -118
  332. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/api.rs +0 -218
  333. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/async_.rs +0 -360
  334. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/main.rs +0 -113
  335. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/preview1.rs +0 -239
  336. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/sync.rs +0 -299
  337. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/command-extended.wit +0 -6
  338. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/command.wit +0 -7
  339. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/imports.wit +0 -20
  340. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/stdio.wit +0 -17
  341. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/terminal.wit +0 -47
  342. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/clocks/monotonic-clock.wit +0 -45
  343. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/clocks/wall-clock.wit +0 -42
  344. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/clocks/world.wit +0 -6
  345. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/filesystem/preopens.wit +0 -8
  346. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/filesystem/types.wit +0 -634
  347. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/filesystem/world.wit +0 -6
  348. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/proxy.wit +0 -32
  349. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/types.wit +0 -570
  350. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/io/error.wit +0 -34
  351. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/io/poll.wit +0 -41
  352. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/io/streams.wit +0 -251
  353. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/io/world.wit +0 -6
  354. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/random/insecure-seed.wit +0 -25
  355. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/random/insecure.wit +0 -22
  356. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/random/random.wit +0 -26
  357. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/random/world.wit +0 -7
  358. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/sockets/ip-name-lookup.wit +0 -51
  359. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/sockets/network.wit +0 -147
  360. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/sockets/tcp-create-socket.wit +0 -26
  361. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/sockets/tcp.wit +0 -321
  362. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/sockets/udp-create-socket.wit +0 -26
  363. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/sockets/udp.wit +0 -277
  364. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/sockets/world.wit +0 -11
  365. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/test.wit +0 -22
  366. data/ext/cargo-vendor/wasmtime-winch-16.0.0/.cargo-checksum.json +0 -1
  367. data/ext/cargo-vendor/wasmtime-winch-16.0.0/Cargo.toml +0 -77
  368. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/.cargo-checksum.json +0 -1
  369. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/Cargo.toml +0 -41
  370. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/src/lib.rs +0 -2095
  371. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/.cargo-checksum.json +0 -1
  372. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/Cargo.toml +0 -29
  373. data/ext/cargo-vendor/wiggle-16.0.0/.cargo-checksum.json +0 -1
  374. data/ext/cargo-vendor/wiggle-16.0.0/Cargo.toml +0 -115
  375. data/ext/cargo-vendor/wiggle-generate-16.0.0/.cargo-checksum.json +0 -1
  376. data/ext/cargo-vendor/wiggle-generate-16.0.0/Cargo.toml +0 -65
  377. data/ext/cargo-vendor/wiggle-macro-16.0.0/.cargo-checksum.json +0 -1
  378. data/ext/cargo-vendor/wiggle-macro-16.0.0/Cargo.toml +0 -55
  379. data/ext/cargo-vendor/winch-codegen-0.14.0/.cargo-checksum.json +0 -1
  380. data/ext/cargo-vendor/winch-codegen-0.14.0/Cargo.toml +0 -76
  381. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/context.rs +0 -545
  382. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/env.rs +0 -251
  383. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/masm.rs +0 -444
  384. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/asm.rs +0 -1117
  385. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/masm.rs +0 -994
  386. data/ext/cargo-vendor/winch-codegen-0.14.0/src/masm.rs +0 -679
  387. data/ext/cargo-vendor/winch-codegen-0.14.0/src/stack.rs +0 -436
  388. data/ext/cargo-vendor/winch-codegen-0.14.0/src/visitor.rs +0 -1383
  389. /data/ext/cargo-vendor/{cranelift-bforest-0.103.0 → cranelift-bforest-0.104.1}/LICENSE +0 -0
  390. /data/ext/cargo-vendor/{cranelift-bforest-0.103.0 → cranelift-bforest-0.104.1}/README.md +0 -0
  391. /data/ext/cargo-vendor/{cranelift-bforest-0.103.0 → cranelift-bforest-0.104.1}/src/lib.rs +0 -0
  392. /data/ext/cargo-vendor/{cranelift-bforest-0.103.0 → cranelift-bforest-0.104.1}/src/map.rs +0 -0
  393. /data/ext/cargo-vendor/{cranelift-bforest-0.103.0 → cranelift-bforest-0.104.1}/src/node.rs +0 -0
  394. /data/ext/cargo-vendor/{cranelift-bforest-0.103.0 → cranelift-bforest-0.104.1}/src/path.rs +0 -0
  395. /data/ext/cargo-vendor/{cranelift-bforest-0.103.0 → cranelift-bforest-0.104.1}/src/pool.rs +0 -0
  396. /data/ext/cargo-vendor/{cranelift-bforest-0.103.0 → cranelift-bforest-0.104.1}/src/set.rs +0 -0
  397. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/LICENSE +0 -0
  398. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/README.md +0 -0
  399. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/benches/x64-evex-encoding.rs +0 -0
  400. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/alias_analysis.rs +0 -0
  401. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/binemit/mod.rs +0 -0
  402. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/binemit/stack_map.rs +0 -0
  403. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/bitset.rs +0 -0
  404. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/cfg_printer.rs +0 -0
  405. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/constant_hash.rs +0 -0
  406. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/context.rs +0 -0
  407. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ctxhash.rs +0 -0
  408. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/cursor.rs +0 -0
  409. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/data_value.rs +0 -0
  410. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/dbg.rs +0 -0
  411. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/dce.rs +0 -0
  412. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/dominator_tree.rs +0 -0
  413. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/egraph/domtree.rs +0 -0
  414. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/flowgraph.rs +0 -0
  415. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/fx.rs +0 -0
  416. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/incremental_cache.rs +0 -0
  417. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/inst_predicates.rs +0 -0
  418. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/atomic_rmw_op.rs +0 -0
  419. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/builder.rs +0 -0
  420. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/condcodes.rs +0 -0
  421. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/constant.rs +0 -0
  422. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/dfg.rs +0 -0
  423. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/dynamic_type.rs +0 -0
  424. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/entities.rs +0 -0
  425. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/extfunc.rs +0 -0
  426. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/extname.rs +0 -0
  427. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/function.rs +0 -0
  428. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/globalvalue.rs +0 -0
  429. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/immediates.rs +0 -0
  430. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/instructions.rs +0 -0
  431. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/jumptable.rs +0 -0
  432. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/known_symbol.rs +0 -0
  433. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/layout.rs +0 -0
  434. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/libcall.rs +0 -0
  435. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/memflags.rs +0 -0
  436. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/memtype.rs +0 -0
  437. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/mod.rs +0 -0
  438. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/pcc.rs +0 -0
  439. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/progpoint.rs +0 -0
  440. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/sourceloc.rs +0 -0
  441. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/stackslot.rs +0 -0
  442. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/table.rs +0 -0
  443. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/trapcode.rs +0 -0
  444. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/ir/types.rs +0 -0
  445. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/abi.rs +0 -0
  446. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst/args.rs +0 -0
  447. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst/emit.rs +0 -0
  448. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  449. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst/imms.rs +0 -0
  450. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst/mod.rs +0 -0
  451. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst/regs.rs +0 -0
  452. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  453. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst/unwind.rs +0 -0
  454. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/inst_neon.isle +0 -0
  455. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  456. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/lower.isle +0 -0
  457. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/lower.rs +0 -0
  458. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  459. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/mod.rs +0 -0
  460. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/pcc.rs +0 -0
  461. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/aarch64/settings.rs +0 -0
  462. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/call_conv.rs +0 -0
  463. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/mod.rs +0 -0
  464. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/abi.rs +0 -0
  465. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/args.rs +0 -0
  466. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/emit.rs +0 -0
  467. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  468. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/encode.rs +0 -0
  469. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/imms.rs +0 -0
  470. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/mod.rs +0 -0
  471. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/regs.rs +0 -0
  472. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  473. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/unwind.rs +0 -0
  474. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst/vector.rs +0 -0
  475. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst.isle +0 -0
  476. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/inst_vector.isle +0 -0
  477. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  478. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/lower/isle.rs +0 -0
  479. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/lower.isle +0 -0
  480. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/lower.rs +0 -0
  481. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/mod.rs +0 -0
  482. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/riscv64/settings.rs +0 -0
  483. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/abi.rs +0 -0
  484. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst/args.rs +0 -0
  485. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst/emit.rs +0 -0
  486. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst/emit_tests.rs +0 -0
  487. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst/imms.rs +0 -0
  488. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst/mod.rs +0 -0
  489. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst/regs.rs +0 -0
  490. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  491. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst/unwind.rs +0 -0
  492. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/inst.isle +0 -0
  493. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  494. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/lower/isle.rs +0 -0
  495. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/lower.isle +0 -0
  496. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/lower.rs +0 -0
  497. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/mod.rs +0 -0
  498. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/s390x/settings.rs +0 -0
  499. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/unwind/systemv.rs +0 -0
  500. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/unwind/winx64.rs +0 -0
  501. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/unwind.rs +0 -0
  502. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/encoding/evex.rs +0 -0
  503. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/encoding/mod.rs +0 -0
  504. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/encoding/rex.rs +0 -0
  505. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/encoding/vex.rs +0 -0
  506. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/args.rs +0 -0
  507. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/emit.rs +0 -0
  508. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/emit_state.rs +0 -0
  509. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/emit_tests.rs +0 -0
  510. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/mod.rs +0 -0
  511. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/regs.rs +0 -0
  512. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  513. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  514. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst/unwind.rs +0 -0
  515. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/inst.isle +0 -0
  516. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  517. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/lower/isle.rs +0 -0
  518. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/lower.isle +0 -0
  519. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/lower.rs +0 -0
  520. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/mod.rs +0 -0
  521. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/pcc.rs +0 -0
  522. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/isa/x64/settings.rs +0 -0
  523. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/iterators.rs +0 -0
  524. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/legalizer/globalvalue.rs +0 -0
  525. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/legalizer/mod.rs +0 -0
  526. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/legalizer/table.rs +0 -0
  527. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/lib.rs +0 -0
  528. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/loop_analysis.rs +0 -0
  529. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/abi.rs +0 -0
  530. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/blockorder.rs +0 -0
  531. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/buffer.rs +0 -0
  532. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/compile.rs +0 -0
  533. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/helpers.rs +0 -0
  534. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/inst_common.rs +0 -0
  535. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/lower.rs +0 -0
  536. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/reg.rs +0 -0
  537. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/valueregs.rs +0 -0
  538. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/machinst/vcode.rs +0 -0
  539. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/nan_canonicalization.rs +0 -0
  540. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/opts/generated_code.rs +0 -0
  541. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/opts/remat.isle +0 -0
  542. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/opts/vector.isle +0 -0
  543. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/print_errors.rs +0 -0
  544. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/remove_constant_phis.rs +0 -0
  545. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/result.rs +0 -0
  546. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/scoped_hash_map.rs +0 -0
  547. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/settings.rs +0 -0
  548. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/souper_harvest.rs +0 -0
  549. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/timing.rs +0 -0
  550. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/unionfind.rs +0 -0
  551. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/unreachable_code.rs +0 -0
  552. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/value_label.rs +0 -0
  553. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/verifier/mod.rs +0 -0
  554. /data/ext/cargo-vendor/{cranelift-codegen-0.103.0 → cranelift-codegen-0.104.1}/src/write.rs +0 -0
  555. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/LICENSE +0 -0
  556. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/README.md +0 -0
  557. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/cdsl/formats.rs +0 -0
  558. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/cdsl/instructions.rs +0 -0
  559. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/cdsl/isa.rs +0 -0
  560. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/cdsl/mod.rs +0 -0
  561. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/cdsl/operands.rs +0 -0
  562. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/cdsl/settings.rs +0 -0
  563. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/cdsl/types.rs +0 -0
  564. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/cdsl/typevar.rs +0 -0
  565. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/constant_hash.rs +0 -0
  566. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/error.rs +0 -0
  567. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/gen_inst.rs +0 -0
  568. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/gen_settings.rs +0 -0
  569. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/gen_types.rs +0 -0
  570. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/isa/arm64.rs +0 -0
  571. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/isa/mod.rs +0 -0
  572. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/isa/riscv64.rs +0 -0
  573. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/isa/s390x.rs +0 -0
  574. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/isa/x86.rs +0 -0
  575. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/lib.rs +0 -0
  576. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/shared/entities.rs +0 -0
  577. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/shared/formats.rs +0 -0
  578. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/shared/immediates.rs +0 -0
  579. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/shared/instructions.rs +0 -0
  580. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/shared/mod.rs +0 -0
  581. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/shared/settings.rs +0 -0
  582. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/shared/types.rs +0 -0
  583. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/srcgen.rs +0 -0
  584. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.103.0 → cranelift-codegen-meta-0.104.1}/src/unique_table.rs +0 -0
  585. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.103.0 → cranelift-codegen-shared-0.104.1}/LICENSE +0 -0
  586. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.103.0 → cranelift-codegen-shared-0.104.1}/README.md +0 -0
  587. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.103.0 → cranelift-codegen-shared-0.104.1}/src/constant_hash.rs +0 -0
  588. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.103.0 → cranelift-codegen-shared-0.104.1}/src/constants.rs +0 -0
  589. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.103.0 → cranelift-codegen-shared-0.104.1}/src/lib.rs +0 -0
  590. /data/ext/cargo-vendor/{cranelift-control-0.103.0 → cranelift-control-0.104.1}/LICENSE +0 -0
  591. /data/ext/cargo-vendor/{cranelift-control-0.103.0 → cranelift-control-0.104.1}/README.md +0 -0
  592. /data/ext/cargo-vendor/{cranelift-control-0.103.0 → cranelift-control-0.104.1}/src/chaos.rs +0 -0
  593. /data/ext/cargo-vendor/{cranelift-control-0.103.0 → cranelift-control-0.104.1}/src/lib.rs +0 -0
  594. /data/ext/cargo-vendor/{cranelift-control-0.103.0 → cranelift-control-0.104.1}/src/zero_sized.rs +0 -0
  595. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/LICENSE +0 -0
  596. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/README.md +0 -0
  597. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/boxed_slice.rs +0 -0
  598. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/iter.rs +0 -0
  599. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/keys.rs +0 -0
  600. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/lib.rs +0 -0
  601. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/list.rs +0 -0
  602. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/map.rs +0 -0
  603. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/packed_option.rs +0 -0
  604. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/set.rs +0 -0
  605. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/sparse.rs +0 -0
  606. /data/ext/cargo-vendor/{cranelift-entity-0.103.0 → cranelift-entity-0.104.1}/src/unsigned.rs +0 -0
  607. /data/ext/cargo-vendor/{cranelift-frontend-0.103.0 → cranelift-frontend-0.104.1}/LICENSE +0 -0
  608. /data/ext/cargo-vendor/{cranelift-frontend-0.103.0 → cranelift-frontend-0.104.1}/README.md +0 -0
  609. /data/ext/cargo-vendor/{cranelift-frontend-0.103.0 → cranelift-frontend-0.104.1}/src/frontend.rs +0 -0
  610. /data/ext/cargo-vendor/{cranelift-frontend-0.103.0 → cranelift-frontend-0.104.1}/src/lib.rs +0 -0
  611. /data/ext/cargo-vendor/{cranelift-frontend-0.103.0 → cranelift-frontend-0.104.1}/src/ssa.rs +0 -0
  612. /data/ext/cargo-vendor/{cranelift-frontend-0.103.0 → cranelift-frontend-0.104.1}/src/switch.rs +0 -0
  613. /data/ext/cargo-vendor/{cranelift-frontend-0.103.0 → cranelift-frontend-0.104.1}/src/variable.rs +0 -0
  614. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/README.md +0 -0
  615. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/build.rs +0 -0
  616. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/bad_converters.isle +0 -0
  617. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  618. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  619. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/error1.isle +0 -0
  620. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/extra_parens.isle +0 -0
  621. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/impure_expression.isle +0 -0
  622. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/impure_rhs.isle +0 -0
  623. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/multi_internal_etor.isle +0 -0
  624. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/fail/multi_prio.isle +0 -0
  625. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/borrows.isle +0 -0
  626. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/borrows_main.rs +0 -0
  627. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/iflets.isle +0 -0
  628. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/iflets_main.rs +0 -0
  629. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/multi_constructor.isle +0 -0
  630. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/multi_constructor_main.rs +0 -0
  631. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/multi_extractor.isle +0 -0
  632. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/multi_extractor_main.rs +0 -0
  633. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/test.isle +0 -0
  634. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/link/test_main.rs +0 -0
  635. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/bound_var.isle +0 -0
  636. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/construct_and_extract.isle +0 -0
  637. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/conversions.isle +0 -0
  638. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/conversions_extern.isle +0 -0
  639. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/let.isle +0 -0
  640. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/nodebug.isle +0 -0
  641. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/prio_trie_bug.isle +0 -0
  642. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/test2.isle +0 -0
  643. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/test3.isle +0 -0
  644. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/test4.isle +0 -0
  645. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/pass/tutorial.isle +0 -0
  646. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/run/iconst.isle +0 -0
  647. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/run/iconst_main.rs +0 -0
  648. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/run/let_shadowing.isle +0 -0
  649. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/isle_examples/run/let_shadowing_main.rs +0 -0
  650. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/ast.rs +0 -0
  651. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/codegen.rs +0 -0
  652. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/compile.rs +0 -0
  653. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/error.rs +0 -0
  654. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/lexer.rs +0 -0
  655. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/lib.rs +0 -0
  656. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/log.rs +0 -0
  657. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/overlap.rs +0 -0
  658. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/parser.rs +0 -0
  659. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/sema.rs +0 -0
  660. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/serialize.rs +0 -0
  661. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/src/trie_again.rs +0 -0
  662. /data/ext/cargo-vendor/{cranelift-isle-0.103.0 → cranelift-isle-0.104.1}/tests/run_tests.rs +0 -0
  663. /data/ext/cargo-vendor/{cranelift-native-0.103.0 → cranelift-native-0.104.1}/LICENSE +0 -0
  664. /data/ext/cargo-vendor/{cranelift-native-0.103.0 → cranelift-native-0.104.1}/README.md +0 -0
  665. /data/ext/cargo-vendor/{cranelift-native-0.103.0 → cranelift-native-0.104.1}/src/lib.rs +0 -0
  666. /data/ext/cargo-vendor/{cranelift-native-0.103.0 → cranelift-native-0.104.1}/src/riscv.rs +0 -0
  667. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/LICENSE +0 -0
  668. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/README.md +0 -0
  669. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/code_translator/bounds_checks.rs +0 -0
  670. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/environ/dummy.rs +0 -0
  671. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/environ/mod.rs +0 -0
  672. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/environ/spec.rs +0 -0
  673. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/func_translator.rs +0 -0
  674. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/heap.rs +0 -0
  675. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/lib.rs +0 -0
  676. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/module_translator.rs +0 -0
  677. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/sections_translator.rs +0 -0
  678. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/state.rs +0 -0
  679. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/src/translation_utils.rs +0 -0
  680. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/tests/wasm_testsuite.rs +0 -0
  681. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/arith.wat +0 -0
  682. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/br_table.wat +0 -0
  683. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/call-simd.wat +0 -0
  684. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/call.wat +0 -0
  685. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/embenchen_fannkuch.wat +0 -0
  686. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/embenchen_fasta.wat +0 -0
  687. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/embenchen_ifs.wat +0 -0
  688. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/embenchen_primes.wat +0 -0
  689. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/fac-multi-value.wat +0 -0
  690. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/fibonacci.wat +0 -0
  691. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/globals.wat +0 -0
  692. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/icall-simd.wat +0 -0
  693. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/icall.wat +0 -0
  694. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-reachability-translation-0.wat +0 -0
  695. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-reachability-translation-1.wat +0 -0
  696. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-reachability-translation-2.wat +0 -0
  697. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-reachability-translation-3.wat +0 -0
  698. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-reachability-translation-4.wat +0 -0
  699. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-reachability-translation-5.wat +0 -0
  700. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-reachability-translation-6.wat +0 -0
  701. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-unreachable-else-params-2.wat +0 -0
  702. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/if-unreachable-else-params.wat +0 -0
  703. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  704. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/memory.wat +0 -0
  705. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-0.wat +0 -0
  706. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-1.wat +0 -0
  707. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-10.wat +0 -0
  708. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-11.wat +0 -0
  709. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-12.wat +0 -0
  710. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-13.wat +0 -0
  711. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-14.wat +0 -0
  712. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-15.wat +0 -0
  713. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-16.wat +0 -0
  714. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-17.wat +0 -0
  715. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-2.wat +0 -0
  716. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-3.wat +0 -0
  717. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-4.wat +0 -0
  718. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-5.wat +0 -0
  719. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-6.wat +0 -0
  720. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-7.wat +0 -0
  721. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-8.wat +0 -0
  722. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/multi-9.wat +0 -0
  723. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/nullref.wat +0 -0
  724. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/passive-data.wat +0 -0
  725. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/pr2303.wat +0 -0
  726. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/pr2559.wat +0 -0
  727. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/ref-func-0.wat +0 -0
  728. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/rust_fannkuch.wat +0 -0
  729. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/select.wat +0 -0
  730. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/simd-store.wat +0 -0
  731. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/simd.wat +0 -0
  732. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/table-copy.wat +0 -0
  733. /data/ext/cargo-vendor/{cranelift-wasm-0.103.0 → cranelift-wasm-0.104.1}/wasmtests/unreachable_code.wat +0 -0
  734. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/LICENSE +0 -0
  735. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/README.md +0 -0
  736. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/clocks.rs +0 -0
  737. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/dir.rs +0 -0
  738. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/file.rs +0 -0
  739. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/lib.rs +0 -0
  740. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/net.rs +0 -0
  741. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/sched/unix.rs +0 -0
  742. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/sched/windows.rs +0 -0
  743. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/sched.rs +0 -0
  744. /data/ext/cargo-vendor/{wasi-cap-std-sync-16.0.0 → wasi-cap-std-sync-17.0.1}/src/stdio.rs +0 -0
  745. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/LICENSE +0 -0
  746. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/README.md +0 -0
  747. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/README.md +0 -0
  748. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/docs/README.md +0 -0
  749. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/README.md +0 -0
  750. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/docs.md +0 -0
  751. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  752. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  753. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  754. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  755. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  756. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  757. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  758. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  759. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  760. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  761. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  762. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/old/snapshot_0/docs.md +0 -0
  763. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  764. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  765. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/snapshot/docs.html +0 -0
  766. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/snapshot/docs.md +0 -0
  767. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  768. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  769. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/proposal-template/README.md +0 -0
  770. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/proposals/README.md +0 -0
  771. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/snapshots/README.md +0 -0
  772. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/WASI/standard/README.md +0 -0
  773. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/build.rs +0 -0
  774. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/clocks.rs +0 -0
  775. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/ctx.rs +0 -0
  776. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/dir.rs +0 -0
  777. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/file.rs +0 -0
  778. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/lib.rs +0 -0
  779. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/pipe.rs +0 -0
  780. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/random.rs +0 -0
  781. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/sched/subscription.rs +0 -0
  782. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/sched.rs +0 -0
  783. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/snapshots/mod.rs +0 -0
  784. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/snapshots/preview_0.rs +0 -0
  785. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/snapshots/preview_1.rs +0 -0
  786. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/string_array.rs +0 -0
  787. /data/ext/cargo-vendor/{wasi-common-16.0.0 → wasi-common-17.0.1}/src/table.rs +0 -0
  788. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/LICENSE +0 -0
  789. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/README.md +0 -0
  790. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/code.rs +0 -0
  791. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/compiler.rs +0 -0
  792. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/component/func/host.rs +0 -0
  793. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/component/func/options.rs +0 -0
  794. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/component/func/typed.rs +0 -0
  795. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/component/func.rs +0 -0
  796. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/component/storage.rs +0 -0
  797. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/component/store.rs +0 -0
  798. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/component/types.rs +0 -0
  799. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/component/values.rs +0 -0
  800. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/coredump.rs +0 -0
  801. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/engine/serialization.rs +0 -0
  802. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/engine.rs +0 -0
  803. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/externals/global.rs +0 -0
  804. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/externals/table.rs +0 -0
  805. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/externals.rs +0 -0
  806. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/func.rs +0 -0
  807. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/instance.rs +0 -0
  808. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/limits.rs +0 -0
  809. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/linker.rs +0 -0
  810. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/memory.rs +0 -0
  811. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/module/registry.rs +0 -0
  812. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/module.rs +0 -0
  813. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/profiling.rs +0 -0
  814. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/ref.rs +0 -0
  815. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/resources.rs +0 -0
  816. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/signatures.rs +0 -0
  817. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/stack.rs +0 -0
  818. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/store/context.rs +0 -0
  819. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/store/data.rs +0 -0
  820. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/store/func_refs.rs +0 -0
  821. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/trampoline/func.rs +0 -0
  822. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/trampoline/global.rs +0 -0
  823. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/trampoline/memory.rs +0 -0
  824. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/trampoline/table.rs +0 -0
  825. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/trampoline.rs +0 -0
  826. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/trap.rs +0 -0
  827. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/types/matching.rs +0 -0
  828. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/types.rs +0 -0
  829. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/unix.rs +0 -0
  830. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/v128.rs +0 -0
  831. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/values.rs +0 -0
  832. /data/ext/cargo-vendor/{wasmtime-16.0.0 → wasmtime-17.0.1}/src/windows.rs +0 -0
  833. /data/ext/cargo-vendor/{wasmtime-asm-macros-16.0.0 → wasmtime-asm-macros-17.0.1}/src/lib.rs +0 -0
  834. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/LICENSE +0 -0
  835. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/build.rs +0 -0
  836. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/src/config/tests.rs +0 -0
  837. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/src/config.rs +0 -0
  838. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/src/lib.rs +0 -0
  839. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/src/tests.rs +0 -0
  840. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/src/worker/tests/system_time_stub.rs +0 -0
  841. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/src/worker/tests.rs +0 -0
  842. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/src/worker.rs +0 -0
  843. /data/ext/cargo-vendor/{wasmtime-cache-16.0.0 → wasmtime-cache-17.0.1}/tests/cache_write_default_config.rs +0 -0
  844. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/src/component.rs +0 -0
  845. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/src/lib.rs +0 -0
  846. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/char.wit +0 -0
  847. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/conventions.wit +0 -0
  848. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/direct-import.wit +0 -0
  849. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/empty.wit +0 -0
  850. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/flags.wit +0 -0
  851. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/floats.wit +0 -0
  852. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/function-new.wit +0 -0
  853. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/integers.wit +0 -0
  854. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/lists.wit +0 -0
  855. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/many-arguments.wit +0 -0
  856. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/multi-return.wit +0 -0
  857. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  858. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  859. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/records.wit +0 -0
  860. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/rename.wit +0 -0
  861. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/resources-export.wit +0 -0
  862. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/resources-import.wit +0 -0
  863. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/share-types.wit +0 -0
  864. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/simple-functions.wit +0 -0
  865. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/simple-lists.wit +0 -0
  866. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/simple-wasi.wit +0 -0
  867. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/small-anonymous.wit +0 -0
  868. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/smoke-default.wit +0 -0
  869. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/smoke-export.wit +0 -0
  870. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/smoke.wit +0 -0
  871. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/strings.wit +0 -0
  872. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/use-paths.wit +0 -0
  873. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/variants.wit +0 -0
  874. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen/worlds-with-types.wit +0 -0
  875. /data/ext/cargo-vendor/{wasmtime-component-macro-16.0.0 → wasmtime-component-macro-17.0.1}/tests/codegen.rs +0 -0
  876. /data/ext/cargo-vendor/{wasmtime-component-util-16.0.0 → wasmtime-component-util-17.0.1}/src/lib.rs +0 -0
  877. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/LICENSE +0 -0
  878. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/SECURITY.md +0 -0
  879. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/builder.rs +0 -0
  880. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/compiler/component.rs +0 -0
  881. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/compiler.rs +0 -0
  882. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/gc.rs +0 -0
  883. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/address_transform.rs +0 -0
  884. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/attr.rs +0 -0
  885. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/expression.rs +0 -0
  886. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/line_program.rs +0 -0
  887. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/mod.rs +0 -0
  888. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/range_info_builder.rs +0 -0
  889. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/refs.rs +0 -0
  890. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/simulate.rs +0 -0
  891. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/unit.rs +0 -0
  892. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/transform/utils.rs +0 -0
  893. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug/write_debuginfo.rs +0 -0
  894. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/debug.rs +0 -0
  895. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/func_environ.rs +0 -0
  896. /data/ext/cargo-vendor/{wasmtime-cranelift-16.0.0 → wasmtime-cranelift-17.0.1}/src/lib.rs +0 -0
  897. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-16.0.0 → wasmtime-cranelift-shared-17.0.1}/src/compiled_function.rs +0 -0
  898. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-16.0.0 → wasmtime-cranelift-shared-17.0.1}/src/isa_builder.rs +0 -0
  899. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-16.0.0 → wasmtime-cranelift-shared-17.0.1}/src/lib.rs +0 -0
  900. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-16.0.0 → wasmtime-cranelift-shared-17.0.1}/src/obj.rs +0 -0
  901. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/LICENSE +0 -0
  902. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/address_map.rs +0 -0
  903. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/builtin.rs +0 -0
  904. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/compilation.rs +0 -0
  905. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/compiler.rs +0 -0
  906. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/dfg.rs +0 -0
  907. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/info.rs +0 -0
  908. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/translate/adapt.rs +0 -0
  909. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/translate/inline.rs +0 -0
  910. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/translate.rs +0 -0
  911. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/types/resources.rs +0 -0
  912. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/types.rs +0 -0
  913. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component/vmcomponent_offsets.rs +0 -0
  914. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/component.rs +0 -0
  915. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/fact/core_types.rs +0 -0
  916. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/fact/signature.rs +0 -0
  917. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/fact/trampoline.rs +0 -0
  918. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/fact/transcode.rs +0 -0
  919. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/fact/traps.rs +0 -0
  920. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/fact.rs +0 -0
  921. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/lib.rs +0 -0
  922. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/module.rs +0 -0
  923. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/module_environ.rs +0 -0
  924. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/module_types.rs +0 -0
  925. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/obj.rs +0 -0
  926. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/ref_bits.rs +0 -0
  927. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/scopevec.rs +0 -0
  928. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/stack_map.rs +0 -0
  929. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/trap_encoding.rs +0 -0
  930. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/tunables.rs +0 -0
  931. /data/ext/cargo-vendor/{wasmtime-environ-16.0.0 → wasmtime-environ-17.0.1}/src/vmoffsets.rs +0 -0
  932. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/LICENSE +0 -0
  933. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/build.rs +0 -0
  934. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/lib.rs +0 -0
  935. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/unix/aarch64.rs +0 -0
  936. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/unix/arm.rs +0 -0
  937. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/unix/riscv64.rs +0 -0
  938. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/unix/s390x.S +0 -0
  939. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/unix/x86.rs +0 -0
  940. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/unix/x86_64.rs +0 -0
  941. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/unix.rs +0 -0
  942. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/windows.c +0 -0
  943. /data/ext/cargo-vendor/{wasmtime-fiber-16.0.0 → wasmtime-fiber-17.0.1}/src/windows.rs +0 -0
  944. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/LICENSE +0 -0
  945. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/code_memory.rs +0 -0
  946. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/debug.rs +0 -0
  947. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/demangling.rs +0 -0
  948. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/instantiate.rs +0 -0
  949. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/lib.rs +0 -0
  950. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/profiling/jitdump.rs +0 -0
  951. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/profiling/perfmap.rs +0 -0
  952. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/profiling/vtune.rs +0 -0
  953. /data/ext/cargo-vendor/{wasmtime-jit-16.0.0 → wasmtime-jit-17.0.1}/src/profiling.rs +0 -0
  954. /data/ext/cargo-vendor/{wasmtime-jit-debug-16.0.0 → wasmtime-jit-debug-17.0.1}/README.md +0 -0
  955. /data/ext/cargo-vendor/{wasmtime-jit-debug-16.0.0 → wasmtime-jit-debug-17.0.1}/src/gdb_jit_int.rs +0 -0
  956. /data/ext/cargo-vendor/{wasmtime-jit-debug-16.0.0 → wasmtime-jit-debug-17.0.1}/src/lib.rs +0 -0
  957. /data/ext/cargo-vendor/{wasmtime-jit-debug-16.0.0 → wasmtime-jit-debug-17.0.1}/src/perf_jitdump.rs +0 -0
  958. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-16.0.0 → wasmtime-jit-icache-coherence-17.0.1}/src/lib.rs +0 -0
  959. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-16.0.0 → wasmtime-jit-icache-coherence-17.0.1}/src/libc.rs +0 -0
  960. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-16.0.0 → wasmtime-jit-icache-coherence-17.0.1}/src/miri.rs +0 -0
  961. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-16.0.0 → wasmtime-jit-icache-coherence-17.0.1}/src/win.rs +0 -0
  962. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/LICENSE +0 -0
  963. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/build.rs +0 -0
  964. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/proptest-regressions/instance/allocator/pooling/memory_pool.txt +0 -0
  965. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/arch/aarch64.rs +0 -0
  966. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/arch/mod.rs +0 -0
  967. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/arch/riscv64.rs +0 -0
  968. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/arch/s390x.S +0 -0
  969. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/arch/s390x.rs +0 -0
  970. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/arch/x86_64.rs +0 -0
  971. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/component/libcalls.rs +0 -0
  972. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/component/resources.rs +0 -0
  973. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/component.rs +0 -0
  974. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/cow.rs +0 -0
  975. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/debug_builtins.rs +0 -0
  976. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/export.rs +0 -0
  977. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/externref.rs +0 -0
  978. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/helpers.c +0 -0
  979. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/imports.rs +0 -0
  980. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/instance/allocator/on_demand.rs +0 -0
  981. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  982. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/instance/allocator/pooling/stack_pool.rs +0 -0
  983. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/instance/allocator/pooling/table_pool.rs +0 -0
  984. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/instance/allocator.rs +0 -0
  985. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/instance.rs +0 -0
  986. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/lib.rs +0 -0
  987. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/libcalls.rs +0 -0
  988. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/mmap.rs +0 -0
  989. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/mmap_vec.rs +0 -0
  990. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/module_id.rs +0 -0
  991. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/mpk/disabled.rs +0 -0
  992. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/mpk/enabled.rs +0 -0
  993. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/mpk/mod.rs +0 -0
  994. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/mpk/pkru.rs +0 -0
  995. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/mpk/sys.rs +0 -0
  996. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/send_sync_ptr.rs +0 -0
  997. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/store_box.rs +0 -0
  998. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/miri/mmap.rs +0 -0
  999. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/miri/mod.rs +0 -0
  1000. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/miri/traphandlers.rs +0 -0
  1001. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/miri/unwind.rs +0 -0
  1002. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/miri/vm.rs +0 -0
  1003. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/mod.rs +0 -0
  1004. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/unix/machports.rs +0 -0
  1005. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/unix/macos_traphandlers.rs +0 -0
  1006. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/unix/mmap.rs +0 -0
  1007. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/unix/mod.rs +0 -0
  1008. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/unix/signals.rs +0 -0
  1009. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/unix/unwind.rs +0 -0
  1010. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/unix/vm.rs +0 -0
  1011. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/windows/mod.rs +0 -0
  1012. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/windows/traphandlers.rs +0 -0
  1013. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/windows/unwind.rs +0 -0
  1014. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/sys/windows/vm.rs +0 -0
  1015. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/table.rs +0 -0
  1016. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/traphandlers/backtrace.rs +0 -0
  1017. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/traphandlers/coredump.rs +0 -0
  1018. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/traphandlers.rs +0 -0
  1019. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/vmcontext/vm_host_func_context.rs +0 -0
  1020. /data/ext/cargo-vendor/{wasmtime-runtime-16.0.0 → wasmtime-runtime-17.0.1}/src/vmcontext.rs +0 -0
  1021. /data/ext/cargo-vendor/{wasmtime-types-16.0.0 → wasmtime-types-17.0.1}/LICENSE +0 -0
  1022. /data/ext/cargo-vendor/{wasmtime-types-16.0.0 → wasmtime-types-17.0.1}/src/error.rs +0 -0
  1023. /data/ext/cargo-vendor/{wasmtime-types-16.0.0 → wasmtime-types-17.0.1}/src/lib.rs +0 -0
  1024. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-16.0.0 → wasmtime-versioned-export-macros-17.0.1}/src/lib.rs +0 -0
  1025. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/LICENSE +0 -0
  1026. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/README.md +0 -0
  1027. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/build.rs +0 -0
  1028. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/lib.rs +0 -0
  1029. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/clocks/host.rs +0 -0
  1030. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/clocks.rs +0 -0
  1031. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/command.rs +0 -0
  1032. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/error.rs +0 -0
  1033. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/host/env.rs +0 -0
  1034. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/host/exit.rs +0 -0
  1035. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/host/filesystem/sync.rs +0 -0
  1036. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/host/io.rs +0 -0
  1037. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/host/mod.rs +0 -0
  1038. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/host/random.rs +0 -0
  1039. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/host/tcp_create_socket.rs +0 -0
  1040. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/host/udp_create_socket.rs +0 -0
  1041. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/ip_name_lookup.rs +0 -0
  1042. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/pipe.rs +0 -0
  1043. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/preview0.rs +0 -0
  1044. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/random.rs +0 -0
  1045. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/stdio/worker_thread_stdin.rs +0 -0
  1046. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/stdio.rs +0 -0
  1047. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/src/preview2/write_stream.rs +0 -0
  1048. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/tests/process_stdin.rs +0 -0
  1049. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/wit/deps/cli/environment.wit +0 -0
  1050. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/wit/deps/cli/exit.wit +0 -0
  1051. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/wit/deps/cli/run.wit +0 -0
  1052. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/wit/deps/http/handler.wit +0 -0
  1053. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/wit/deps/sockets/instance-network.wit +0 -0
  1054. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/witx/preview0/typenames.witx +0 -0
  1055. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/witx/preview0/wasi_unstable.witx +0 -0
  1056. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/witx/preview1/typenames.witx +0 -0
  1057. /data/ext/cargo-vendor/{wasmtime-wasi-16.0.0 → wasmtime-wasi-17.0.1}/witx/preview1/wasi_snapshot_preview1.witx +0 -0
  1058. /data/ext/cargo-vendor/{wasmtime-winch-16.0.0 → wasmtime-winch-17.0.1}/LICENSE +0 -0
  1059. /data/ext/cargo-vendor/{wasmtime-winch-16.0.0 → wasmtime-winch-17.0.1}/src/builder.rs +0 -0
  1060. /data/ext/cargo-vendor/{wasmtime-winch-16.0.0 → wasmtime-winch-17.0.1}/src/compiler.rs +0 -0
  1061. /data/ext/cargo-vendor/{wasmtime-winch-16.0.0 → wasmtime-winch-17.0.1}/src/lib.rs +0 -0
  1062. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-16.0.0 → wasmtime-wit-bindgen-17.0.1}/src/rust.rs +0 -0
  1063. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-16.0.0 → wasmtime-wit-bindgen-17.0.1}/src/source.rs +0 -0
  1064. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-16.0.0 → wasmtime-wit-bindgen-17.0.1}/src/types.rs +0 -0
  1065. /data/ext/cargo-vendor/{wasmtime-wmemcheck-16.0.0 → wasmtime-wmemcheck-17.0.1}/src/lib.rs +0 -0
  1066. /data/ext/cargo-vendor/{wiggle-16.0.0 → wiggle-17.0.1}/LICENSE +0 -0
  1067. /data/ext/cargo-vendor/{wiggle-16.0.0 → wiggle-17.0.1}/README.md +0 -0
  1068. /data/ext/cargo-vendor/{wiggle-16.0.0 → wiggle-17.0.1}/src/borrow.rs +0 -0
  1069. /data/ext/cargo-vendor/{wiggle-16.0.0 → wiggle-17.0.1}/src/error.rs +0 -0
  1070. /data/ext/cargo-vendor/{wiggle-16.0.0 → wiggle-17.0.1}/src/guest_type.rs +0 -0
  1071. /data/ext/cargo-vendor/{wiggle-16.0.0 → wiggle-17.0.1}/src/lib.rs +0 -0
  1072. /data/ext/cargo-vendor/{wiggle-16.0.0 → wiggle-17.0.1}/src/region.rs +0 -0
  1073. /data/ext/cargo-vendor/{wiggle-16.0.0 → wiggle-17.0.1}/src/wasmtime.rs +0 -0
  1074. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/LICENSE +0 -0
  1075. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/README.md +0 -0
  1076. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/codegen_settings.rs +0 -0
  1077. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/config.rs +0 -0
  1078. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/funcs.rs +0 -0
  1079. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/lib.rs +0 -0
  1080. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/lifetimes.rs +0 -0
  1081. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/module_trait.rs +0 -0
  1082. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/names.rs +0 -0
  1083. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/types/error.rs +0 -0
  1084. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/types/flags.rs +0 -0
  1085. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/types/handle.rs +0 -0
  1086. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/types/mod.rs +0 -0
  1087. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/types/record.rs +0 -0
  1088. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/types/variant.rs +0 -0
  1089. /data/ext/cargo-vendor/{wiggle-generate-16.0.0 → wiggle-generate-17.0.1}/src/wasmtime.rs +0 -0
  1090. /data/ext/cargo-vendor/{wiggle-macro-16.0.0 → wiggle-macro-17.0.1}/LICENSE +0 -0
  1091. /data/ext/cargo-vendor/{wiggle-macro-16.0.0 → wiggle-macro-17.0.1}/src/lib.rs +0 -0
  1092. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/LICENSE +0 -0
  1093. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/build.rs +0 -0
  1094. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/abi/local.rs +0 -0
  1095. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/abi/mod.rs +0 -0
  1096. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/codegen/builtin.rs +0 -0
  1097. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/codegen/call.rs +0 -0
  1098. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/codegen/control.rs +0 -0
  1099. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/codegen/mod.rs +0 -0
  1100. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/frame/mod.rs +0 -0
  1101. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/aarch64/abi.rs +0 -0
  1102. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/aarch64/address.rs +0 -0
  1103. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/aarch64/asm.rs +0 -0
  1104. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/aarch64/mod.rs +0 -0
  1105. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/aarch64/regs.rs +0 -0
  1106. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/mod.rs +0 -0
  1107. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/reg.rs +0 -0
  1108. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/x64/abi.rs +0 -0
  1109. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/x64/address.rs +0 -0
  1110. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/x64/mod.rs +0 -0
  1111. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/isa/x64/regs.rs +0 -0
  1112. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/lib.rs +0 -0
  1113. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/regalloc.rs +0 -0
  1114. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/regset.rs +0 -0
  1115. /data/ext/cargo-vendor/{winch-codegen-0.14.0 → winch-codegen-0.15.1}/src/trampoline.rs +0 -0
@@ -1,2348 +0,0 @@
1
- use crate::preview2::bindings::{
2
- self,
3
- cli::{
4
- stderr, stdin, stdout, terminal_input, terminal_output, terminal_stderr, terminal_stdin,
5
- terminal_stdout,
6
- },
7
- clocks::{monotonic_clock, wall_clock},
8
- filesystem::{preopens, types as filesystem},
9
- io::{poll, streams},
10
- };
11
- use crate::preview2::{FsError, IsATTY, StreamError, StreamResult, TableError, WasiView};
12
- use anyhow::{bail, Context};
13
- use std::borrow::Borrow;
14
- use std::collections::{BTreeMap, HashSet};
15
- use std::mem::{self, size_of, size_of_val};
16
- use std::ops::{Deref, DerefMut};
17
- use std::slice;
18
- use std::sync::atomic::{AtomicU64, Ordering};
19
- use std::sync::Arc;
20
- use wasmtime::component::Resource;
21
- use wiggle::tracing::instrument;
22
- use wiggle::{GuestError, GuestPtr, GuestSlice, GuestSliceMut, GuestStrCow, GuestType};
23
-
24
- #[derive(Debug)]
25
- struct File {
26
- /// The handle to the preview2 descriptor that this file is referencing.
27
- fd: Resource<filesystem::Descriptor>,
28
-
29
- /// The current-position pointer.
30
- position: Arc<AtomicU64>,
31
-
32
- /// In append mode, all writes append to the file.
33
- append: bool,
34
-
35
- /// When blocking, read and write calls dispatch to blocking_read and
36
- /// blocking_check_write on the underlying streams. When false, read and write
37
- /// dispatch to stream's plain read and check_write.
38
- blocking_mode: BlockingMode,
39
- }
40
-
41
- #[derive(Clone, Copy, Debug)]
42
- enum BlockingMode {
43
- Blocking,
44
- NonBlocking,
45
- }
46
- impl BlockingMode {
47
- fn from_fdflags(flags: &types::Fdflags) -> Self {
48
- if flags.contains(types::Fdflags::NONBLOCK) {
49
- BlockingMode::NonBlocking
50
- } else {
51
- BlockingMode::Blocking
52
- }
53
- }
54
- async fn read(
55
- &self,
56
- host: &mut impl streams::Host,
57
- input_stream: Resource<streams::InputStream>,
58
- max_size: usize,
59
- ) -> Result<Vec<u8>, types::Error> {
60
- let max_size = max_size.try_into().unwrap_or(u64::MAX);
61
- match self {
62
- BlockingMode::Blocking => {
63
- match streams::HostInputStream::blocking_read(host, input_stream, max_size).await {
64
- Ok(r) if r.is_empty() => Err(types::Errno::Intr.into()),
65
- Ok(r) => Ok(r),
66
- Err(StreamError::Closed) => Ok(Vec::new()),
67
- Err(e) => Err(e.into()),
68
- }
69
- }
70
-
71
- BlockingMode::NonBlocking => {
72
- match streams::HostInputStream::read(host, input_stream, max_size).await {
73
- Ok(r) => Ok(r),
74
- Err(StreamError::Closed) => Ok(Vec::new()),
75
- Err(e) => Err(e.into()),
76
- }
77
- }
78
- }
79
- }
80
- async fn write(
81
- &self,
82
- host: &mut (impl streams::Host + poll::Host),
83
- output_stream: Resource<streams::OutputStream>,
84
- mut bytes: &[u8],
85
- ) -> StreamResult<usize> {
86
- use streams::HostOutputStream as Streams;
87
-
88
- match self {
89
- BlockingMode::Blocking => {
90
- let total = bytes.len();
91
- while !bytes.is_empty() {
92
- // NOTE: blocking_write_and_flush takes at most one 4k buffer.
93
- let len = bytes.len().min(4096);
94
- let (chunk, rest) = bytes.split_at(len);
95
- bytes = rest;
96
-
97
- Streams::blocking_write_and_flush(
98
- host,
99
- output_stream.borrowed(),
100
- Vec::from(chunk),
101
- )
102
- .await?
103
- }
104
-
105
- Ok(total)
106
- }
107
- BlockingMode::NonBlocking => {
108
- let n = match Streams::check_write(host, output_stream.borrowed()) {
109
- Ok(n) => n,
110
- Err(StreamError::Closed) => 0,
111
- Err(e) => Err(e)?,
112
- };
113
-
114
- let len = bytes.len().min(n as usize);
115
- if len == 0 {
116
- return Ok(0);
117
- }
118
-
119
- match Streams::write(host, output_stream.borrowed(), bytes[..len].to_vec()) {
120
- Ok(()) => {}
121
- Err(StreamError::Closed) => return Ok(0),
122
- Err(e) => Err(e)?,
123
- }
124
-
125
- match Streams::blocking_flush(host, output_stream.borrowed()).await {
126
- Ok(()) => {}
127
- Err(StreamError::Closed) => return Ok(0),
128
- Err(e) => Err(e)?,
129
- };
130
-
131
- Ok(len)
132
- }
133
- }
134
- }
135
- }
136
-
137
- #[derive(Debug)]
138
- enum Descriptor {
139
- Stdin {
140
- stream: Resource<streams::InputStream>,
141
- isatty: IsATTY,
142
- },
143
- Stdout {
144
- stream: Resource<streams::OutputStream>,
145
- isatty: IsATTY,
146
- },
147
- Stderr {
148
- stream: Resource<streams::OutputStream>,
149
- isatty: IsATTY,
150
- },
151
- PreopenDirectory((Resource<filesystem::Descriptor>, String)),
152
- File(File),
153
- }
154
-
155
- #[derive(Debug, Default)]
156
- pub struct WasiPreview1Adapter {
157
- descriptors: Option<Descriptors>,
158
- }
159
-
160
- #[derive(Debug, Default)]
161
- struct Descriptors {
162
- used: BTreeMap<u32, Descriptor>,
163
- free: Vec<u32>,
164
- }
165
-
166
- impl Deref for Descriptors {
167
- type Target = BTreeMap<u32, Descriptor>;
168
-
169
- fn deref(&self) -> &Self::Target {
170
- &self.used
171
- }
172
- }
173
-
174
- impl DerefMut for Descriptors {
175
- fn deref_mut(&mut self) -> &mut Self::Target {
176
- &mut self.used
177
- }
178
- }
179
-
180
- impl Descriptors {
181
- /// Initializes [Self] using `preopens`
182
- fn new(
183
- host: &mut (impl preopens::Host
184
- + stdin::Host
185
- + stdout::Host
186
- + stderr::Host
187
- + terminal_stdin::Host
188
- + terminal_stdout::Host
189
- + terminal_stderr::Host
190
- + terminal_input::Host
191
- + terminal_output::Host
192
- + ?Sized),
193
- ) -> Result<Self, types::Error> {
194
- let mut descriptors = Self::default();
195
- descriptors.push(Descriptor::Stdin {
196
- stream: host
197
- .get_stdin()
198
- .context("failed to call `get-stdin`")
199
- .map_err(types::Error::trap)?,
200
- isatty: if let Some(term_in) = host
201
- .get_terminal_stdin()
202
- .context("failed to call `get-terminal-stdin`")
203
- .map_err(types::Error::trap)?
204
- {
205
- terminal_input::HostTerminalInput::drop(host, term_in)
206
- .context("failed to call `drop-terminal-input`")
207
- .map_err(types::Error::trap)?;
208
- IsATTY::Yes
209
- } else {
210
- IsATTY::No
211
- },
212
- })?;
213
- descriptors.push(Descriptor::Stdout {
214
- stream: host
215
- .get_stdout()
216
- .context("failed to call `get-stdout`")
217
- .map_err(types::Error::trap)?,
218
- isatty: if let Some(term_out) = host
219
- .get_terminal_stdout()
220
- .context("failed to call `get-terminal-stdout`")
221
- .map_err(types::Error::trap)?
222
- {
223
- terminal_output::HostTerminalOutput::drop(host, term_out)
224
- .context("failed to call `drop-terminal-output`")
225
- .map_err(types::Error::trap)?;
226
- IsATTY::Yes
227
- } else {
228
- IsATTY::No
229
- },
230
- })?;
231
- descriptors.push(Descriptor::Stderr {
232
- stream: host
233
- .get_stderr()
234
- .context("failed to call `get-stderr`")
235
- .map_err(types::Error::trap)?,
236
- isatty: if let Some(term_out) = host
237
- .get_terminal_stderr()
238
- .context("failed to call `get-terminal-stderr`")
239
- .map_err(types::Error::trap)?
240
- {
241
- terminal_output::HostTerminalOutput::drop(host, term_out)
242
- .context("failed to call `drop-terminal-output`")
243
- .map_err(types::Error::trap)?;
244
- IsATTY::Yes
245
- } else {
246
- IsATTY::No
247
- },
248
- })?;
249
-
250
- for dir in host
251
- .get_directories()
252
- .context("failed to call `get-directories`")
253
- .map_err(types::Error::trap)?
254
- {
255
- descriptors.push(Descriptor::PreopenDirectory((dir.0, dir.1)))?;
256
- }
257
- Ok(descriptors)
258
- }
259
-
260
- /// Returns next descriptor number, which was never assigned
261
- fn unused(&self) -> Result<u32> {
262
- match self.last_key_value() {
263
- Some((fd, _)) => {
264
- if let Some(fd) = fd.checked_add(1) {
265
- return Ok(fd);
266
- }
267
- if self.len() == u32::MAX as usize {
268
- return Err(types::Errno::Loop.into());
269
- }
270
- // TODO: Optimize
271
- Ok((0..u32::MAX)
272
- .rev()
273
- .find(|fd| !self.contains_key(fd))
274
- .expect("failed to find an unused file descriptor"))
275
- }
276
- None => Ok(0),
277
- }
278
- }
279
-
280
- /// Removes the [Descriptor] corresponding to `fd`
281
- fn remove(&mut self, fd: types::Fd) -> Option<Descriptor> {
282
- let fd = fd.into();
283
- let desc = self.used.remove(&fd)?;
284
- self.free.push(fd);
285
- Some(desc)
286
- }
287
-
288
- /// Pushes the [Descriptor] returning corresponding number.
289
- /// This operation will try to reuse numbers previously removed via [`Self::remove`]
290
- /// and rely on [`Self::unused`] if no free numbers are recorded
291
- fn push(&mut self, desc: Descriptor) -> Result<u32> {
292
- let fd = if let Some(fd) = self.free.pop() {
293
- fd
294
- } else {
295
- self.unused()?
296
- };
297
- assert!(self.insert(fd, desc).is_none());
298
- Ok(fd)
299
- }
300
-
301
- /// Like [Self::push], but for [`File`]
302
- fn push_file(&mut self, file: File) -> Result<u32> {
303
- self.push(Descriptor::File(file))
304
- }
305
- }
306
-
307
- impl WasiPreview1Adapter {
308
- pub fn new() -> Self {
309
- Self::default()
310
- }
311
- }
312
-
313
- // Any context that needs to support preview 1 will impl this trait. They can
314
- // construct the needed member with WasiPreview1Adapter::new().
315
- pub trait WasiPreview1View: WasiView {
316
- fn adapter(&self) -> &WasiPreview1Adapter;
317
- fn adapter_mut(&mut self) -> &mut WasiPreview1Adapter;
318
- }
319
-
320
- /// A mutably-borrowed [`WasiPreview1View`] implementation, which provides access to the stored
321
- /// state. It can be thought of as an in-flight [`WasiPreview1Adapter`] transaction, all
322
- /// changes will be recorded in the underlying [`WasiPreview1Adapter`] returned by
323
- /// [`WasiPreview1View::adapter_mut`] on [`Drop`] of this struct.
324
- // NOTE: This exists for the most part just due to the fact that `bindgen` generates methods with
325
- // `&mut self` receivers and so this struct lets us extend the lifetime of the `&mut self` borrow
326
- // of the [`WasiPreview1View`] to provide means to return mutably and immutably borrowed [`Descriptors`]
327
- // without having to rely on something like `Arc<Mutex<Descriptors>>`, while also being able to
328
- // call methods like [`TableFsExt::is_file`] and hiding complexity from preview1 method implementations.
329
- struct Transaction<'a, T: WasiPreview1View + ?Sized> {
330
- view: &'a mut T,
331
- descriptors: Descriptors,
332
- }
333
-
334
- impl<T: WasiPreview1View + ?Sized> Drop for Transaction<'_, T> {
335
- /// Record changes in the [`WasiPreview1Adapter`] returned by [`WasiPreview1View::adapter_mut`]
336
- fn drop(&mut self) {
337
- let descriptors = mem::take(&mut self.descriptors);
338
- self.view.adapter_mut().descriptors = Some(descriptors);
339
- }
340
- }
341
-
342
- impl<T: WasiPreview1View + ?Sized> Transaction<'_, T> {
343
- /// Borrows [`Descriptor`] corresponding to `fd`.
344
- ///
345
- /// # Errors
346
- ///
347
- /// Returns [`types::Errno::Badf`] if no [`Descriptor`] is found
348
- fn get_descriptor(&self, fd: types::Fd) -> Result<&Descriptor> {
349
- let fd = fd.into();
350
- let desc = self.descriptors.get(&fd).ok_or(types::Errno::Badf)?;
351
- Ok(desc)
352
- }
353
-
354
- /// Borrows [`File`] corresponding to `fd`
355
- /// if it describes a [`Descriptor::File`] of [`crate::preview2::filesystem::File`] type
356
- fn get_file(&self, fd: types::Fd) -> Result<&File> {
357
- let fd = fd.into();
358
- match self.descriptors.get(&fd) {
359
- Some(Descriptor::File(file @ File { fd, .. })) => {
360
- self.view.table().get(fd)?.file()?;
361
- Ok(file)
362
- }
363
- _ => Err(types::Errno::Badf.into()),
364
- }
365
- }
366
-
367
- /// Mutably borrows [`File`] corresponding to `fd`
368
- /// if it describes a [`Descriptor::File`] of [`crate::preview2::filesystem::File`] type
369
- fn get_file_mut(&mut self, fd: types::Fd) -> Result<&mut File> {
370
- let fd = fd.into();
371
- match self.descriptors.get_mut(&fd) {
372
- Some(Descriptor::File(file)) => {
373
- self.view.table().get(&file.fd)?.file()?;
374
- Ok(file)
375
- }
376
- _ => Err(types::Errno::Badf.into()),
377
- }
378
- }
379
-
380
- /// Borrows [`File`] corresponding to `fd`
381
- /// if it describes a [`Descriptor::File`] of [`crate::preview2::filesystem::File`] type.
382
- ///
383
- /// # Errors
384
- ///
385
- /// Returns [`types::Errno::Spipe`] if the descriptor corresponds to stdio
386
- fn get_seekable(&self, fd: types::Fd) -> Result<&File> {
387
- let fd = fd.into();
388
- match self.descriptors.get(&fd) {
389
- Some(Descriptor::File(file @ File { fd, .. }))
390
- if self.view.table().get(fd)?.is_file() =>
391
- {
392
- Ok(file)
393
- }
394
- Some(
395
- Descriptor::Stdin { .. } | Descriptor::Stdout { .. } | Descriptor::Stderr { .. },
396
- ) => {
397
- // NOTE: legacy implementation returns SPIPE here
398
- Err(types::Errno::Spipe.into())
399
- }
400
- _ => Err(types::Errno::Badf.into()),
401
- }
402
- }
403
-
404
- /// Returns [`filesystem::Descriptor`] corresponding to `fd`
405
- fn get_fd(&self, fd: types::Fd) -> Result<Resource<filesystem::Descriptor>> {
406
- match self.get_descriptor(fd)? {
407
- Descriptor::File(File { fd, .. }) => Ok(fd.borrowed()),
408
- Descriptor::PreopenDirectory((fd, _)) => Ok(fd.borrowed()),
409
- Descriptor::Stdin { .. } | Descriptor::Stdout { .. } | Descriptor::Stderr { .. } => {
410
- Err(types::Errno::Badf.into())
411
- }
412
- }
413
- }
414
-
415
- /// Returns [`filesystem::Descriptor`] corresponding to `fd`
416
- /// if it describes a [`Descriptor::File`] of [`crate::preview2::filesystem::File`] type
417
- fn get_file_fd(&self, fd: types::Fd) -> Result<Resource<filesystem::Descriptor>> {
418
- self.get_file(fd).map(|File { fd, .. }| fd.borrowed())
419
- }
420
-
421
- /// Returns [`filesystem::Descriptor`] corresponding to `fd`
422
- /// if it describes a [`Descriptor::File`] or [`Descriptor::PreopenDirectory`]
423
- /// of [`crate::preview2::filesystem::Dir`] type
424
- fn get_dir_fd(&self, fd: types::Fd) -> Result<Resource<filesystem::Descriptor>> {
425
- let fd = fd.into();
426
- match self.descriptors.get(&fd) {
427
- Some(Descriptor::File(File { fd, .. })) if self.view.table().get(fd)?.is_dir() => {
428
- Ok(fd.borrowed())
429
- }
430
- Some(Descriptor::PreopenDirectory((fd, _))) => Ok(fd.borrowed()),
431
- _ => Err(types::Errno::Badf.into()),
432
- }
433
- }
434
- }
435
-
436
- trait WasiPreview1ViewExt:
437
- WasiPreview1View
438
- + preopens::Host
439
- + stdin::Host
440
- + stdout::Host
441
- + stderr::Host
442
- + terminal_input::Host
443
- + terminal_output::Host
444
- + terminal_stdin::Host
445
- + terminal_stdout::Host
446
- + terminal_stderr::Host
447
- {
448
- /// Lazily initializes [`WasiPreview1Adapter`] returned by [`WasiPreview1View::adapter_mut`]
449
- /// and returns [`Transaction`] on success
450
- fn transact(&mut self) -> Result<Transaction<'_, Self>, types::Error> {
451
- let descriptors = if let Some(descriptors) = self.adapter_mut().descriptors.take() {
452
- descriptors
453
- } else {
454
- Descriptors::new(self)?
455
- }
456
- .into();
457
- Ok(Transaction {
458
- view: self,
459
- descriptors,
460
- })
461
- }
462
-
463
- /// Lazily initializes [`WasiPreview1Adapter`] returned by [`WasiPreview1View::adapter_mut`]
464
- /// and returns [`filesystem::Descriptor`] corresponding to `fd`
465
- fn get_fd(&mut self, fd: types::Fd) -> Result<Resource<filesystem::Descriptor>, types::Error> {
466
- let st = self.transact()?;
467
- let fd = st.get_fd(fd)?;
468
- Ok(fd)
469
- }
470
-
471
- /// Lazily initializes [`WasiPreview1Adapter`] returned by [`WasiPreview1View::adapter_mut`]
472
- /// and returns [`filesystem::Descriptor`] corresponding to `fd`
473
- /// if it describes a [`Descriptor::File`] of [`crate::preview2::filesystem::File`] type
474
- fn get_file_fd(
475
- &mut self,
476
- fd: types::Fd,
477
- ) -> Result<Resource<filesystem::Descriptor>, types::Error> {
478
- let st = self.transact()?;
479
- let fd = st.get_file_fd(fd)?;
480
- Ok(fd)
481
- }
482
-
483
- /// Lazily initializes [`WasiPreview1Adapter`] returned by [`WasiPreview1View::adapter_mut`]
484
- /// and returns [`filesystem::Descriptor`] corresponding to `fd`
485
- /// if it describes a [`Descriptor::File`] or [`Descriptor::PreopenDirectory`]
486
- /// of [`crate::preview2::filesystem::Dir`] type
487
- fn get_dir_fd(
488
- &mut self,
489
- fd: types::Fd,
490
- ) -> Result<Resource<filesystem::Descriptor>, types::Error> {
491
- let st = self.transact()?;
492
- let fd = st.get_dir_fd(fd)?;
493
- Ok(fd)
494
- }
495
- }
496
-
497
- impl<T: WasiPreview1View + preopens::Host> WasiPreview1ViewExt for T {}
498
-
499
- pub fn add_to_linker_async<T: WasiPreview1View + Sync>(
500
- linker: &mut wasmtime::Linker<T>,
501
- ) -> anyhow::Result<()> {
502
- wasi_snapshot_preview1::add_to_linker(linker, |t| t)
503
- }
504
-
505
- pub fn add_to_linker_sync<T: WasiPreview1View + Sync>(
506
- linker: &mut wasmtime::Linker<T>,
507
- ) -> anyhow::Result<()> {
508
- sync::add_wasi_snapshot_preview1_to_linker(linker, |t| t)
509
- }
510
-
511
- // Generate the wasi_snapshot_preview1::WasiSnapshotPreview1 trait,
512
- // and the module types.
513
- // None of the generated modules, traits, or types should be used externally
514
- // to this module.
515
- wiggle::from_witx!({
516
- witx: ["$CARGO_MANIFEST_DIR/witx/preview1/wasi_snapshot_preview1.witx"],
517
- async: {
518
- wasi_snapshot_preview1::{
519
- fd_advise, fd_close, fd_datasync, fd_fdstat_get, fd_filestat_get, fd_filestat_set_size,
520
- fd_filestat_set_times, fd_read, fd_pread, fd_seek, fd_sync, fd_readdir, fd_write,
521
- fd_pwrite, poll_oneoff, path_create_directory, path_filestat_get,
522
- path_filestat_set_times, path_link, path_open, path_readlink, path_remove_directory,
523
- path_rename, path_symlink, path_unlink_file
524
- }
525
- },
526
- errors: { errno => trappable Error },
527
- });
528
-
529
- mod sync {
530
- use anyhow::Result;
531
- use std::future::Future;
532
-
533
- wiggle::wasmtime_integration!({
534
- witx: ["$CARGO_MANIFEST_DIR/witx/preview1/wasi_snapshot_preview1.witx"],
535
- target: super,
536
- block_on[in_tokio]: {
537
- wasi_snapshot_preview1::{
538
- fd_advise, fd_close, fd_datasync, fd_fdstat_get, fd_filestat_get, fd_filestat_set_size,
539
- fd_filestat_set_times, fd_read, fd_pread, fd_seek, fd_sync, fd_readdir, fd_write,
540
- fd_pwrite, poll_oneoff, path_create_directory, path_filestat_get,
541
- path_filestat_set_times, path_link, path_open, path_readlink, path_remove_directory,
542
- path_rename, path_symlink, path_unlink_file
543
- }
544
- },
545
- errors: { errno => trappable Error },
546
- });
547
-
548
- // Small wrapper around `in_tokio` to add a `Result` layer which is always
549
- // `Ok`
550
- fn in_tokio<F: Future>(future: F) -> Result<F::Output> {
551
- Ok(crate::preview2::in_tokio(future))
552
- }
553
- }
554
-
555
- impl wiggle::GuestErrorType for types::Errno {
556
- fn success() -> Self {
557
- Self::Success
558
- }
559
- }
560
-
561
- impl From<StreamError> for types::Error {
562
- fn from(err: StreamError) -> Self {
563
- match err {
564
- StreamError::Closed => types::Errno::Io.into(),
565
- StreamError::LastOperationFailed(e) => match e.downcast::<std::io::Error>() {
566
- Ok(err) => filesystem::ErrorCode::from(err).into(),
567
- Err(e) => {
568
- log::debug!("dropping error {e:?}");
569
- types::Errno::Io.into()
570
- }
571
- },
572
- StreamError::Trap(e) => types::Error::trap(e),
573
- }
574
- }
575
- }
576
-
577
- impl From<FsError> for types::Error {
578
- fn from(err: FsError) -> Self {
579
- match err.downcast() {
580
- Ok(code) => code.into(),
581
- Err(e) => types::Error::trap(e),
582
- }
583
- }
584
- }
585
-
586
- fn systimespec(set: bool, ts: types::Timestamp, now: bool) -> Result<filesystem::NewTimestamp> {
587
- if set && now {
588
- Err(types::Errno::Inval.into())
589
- } else if set {
590
- Ok(filesystem::NewTimestamp::Timestamp(filesystem::Datetime {
591
- seconds: ts / 1_000_000_000,
592
- nanoseconds: (ts % 1_000_000_000) as _,
593
- }))
594
- } else if now {
595
- Ok(filesystem::NewTimestamp::Now)
596
- } else {
597
- Ok(filesystem::NewTimestamp::NoChange)
598
- }
599
- }
600
-
601
- impl TryFrom<wall_clock::Datetime> for types::Timestamp {
602
- type Error = types::Errno;
603
-
604
- fn try_from(
605
- wall_clock::Datetime {
606
- seconds,
607
- nanoseconds,
608
- }: wall_clock::Datetime,
609
- ) -> Result<Self, Self::Error> {
610
- types::Timestamp::from(seconds)
611
- .checked_mul(1_000_000_000)
612
- .and_then(|ns| ns.checked_add(nanoseconds.into()))
613
- .ok_or(types::Errno::Overflow)
614
- }
615
- }
616
-
617
- impl From<types::Lookupflags> for filesystem::PathFlags {
618
- fn from(flags: types::Lookupflags) -> Self {
619
- if flags.contains(types::Lookupflags::SYMLINK_FOLLOW) {
620
- filesystem::PathFlags::SYMLINK_FOLLOW
621
- } else {
622
- filesystem::PathFlags::empty()
623
- }
624
- }
625
- }
626
-
627
- impl From<types::Oflags> for filesystem::OpenFlags {
628
- fn from(flags: types::Oflags) -> Self {
629
- let mut out = filesystem::OpenFlags::empty();
630
- if flags.contains(types::Oflags::CREAT) {
631
- out |= filesystem::OpenFlags::CREATE;
632
- }
633
- if flags.contains(types::Oflags::DIRECTORY) {
634
- out |= filesystem::OpenFlags::DIRECTORY;
635
- }
636
- if flags.contains(types::Oflags::EXCL) {
637
- out |= filesystem::OpenFlags::EXCLUSIVE;
638
- }
639
- if flags.contains(types::Oflags::TRUNC) {
640
- out |= filesystem::OpenFlags::TRUNCATE;
641
- }
642
- out
643
- }
644
- }
645
-
646
- impl From<types::Advice> for filesystem::Advice {
647
- fn from(advice: types::Advice) -> Self {
648
- match advice {
649
- types::Advice::Normal => filesystem::Advice::Normal,
650
- types::Advice::Sequential => filesystem::Advice::Sequential,
651
- types::Advice::Random => filesystem::Advice::Random,
652
- types::Advice::Willneed => filesystem::Advice::WillNeed,
653
- types::Advice::Dontneed => filesystem::Advice::DontNeed,
654
- types::Advice::Noreuse => filesystem::Advice::NoReuse,
655
- }
656
- }
657
- }
658
-
659
- impl TryFrom<filesystem::DescriptorType> for types::Filetype {
660
- type Error = anyhow::Error;
661
-
662
- fn try_from(ty: filesystem::DescriptorType) -> Result<Self, Self::Error> {
663
- match ty {
664
- filesystem::DescriptorType::RegularFile => Ok(types::Filetype::RegularFile),
665
- filesystem::DescriptorType::Directory => Ok(types::Filetype::Directory),
666
- filesystem::DescriptorType::BlockDevice => Ok(types::Filetype::BlockDevice),
667
- filesystem::DescriptorType::CharacterDevice => Ok(types::Filetype::CharacterDevice),
668
- // preview1 never had a FIFO code.
669
- filesystem::DescriptorType::Fifo => Ok(types::Filetype::Unknown),
670
- // TODO: Add a way to disginguish between FILETYPE_SOCKET_STREAM and
671
- // FILETYPE_SOCKET_DGRAM.
672
- filesystem::DescriptorType::Socket => {
673
- bail!("sockets are not currently supported")
674
- }
675
- filesystem::DescriptorType::SymbolicLink => Ok(types::Filetype::SymbolicLink),
676
- filesystem::DescriptorType::Unknown => Ok(types::Filetype::Unknown),
677
- }
678
- }
679
- }
680
-
681
- impl From<IsATTY> for types::Filetype {
682
- fn from(isatty: IsATTY) -> Self {
683
- match isatty {
684
- IsATTY::Yes => types::Filetype::CharacterDevice,
685
- IsATTY::No => types::Filetype::Unknown,
686
- }
687
- }
688
- }
689
-
690
- impl From<filesystem::ErrorCode> for types::Errno {
691
- fn from(code: filesystem::ErrorCode) -> Self {
692
- match code {
693
- filesystem::ErrorCode::Access => types::Errno::Acces,
694
- filesystem::ErrorCode::WouldBlock => types::Errno::Again,
695
- filesystem::ErrorCode::Already => types::Errno::Already,
696
- filesystem::ErrorCode::BadDescriptor => types::Errno::Badf,
697
- filesystem::ErrorCode::Busy => types::Errno::Busy,
698
- filesystem::ErrorCode::Deadlock => types::Errno::Deadlk,
699
- filesystem::ErrorCode::Quota => types::Errno::Dquot,
700
- filesystem::ErrorCode::Exist => types::Errno::Exist,
701
- filesystem::ErrorCode::FileTooLarge => types::Errno::Fbig,
702
- filesystem::ErrorCode::IllegalByteSequence => types::Errno::Ilseq,
703
- filesystem::ErrorCode::InProgress => types::Errno::Inprogress,
704
- filesystem::ErrorCode::Interrupted => types::Errno::Intr,
705
- filesystem::ErrorCode::Invalid => types::Errno::Inval,
706
- filesystem::ErrorCode::Io => types::Errno::Io,
707
- filesystem::ErrorCode::IsDirectory => types::Errno::Isdir,
708
- filesystem::ErrorCode::Loop => types::Errno::Loop,
709
- filesystem::ErrorCode::TooManyLinks => types::Errno::Mlink,
710
- filesystem::ErrorCode::MessageSize => types::Errno::Msgsize,
711
- filesystem::ErrorCode::NameTooLong => types::Errno::Nametoolong,
712
- filesystem::ErrorCode::NoDevice => types::Errno::Nodev,
713
- filesystem::ErrorCode::NoEntry => types::Errno::Noent,
714
- filesystem::ErrorCode::NoLock => types::Errno::Nolck,
715
- filesystem::ErrorCode::InsufficientMemory => types::Errno::Nomem,
716
- filesystem::ErrorCode::InsufficientSpace => types::Errno::Nospc,
717
- filesystem::ErrorCode::Unsupported => types::Errno::Notsup,
718
- filesystem::ErrorCode::NotDirectory => types::Errno::Notdir,
719
- filesystem::ErrorCode::NotEmpty => types::Errno::Notempty,
720
- filesystem::ErrorCode::NotRecoverable => types::Errno::Notrecoverable,
721
- filesystem::ErrorCode::NoTty => types::Errno::Notty,
722
- filesystem::ErrorCode::NoSuchDevice => types::Errno::Nxio,
723
- filesystem::ErrorCode::Overflow => types::Errno::Overflow,
724
- filesystem::ErrorCode::NotPermitted => types::Errno::Perm,
725
- filesystem::ErrorCode::Pipe => types::Errno::Pipe,
726
- filesystem::ErrorCode::ReadOnly => types::Errno::Rofs,
727
- filesystem::ErrorCode::InvalidSeek => types::Errno::Spipe,
728
- filesystem::ErrorCode::TextFileBusy => types::Errno::Txtbsy,
729
- filesystem::ErrorCode::CrossDevice => types::Errno::Xdev,
730
- }
731
- }
732
- }
733
-
734
- impl From<std::num::TryFromIntError> for types::Error {
735
- fn from(_: std::num::TryFromIntError) -> Self {
736
- types::Errno::Overflow.into()
737
- }
738
- }
739
-
740
- impl From<GuestError> for types::Error {
741
- fn from(err: GuestError) -> Self {
742
- use wiggle::GuestError::*;
743
- match err {
744
- InvalidFlagValue { .. } => types::Errno::Inval.into(),
745
- InvalidEnumValue { .. } => types::Errno::Inval.into(),
746
- // As per
747
- // https://github.com/WebAssembly/wasi/blob/main/legacy/tools/witx-docs.md#pointers
748
- //
749
- // > If a misaligned pointer is passed to a function, the function
750
- // > shall trap.
751
- // >
752
- // > If an out-of-bounds pointer is passed to a function and the
753
- // > function needs to dereference it, the function shall trap.
754
- //
755
- // so this turns OOB and misalignment errors into traps.
756
- PtrOverflow { .. } | PtrOutOfBounds { .. } | PtrNotAligned { .. } => {
757
- types::Error::trap(err.into())
758
- }
759
- PtrBorrowed { .. } => types::Errno::Fault.into(),
760
- InvalidUtf8 { .. } => types::Errno::Ilseq.into(),
761
- TryFromIntError { .. } => types::Errno::Overflow.into(),
762
- SliceLengthsDiffer { .. } => types::Errno::Fault.into(),
763
- BorrowCheckerOutOfHandles { .. } => types::Errno::Fault.into(),
764
- InFunc { err, .. } => types::Error::from(*err),
765
- }
766
- }
767
- }
768
-
769
- impl From<filesystem::ErrorCode> for types::Error {
770
- fn from(code: filesystem::ErrorCode) -> Self {
771
- types::Errno::from(code).into()
772
- }
773
- }
774
-
775
- impl From<TableError> for types::Error {
776
- fn from(err: TableError) -> Self {
777
- types::Error::trap(err.into())
778
- }
779
- }
780
-
781
- type Result<T, E = types::Error> = std::result::Result<T, E>;
782
-
783
- fn write_bytes<'a>(
784
- ptr: impl Borrow<GuestPtr<'a, u8>>,
785
- buf: &[u8],
786
- ) -> Result<GuestPtr<'a, u8>, types::Error> {
787
- // NOTE: legacy implementation always returns Inval errno
788
-
789
- let buf = buf.as_ref();
790
- let len = buf.len().try_into()?;
791
-
792
- let ptr = ptr.borrow();
793
- ptr.as_array(len).copy_from_slice(buf)?;
794
- let next = ptr.add(len)?;
795
- Ok(next)
796
- }
797
-
798
- fn write_byte<'a>(ptr: impl Borrow<GuestPtr<'a, u8>>, byte: u8) -> Result<GuestPtr<'a, u8>> {
799
- let ptr = ptr.borrow();
800
- ptr.write(byte)?;
801
- let next = ptr.add(1)?;
802
- Ok(next)
803
- }
804
-
805
- fn read_str<'a>(ptr: impl Borrow<GuestPtr<'a, str>>) -> Result<GuestStrCow<'a>> {
806
- let s = ptr.borrow().as_cow()?;
807
- Ok(s)
808
- }
809
-
810
- fn read_string<'a>(ptr: impl Borrow<GuestPtr<'a, str>>) -> Result<String> {
811
- read_str(ptr).map(|s| s.to_string())
812
- }
813
-
814
- // Find first non-empty buffer.
815
- fn first_non_empty_ciovec<'a, 'b>(
816
- ciovs: &'a types::CiovecArray<'b>,
817
- ) -> Result<Option<GuestSlice<'a, u8>>> {
818
- for iov in ciovs.iter() {
819
- let iov = iov?.read()?;
820
- if iov.buf_len == 0 {
821
- continue;
822
- }
823
- return Ok(iov.buf.as_array(iov.buf_len).as_slice()?);
824
- }
825
- Ok(None)
826
- }
827
-
828
- // Find first non-empty buffer.
829
- fn first_non_empty_iovec<'a>(
830
- iovs: &types::IovecArray<'a>,
831
- ) -> Result<Option<GuestSliceMut<'a, u8>>> {
832
- iovs.iter()
833
- .map(|iov| {
834
- let iov = iov?.read()?;
835
- if iov.buf_len == 0 {
836
- return Ok(None);
837
- }
838
- let slice = iov.buf.as_array(iov.buf_len).as_slice_mut()?;
839
- Ok(slice)
840
- })
841
- .find_map(Result::transpose)
842
- .transpose()
843
- }
844
-
845
- #[async_trait::async_trait]
846
- // Implement the WasiSnapshotPreview1 trait using only the traits that are
847
- // required for T, i.e., in terms of the preview 2 wit interface, and state
848
- // stored in the WasiPreview1Adapter struct.
849
- impl<
850
- T: WasiPreview1View
851
- + bindings::cli::environment::Host
852
- + bindings::cli::exit::Host
853
- + bindings::filesystem::preopens::Host
854
- + bindings::filesystem::types::Host
855
- + bindings::io::poll::Host
856
- + bindings::random::random::Host
857
- + bindings::io::streams::Host
858
- + bindings::clocks::monotonic_clock::Host
859
- + bindings::clocks::wall_clock::Host,
860
- > wasi_snapshot_preview1::WasiSnapshotPreview1 for T
861
- {
862
- #[instrument(skip(self))]
863
- fn args_get<'b>(
864
- &mut self,
865
- argv: &GuestPtr<'b, GuestPtr<'b, u8>>,
866
- argv_buf: &GuestPtr<'b, u8>,
867
- ) -> Result<(), types::Error> {
868
- self.get_arguments()
869
- .context("failed to call `get-arguments`")
870
- .map_err(types::Error::trap)?
871
- .into_iter()
872
- .try_fold((*argv, *argv_buf), |(argv, argv_buf), arg| -> Result<_> {
873
- argv.write(argv_buf)?;
874
- let argv = argv.add(1)?;
875
-
876
- let argv_buf = write_bytes(argv_buf, arg.as_bytes())?;
877
- let argv_buf = write_byte(argv_buf, 0)?;
878
-
879
- Ok((argv, argv_buf))
880
- })?;
881
- Ok(())
882
- }
883
-
884
- #[instrument(skip(self))]
885
- fn args_sizes_get(&mut self) -> Result<(types::Size, types::Size), types::Error> {
886
- let args = self
887
- .get_arguments()
888
- .context("failed to call `get-arguments`")
889
- .map_err(types::Error::trap)?;
890
- let num = args.len().try_into().map_err(|_| types::Errno::Overflow)?;
891
- let len = args
892
- .iter()
893
- .map(|buf| buf.len() + 1) // Each argument is expected to be `\0` terminated.
894
- .sum::<usize>()
895
- .try_into()
896
- .map_err(|_| types::Errno::Overflow)?;
897
- Ok((num, len))
898
- }
899
-
900
- #[instrument(skip(self))]
901
- fn environ_get<'b>(
902
- &mut self,
903
- environ: &GuestPtr<'b, GuestPtr<'b, u8>>,
904
- environ_buf: &GuestPtr<'b, u8>,
905
- ) -> Result<(), types::Error> {
906
- self.get_environment()
907
- .context("failed to call `get-environment`")
908
- .map_err(types::Error::trap)?
909
- .into_iter()
910
- .try_fold(
911
- (*environ, *environ_buf),
912
- |(environ, environ_buf), (k, v)| -> Result<_, types::Error> {
913
- environ.write(environ_buf)?;
914
- let environ = environ.add(1)?;
915
-
916
- let environ_buf = write_bytes(environ_buf, k.as_bytes())?;
917
- let environ_buf = write_byte(environ_buf, b'=')?;
918
- let environ_buf = write_bytes(environ_buf, v.as_bytes())?;
919
- let environ_buf = write_byte(environ_buf, 0)?;
920
-
921
- Ok((environ, environ_buf))
922
- },
923
- )?;
924
- Ok(())
925
- }
926
-
927
- #[instrument(skip(self))]
928
- fn environ_sizes_get(&mut self) -> Result<(types::Size, types::Size), types::Error> {
929
- let environ = self
930
- .get_environment()
931
- .context("failed to call `get-environment`")
932
- .map_err(types::Error::trap)?;
933
- let num = environ.len().try_into()?;
934
- let len = environ
935
- .iter()
936
- .map(|(k, v)| k.len() + 1 + v.len() + 1) // Key/value pairs are expected to be joined with `=`s, and terminated with `\0`s.
937
- .sum::<usize>()
938
- .try_into()?;
939
- Ok((num, len))
940
- }
941
-
942
- #[instrument(skip(self))]
943
- fn clock_res_get(&mut self, id: types::Clockid) -> Result<types::Timestamp, types::Error> {
944
- let res = match id {
945
- types::Clockid::Realtime => wall_clock::Host::resolution(self)
946
- .context("failed to call `wall_clock::resolution`")
947
- .map_err(types::Error::trap)?
948
- .try_into()?,
949
- types::Clockid::Monotonic => monotonic_clock::Host::resolution(self)
950
- .context("failed to call `monotonic_clock::resolution`")
951
- .map_err(types::Error::trap)?,
952
- types::Clockid::ProcessCputimeId | types::Clockid::ThreadCputimeId => {
953
- return Err(types::Errno::Badf.into())
954
- }
955
- };
956
- Ok(res)
957
- }
958
-
959
- #[instrument(skip(self))]
960
- fn clock_time_get(
961
- &mut self,
962
- id: types::Clockid,
963
- _precision: types::Timestamp,
964
- ) -> Result<types::Timestamp, types::Error> {
965
- let now = match id {
966
- types::Clockid::Realtime => wall_clock::Host::now(self)
967
- .context("failed to call `wall_clock::now`")
968
- .map_err(types::Error::trap)?
969
- .try_into()?,
970
- types::Clockid::Monotonic => monotonic_clock::Host::now(self)
971
- .context("failed to call `monotonic_clock::now`")
972
- .map_err(types::Error::trap)?,
973
- types::Clockid::ProcessCputimeId | types::Clockid::ThreadCputimeId => {
974
- return Err(types::Errno::Badf.into())
975
- }
976
- };
977
- Ok(now)
978
- }
979
-
980
- #[instrument(skip(self))]
981
- async fn fd_advise(
982
- &mut self,
983
- fd: types::Fd,
984
- offset: types::Filesize,
985
- len: types::Filesize,
986
- advice: types::Advice,
987
- ) -> Result<(), types::Error> {
988
- let fd = self.get_file_fd(fd)?;
989
- self.advise(fd, offset, len, advice.into())
990
- .await
991
- .map_err(|e| {
992
- e.try_into()
993
- .context("failed to call `advise`")
994
- .unwrap_or_else(types::Error::trap)
995
- })
996
- }
997
-
998
- /// Force the allocation of space in a file.
999
- /// NOTE: This is similar to `posix_fallocate` in POSIX.
1000
- #[instrument(skip(self))]
1001
- fn fd_allocate(
1002
- &mut self,
1003
- fd: types::Fd,
1004
- _offset: types::Filesize,
1005
- _len: types::Filesize,
1006
- ) -> Result<(), types::Error> {
1007
- self.get_file_fd(fd)?;
1008
- Err(types::Errno::Notsup.into())
1009
- }
1010
-
1011
- /// Close a file descriptor.
1012
- /// NOTE: This is similar to `close` in POSIX.
1013
- #[instrument(skip(self))]
1014
- async fn fd_close(&mut self, fd: types::Fd) -> Result<(), types::Error> {
1015
- let desc = self
1016
- .transact()?
1017
- .descriptors
1018
- .remove(fd)
1019
- .ok_or(types::Errno::Badf)?;
1020
- match desc {
1021
- Descriptor::Stdin { stream, .. } => streams::HostInputStream::drop(self, stream)
1022
- .context("failed to call `drop` on `input-stream`"),
1023
- Descriptor::Stdout { stream, .. } | Descriptor::Stderr { stream, .. } => {
1024
- streams::HostOutputStream::drop(self, stream)
1025
- .context("failed to call `drop` on `output-stream`")
1026
- }
1027
- Descriptor::File(File { fd, .. }) | Descriptor::PreopenDirectory((fd, _)) => {
1028
- filesystem::HostDescriptor::drop(self, fd).context("failed to call `drop`")
1029
- }
1030
- }
1031
- .map_err(types::Error::trap)
1032
- }
1033
-
1034
- /// Synchronize the data of a file to disk.
1035
- /// NOTE: This is similar to `fdatasync` in POSIX.
1036
- #[instrument(skip(self))]
1037
- async fn fd_datasync(&mut self, fd: types::Fd) -> Result<(), types::Error> {
1038
- let fd = self.get_file_fd(fd)?;
1039
- self.sync_data(fd).await.map_err(|e| {
1040
- e.try_into()
1041
- .context("failed to call `sync-data`")
1042
- .unwrap_or_else(types::Error::trap)
1043
- })
1044
- }
1045
-
1046
- /// Get the attributes of a file descriptor.
1047
- /// NOTE: This returns similar flags to `fsync(fd, F_GETFL)` in POSIX, as well as additional fields.
1048
- #[instrument(skip(self))]
1049
- async fn fd_fdstat_get(&mut self, fd: types::Fd) -> Result<types::Fdstat, types::Error> {
1050
- let (fd, blocking, append) = match self.transact()?.get_descriptor(fd)? {
1051
- Descriptor::Stdin { isatty, .. } => {
1052
- let fs_rights_base = types::Rights::FD_READ;
1053
- return Ok(types::Fdstat {
1054
- fs_filetype: (*isatty).into(),
1055
- fs_flags: types::Fdflags::empty(),
1056
- fs_rights_base,
1057
- fs_rights_inheriting: fs_rights_base,
1058
- });
1059
- }
1060
- Descriptor::Stdout { isatty, .. } | Descriptor::Stderr { isatty, .. } => {
1061
- let fs_rights_base = types::Rights::FD_WRITE;
1062
- return Ok(types::Fdstat {
1063
- fs_filetype: (*isatty).into(),
1064
- fs_flags: types::Fdflags::empty(),
1065
- fs_rights_base,
1066
- fs_rights_inheriting: fs_rights_base,
1067
- });
1068
- }
1069
- Descriptor::PreopenDirectory((_, _)) => {
1070
- // Hard-coded set or rights expected by many userlands:
1071
- let fs_rights_base = types::Rights::PATH_CREATE_DIRECTORY
1072
- | types::Rights::PATH_CREATE_FILE
1073
- | types::Rights::PATH_LINK_SOURCE
1074
- | types::Rights::PATH_LINK_TARGET
1075
- | types::Rights::PATH_OPEN
1076
- | types::Rights::FD_READDIR
1077
- | types::Rights::PATH_READLINK
1078
- | types::Rights::PATH_RENAME_SOURCE
1079
- | types::Rights::PATH_RENAME_TARGET
1080
- | types::Rights::PATH_SYMLINK
1081
- | types::Rights::PATH_REMOVE_DIRECTORY
1082
- | types::Rights::PATH_UNLINK_FILE
1083
- | types::Rights::PATH_FILESTAT_GET
1084
- | types::Rights::PATH_FILESTAT_SET_TIMES
1085
- | types::Rights::FD_FILESTAT_GET
1086
- | types::Rights::FD_FILESTAT_SET_TIMES;
1087
-
1088
- let fs_rights_inheriting = fs_rights_base
1089
- | types::Rights::FD_DATASYNC
1090
- | types::Rights::FD_READ
1091
- | types::Rights::FD_SEEK
1092
- | types::Rights::FD_FDSTAT_SET_FLAGS
1093
- | types::Rights::FD_SYNC
1094
- | types::Rights::FD_TELL
1095
- | types::Rights::FD_WRITE
1096
- | types::Rights::FD_ADVISE
1097
- | types::Rights::FD_ALLOCATE
1098
- | types::Rights::FD_FILESTAT_GET
1099
- | types::Rights::FD_FILESTAT_SET_SIZE
1100
- | types::Rights::FD_FILESTAT_SET_TIMES
1101
- | types::Rights::POLL_FD_READWRITE;
1102
-
1103
- return Ok(types::Fdstat {
1104
- fs_filetype: types::Filetype::Directory,
1105
- fs_flags: types::Fdflags::empty(),
1106
- fs_rights_base,
1107
- fs_rights_inheriting,
1108
- });
1109
- }
1110
- Descriptor::File(File {
1111
- fd,
1112
- blocking_mode,
1113
- append,
1114
- ..
1115
- }) => (fd.borrowed(), *blocking_mode, *append),
1116
- };
1117
- let flags = self.get_flags(fd.borrowed()).await.map_err(|e| {
1118
- e.try_into()
1119
- .context("failed to call `get-flags`")
1120
- .unwrap_or_else(types::Error::trap)
1121
- })?;
1122
- let fs_filetype = self
1123
- .get_type(fd.borrowed())
1124
- .await
1125
- .map_err(|e| {
1126
- e.try_into()
1127
- .context("failed to call `get-type`")
1128
- .unwrap_or_else(types::Error::trap)
1129
- })?
1130
- .try_into()
1131
- .map_err(types::Error::trap)?;
1132
- let mut fs_flags = types::Fdflags::empty();
1133
- let mut fs_rights_base = types::Rights::all();
1134
- if let types::Filetype::Directory = fs_filetype {
1135
- fs_rights_base &= !types::Rights::FD_SEEK;
1136
- }
1137
- if !flags.contains(filesystem::DescriptorFlags::READ) {
1138
- fs_rights_base &= !types::Rights::FD_READ;
1139
- }
1140
- if !flags.contains(filesystem::DescriptorFlags::WRITE) {
1141
- fs_rights_base &= !types::Rights::FD_WRITE;
1142
- }
1143
- if flags.contains(filesystem::DescriptorFlags::DATA_INTEGRITY_SYNC) {
1144
- fs_flags |= types::Fdflags::DSYNC;
1145
- }
1146
- if flags.contains(filesystem::DescriptorFlags::REQUESTED_WRITE_SYNC) {
1147
- fs_flags |= types::Fdflags::RSYNC;
1148
- }
1149
- if flags.contains(filesystem::DescriptorFlags::FILE_INTEGRITY_SYNC) {
1150
- fs_flags |= types::Fdflags::SYNC;
1151
- }
1152
- if append {
1153
- fs_flags |= types::Fdflags::APPEND;
1154
- }
1155
- if matches!(blocking, BlockingMode::NonBlocking) {
1156
- fs_flags |= types::Fdflags::NONBLOCK;
1157
- }
1158
- Ok(types::Fdstat {
1159
- fs_filetype,
1160
- fs_flags,
1161
- fs_rights_base,
1162
- fs_rights_inheriting: fs_rights_base,
1163
- })
1164
- }
1165
-
1166
- /// Adjust the flags associated with a file descriptor.
1167
- /// NOTE: This is similar to `fcntl(fd, F_SETFL, flags)` in POSIX.
1168
- #[instrument(skip(self))]
1169
- fn fd_fdstat_set_flags(
1170
- &mut self,
1171
- fd: types::Fd,
1172
- flags: types::Fdflags,
1173
- ) -> Result<(), types::Error> {
1174
- let mut st = self.transact()?;
1175
- let File {
1176
- append,
1177
- blocking_mode,
1178
- ..
1179
- } = st.get_file_mut(fd)?;
1180
-
1181
- // Only support changing the NONBLOCK or APPEND flags.
1182
- if flags.contains(types::Fdflags::DSYNC)
1183
- || flags.contains(types::Fdflags::SYNC)
1184
- || flags.contains(types::Fdflags::RSYNC)
1185
- {
1186
- return Err(types::Errno::Inval.into());
1187
- }
1188
- *append = flags.contains(types::Fdflags::APPEND);
1189
- *blocking_mode = BlockingMode::from_fdflags(&flags);
1190
- Ok(())
1191
- }
1192
-
1193
- /// Does not do anything if `fd` corresponds to a valid descriptor and returns `[types::Errno::Badf]` error otherwise.
1194
- #[instrument(skip(self))]
1195
- fn fd_fdstat_set_rights(
1196
- &mut self,
1197
- fd: types::Fd,
1198
- _fs_rights_base: types::Rights,
1199
- _fs_rights_inheriting: types::Rights,
1200
- ) -> Result<(), types::Error> {
1201
- self.get_fd(fd)?;
1202
- Ok(())
1203
- }
1204
-
1205
- /// Return the attributes of an open file.
1206
- #[instrument(skip(self))]
1207
- async fn fd_filestat_get(&mut self, fd: types::Fd) -> Result<types::Filestat, types::Error> {
1208
- let t = self.transact()?;
1209
- let desc = t.get_descriptor(fd)?;
1210
- match desc {
1211
- Descriptor::Stdin { isatty, .. }
1212
- | Descriptor::Stdout { isatty, .. }
1213
- | Descriptor::Stderr { isatty, .. } => Ok(types::Filestat {
1214
- dev: 0,
1215
- ino: 0,
1216
- filetype: (*isatty).into(),
1217
- nlink: 0,
1218
- size: 0,
1219
- atim: 0,
1220
- mtim: 0,
1221
- ctim: 0,
1222
- }),
1223
- Descriptor::PreopenDirectory((fd, _)) | Descriptor::File(File { fd, .. }) => {
1224
- let fd = fd.borrowed();
1225
- drop(t);
1226
- let filesystem::DescriptorStat {
1227
- type_,
1228
- link_count: nlink,
1229
- size,
1230
- data_access_timestamp,
1231
- data_modification_timestamp,
1232
- status_change_timestamp,
1233
- } = self.stat(fd.borrowed()).await.map_err(|e| {
1234
- e.try_into()
1235
- .context("failed to call `stat`")
1236
- .unwrap_or_else(types::Error::trap)
1237
- })?;
1238
- let metadata_hash = self.metadata_hash(fd).await.map_err(|e| {
1239
- e.try_into()
1240
- .context("failed to call `metadata_hash`")
1241
- .unwrap_or_else(types::Error::trap)
1242
- })?;
1243
- let filetype = type_.try_into().map_err(types::Error::trap)?;
1244
- let zero = wall_clock::Datetime {
1245
- seconds: 0,
1246
- nanoseconds: 0,
1247
- };
1248
- let atim = data_access_timestamp.unwrap_or(zero).try_into()?;
1249
- let mtim = data_modification_timestamp.unwrap_or(zero).try_into()?;
1250
- let ctim = status_change_timestamp.unwrap_or(zero).try_into()?;
1251
- Ok(types::Filestat {
1252
- dev: 1,
1253
- ino: metadata_hash.lower,
1254
- filetype,
1255
- nlink,
1256
- size,
1257
- atim,
1258
- mtim,
1259
- ctim,
1260
- })
1261
- }
1262
- }
1263
- }
1264
-
1265
- /// Adjust the size of an open file. If this increases the file's size, the extra bytes are filled with zeros.
1266
- /// NOTE: This is similar to `ftruncate` in POSIX.
1267
- #[instrument(skip(self))]
1268
- async fn fd_filestat_set_size(
1269
- &mut self,
1270
- fd: types::Fd,
1271
- size: types::Filesize,
1272
- ) -> Result<(), types::Error> {
1273
- let fd = self.get_file_fd(fd)?;
1274
- self.set_size(fd, size).await.map_err(|e| {
1275
- e.try_into()
1276
- .context("failed to call `set-size`")
1277
- .unwrap_or_else(types::Error::trap)
1278
- })
1279
- }
1280
-
1281
- /// Adjust the timestamps of an open file or directory.
1282
- /// NOTE: This is similar to `futimens` in POSIX.
1283
- #[instrument(skip(self))]
1284
- async fn fd_filestat_set_times(
1285
- &mut self,
1286
- fd: types::Fd,
1287
- atim: types::Timestamp,
1288
- mtim: types::Timestamp,
1289
- fst_flags: types::Fstflags,
1290
- ) -> Result<(), types::Error> {
1291
- let atim = systimespec(
1292
- fst_flags.contains(types::Fstflags::ATIM),
1293
- atim,
1294
- fst_flags.contains(types::Fstflags::ATIM_NOW),
1295
- )?;
1296
- let mtim = systimespec(
1297
- fst_flags.contains(types::Fstflags::MTIM),
1298
- mtim,
1299
- fst_flags.contains(types::Fstflags::MTIM_NOW),
1300
- )?;
1301
-
1302
- let fd = self.get_fd(fd)?;
1303
- self.set_times(fd, atim, mtim).await.map_err(|e| {
1304
- e.try_into()
1305
- .context("failed to call `set-times`")
1306
- .unwrap_or_else(types::Error::trap)
1307
- })
1308
- }
1309
-
1310
- /// Read from a file descriptor.
1311
- /// NOTE: This is similar to `readv` in POSIX.
1312
- #[instrument(skip(self))]
1313
- async fn fd_read<'a>(
1314
- &mut self,
1315
- fd: types::Fd,
1316
- iovs: &types::IovecArray<'a>,
1317
- ) -> Result<types::Size, types::Error> {
1318
- let t = self.transact()?;
1319
- let desc = t.get_descriptor(fd)?;
1320
- let (mut buf, read) = match desc {
1321
- Descriptor::File(File {
1322
- fd,
1323
- blocking_mode,
1324
- position,
1325
- ..
1326
- }) if t.view.table().get(fd)?.is_file() => {
1327
- let fd = fd.borrowed();
1328
- let blocking_mode = *blocking_mode;
1329
- let position = position.clone();
1330
- drop(t);
1331
- let Some(buf) = first_non_empty_iovec(iovs)? else {
1332
- return Ok(0);
1333
- };
1334
-
1335
- let pos = position.load(Ordering::Relaxed);
1336
- let stream = self.read_via_stream(fd.borrowed(), pos).map_err(|e| {
1337
- e.try_into()
1338
- .context("failed to call `read-via-stream`")
1339
- .unwrap_or_else(types::Error::trap)
1340
- })?;
1341
- let read = blocking_mode.read(self, stream, buf.len()).await?;
1342
- let n = read.len().try_into()?;
1343
- let pos = pos.checked_add(n).ok_or(types::Errno::Overflow)?;
1344
- position.store(pos, Ordering::Relaxed);
1345
-
1346
- (buf, read)
1347
- }
1348
- Descriptor::Stdin { stream, .. } => {
1349
- let stream = stream.borrowed();
1350
- drop(t);
1351
- let Some(buf) = first_non_empty_iovec(iovs)? else {
1352
- return Ok(0);
1353
- };
1354
- let read = BlockingMode::Blocking.read(self, stream, buf.len()).await?;
1355
- (buf, read)
1356
- }
1357
- _ => return Err(types::Errno::Badf.into()),
1358
- };
1359
- if read.len() > buf.len() {
1360
- return Err(types::Errno::Range.into());
1361
- }
1362
- let (buf, _) = buf.split_at_mut(read.len());
1363
- buf.copy_from_slice(&read);
1364
- let n = read.len().try_into()?;
1365
- Ok(n)
1366
- }
1367
-
1368
- /// Read from a file descriptor, without using and updating the file descriptor's offset.
1369
- /// NOTE: This is similar to `preadv` in POSIX.
1370
- #[instrument(skip(self))]
1371
- async fn fd_pread<'a>(
1372
- &mut self,
1373
- fd: types::Fd,
1374
- iovs: &types::IovecArray<'a>,
1375
- offset: types::Filesize,
1376
- ) -> Result<types::Size, types::Error> {
1377
- let t = self.transact()?;
1378
- let desc = t.get_descriptor(fd)?;
1379
- let (mut buf, read) = match desc {
1380
- Descriptor::File(File {
1381
- fd, blocking_mode, ..
1382
- }) if t.view.table().get(fd)?.is_file() => {
1383
- let fd = fd.borrowed();
1384
- let blocking_mode = *blocking_mode;
1385
- drop(t);
1386
- let Some(buf) = first_non_empty_iovec(iovs)? else {
1387
- return Ok(0);
1388
- };
1389
-
1390
- let stream = self.read_via_stream(fd, offset).map_err(|e| {
1391
- e.try_into()
1392
- .context("failed to call `read-via-stream`")
1393
- .unwrap_or_else(types::Error::trap)
1394
- })?;
1395
- let read = blocking_mode.read(self, stream, buf.len()).await?;
1396
- (buf, read)
1397
- }
1398
- Descriptor::Stdin { .. } => {
1399
- // NOTE: legacy implementation returns SPIPE here
1400
- return Err(types::Errno::Spipe.into());
1401
- }
1402
- _ => return Err(types::Errno::Badf.into()),
1403
- };
1404
- if read.len() > buf.len() {
1405
- return Err(types::Errno::Range.into());
1406
- }
1407
- let (buf, _) = buf.split_at_mut(read.len());
1408
- buf.copy_from_slice(&read);
1409
- let n = read.len().try_into()?;
1410
- Ok(n)
1411
- }
1412
-
1413
- /// Write to a file descriptor.
1414
- /// NOTE: This is similar to `writev` in POSIX.
1415
- #[instrument(skip(self))]
1416
- async fn fd_write<'a>(
1417
- &mut self,
1418
- fd: types::Fd,
1419
- ciovs: &types::CiovecArray<'a>,
1420
- ) -> Result<types::Size, types::Error> {
1421
- let t = self.transact()?;
1422
- let desc = t.get_descriptor(fd)?;
1423
- match desc {
1424
- Descriptor::File(File {
1425
- fd,
1426
- blocking_mode,
1427
- append,
1428
- position,
1429
- }) if t.view.table().get(fd)?.is_file() => {
1430
- let fd = fd.borrowed();
1431
- let fd2 = fd.borrowed();
1432
- let blocking_mode = *blocking_mode;
1433
- let position = position.clone();
1434
- let append = *append;
1435
- drop(t);
1436
- let Some(buf) = first_non_empty_ciovec(ciovs)? else {
1437
- return Ok(0);
1438
- };
1439
- let (stream, pos) = if append {
1440
- let stream = self.append_via_stream(fd).map_err(|e| {
1441
- e.try_into()
1442
- .context("failed to call `append-via-stream`")
1443
- .unwrap_or_else(types::Error::trap)
1444
- })?;
1445
- (stream, 0)
1446
- } else {
1447
- let pos = position.load(Ordering::Relaxed);
1448
- let stream = self.write_via_stream(fd, pos).map_err(|e| {
1449
- e.try_into()
1450
- .context("failed to call `write-via-stream`")
1451
- .unwrap_or_else(types::Error::trap)
1452
- })?;
1453
- (stream, pos)
1454
- };
1455
- let n = blocking_mode.write(self, stream, &buf).await?;
1456
- if append {
1457
- let len = self.stat(fd2).await?;
1458
- position.store(len.size, Ordering::Relaxed);
1459
- } else {
1460
- let pos = pos.checked_add(n as u64).ok_or(types::Errno::Overflow)?;
1461
- position.store(pos, Ordering::Relaxed);
1462
- }
1463
- let n = n.try_into()?;
1464
- Ok(n)
1465
- }
1466
- Descriptor::Stdout { stream, .. } | Descriptor::Stderr { stream, .. } => {
1467
- let stream = stream.borrowed();
1468
- drop(t);
1469
- let Some(buf) = first_non_empty_ciovec(ciovs)? else {
1470
- return Ok(0);
1471
- };
1472
- let n = BlockingMode::Blocking
1473
- .write(self, stream, &buf)
1474
- .await?
1475
- .try_into()?;
1476
- Ok(n)
1477
- }
1478
- _ => Err(types::Errno::Badf.into()),
1479
- }
1480
- }
1481
-
1482
- /// Write to a file descriptor, without using and updating the file descriptor's offset.
1483
- /// NOTE: This is similar to `pwritev` in POSIX.
1484
- #[instrument(skip(self))]
1485
- async fn fd_pwrite<'a>(
1486
- &mut self,
1487
- fd: types::Fd,
1488
- ciovs: &types::CiovecArray<'a>,
1489
- offset: types::Filesize,
1490
- ) -> Result<types::Size, types::Error> {
1491
- let t = self.transact()?;
1492
- let desc = t.get_descriptor(fd)?;
1493
- let n = match desc {
1494
- Descriptor::File(File {
1495
- fd, blocking_mode, ..
1496
- }) if t.view.table().get(fd)?.is_file() => {
1497
- let fd = fd.borrowed();
1498
- let blocking_mode = *blocking_mode;
1499
- drop(t);
1500
- let Some(buf) = first_non_empty_ciovec(ciovs)? else {
1501
- return Ok(0);
1502
- };
1503
- let stream = self.write_via_stream(fd, offset).map_err(|e| {
1504
- e.try_into()
1505
- .context("failed to call `write-via-stream`")
1506
- .unwrap_or_else(types::Error::trap)
1507
- })?;
1508
- blocking_mode.write(self, stream, &buf).await?
1509
- }
1510
- Descriptor::Stdout { .. } | Descriptor::Stderr { .. } => {
1511
- // NOTE: legacy implementation returns SPIPE here
1512
- return Err(types::Errno::Spipe.into());
1513
- }
1514
- _ => return Err(types::Errno::Badf.into()),
1515
- };
1516
- Ok(n.try_into()?)
1517
- }
1518
-
1519
- /// Return a description of the given preopened file descriptor.
1520
- #[instrument(skip(self))]
1521
- fn fd_prestat_get(&mut self, fd: types::Fd) -> Result<types::Prestat, types::Error> {
1522
- if let Descriptor::PreopenDirectory((_, p)) = self.transact()?.get_descriptor(fd)? {
1523
- let pr_name_len = p.len().try_into()?;
1524
- return Ok(types::Prestat::Dir(types::PrestatDir { pr_name_len }));
1525
- }
1526
- Err(types::Errno::Badf.into()) // NOTE: legacy implementation returns BADF here
1527
- }
1528
-
1529
- /// Return a description of the given preopened file descriptor.
1530
- #[instrument(skip(self))]
1531
- fn fd_prestat_dir_name<'a>(
1532
- &mut self,
1533
- fd: types::Fd,
1534
- path: &GuestPtr<'a, u8>,
1535
- path_max_len: types::Size,
1536
- ) -> Result<(), types::Error> {
1537
- let path_max_len = path_max_len.try_into()?;
1538
- if let Descriptor::PreopenDirectory((_, p)) = self.transact()?.get_descriptor(fd)? {
1539
- if p.len() > path_max_len {
1540
- return Err(types::Errno::Nametoolong.into());
1541
- }
1542
- write_bytes(path, p.as_bytes())?;
1543
- return Ok(());
1544
- }
1545
- Err(types::Errno::Notdir.into()) // NOTE: legacy implementation returns NOTDIR here
1546
- }
1547
-
1548
- /// Atomically replace a file descriptor by renumbering another file descriptor.
1549
- #[instrument(skip(self))]
1550
- fn fd_renumber(&mut self, from: types::Fd, to: types::Fd) -> Result<(), types::Error> {
1551
- let mut st = self.transact()?;
1552
- let desc = st.descriptors.remove(from).ok_or(types::Errno::Badf)?;
1553
- st.descriptors.insert(to.into(), desc);
1554
- Ok(())
1555
- }
1556
-
1557
- /// Move the offset of a file descriptor.
1558
- /// NOTE: This is similar to `lseek` in POSIX.
1559
- #[instrument(skip(self))]
1560
- async fn fd_seek(
1561
- &mut self,
1562
- fd: types::Fd,
1563
- offset: types::Filedelta,
1564
- whence: types::Whence,
1565
- ) -> Result<types::Filesize, types::Error> {
1566
- let t = self.transact()?;
1567
- let File { fd, position, .. } = t.get_seekable(fd)?;
1568
- let fd = fd.borrowed();
1569
- let position = position.clone();
1570
- drop(t);
1571
- let pos = match whence {
1572
- types::Whence::Set if offset >= 0 => {
1573
- offset.try_into().map_err(|_| types::Errno::Inval)?
1574
- }
1575
- types::Whence::Cur => position
1576
- .load(Ordering::Relaxed)
1577
- .checked_add_signed(offset)
1578
- .ok_or(types::Errno::Inval)?,
1579
- types::Whence::End => {
1580
- let filesystem::DescriptorStat { size, .. } = self.stat(fd).await.map_err(|e| {
1581
- e.try_into()
1582
- .context("failed to call `stat`")
1583
- .unwrap_or_else(types::Error::trap)
1584
- })?;
1585
- size.checked_add_signed(offset).ok_or(types::Errno::Inval)?
1586
- }
1587
- _ => return Err(types::Errno::Inval.into()),
1588
- };
1589
- position.store(pos, Ordering::Relaxed);
1590
- Ok(pos)
1591
- }
1592
-
1593
- /// Synchronize the data and metadata of a file to disk.
1594
- /// NOTE: This is similar to `fsync` in POSIX.
1595
- #[instrument(skip(self))]
1596
- async fn fd_sync(&mut self, fd: types::Fd) -> Result<(), types::Error> {
1597
- let fd = self.get_file_fd(fd)?;
1598
- self.sync(fd).await.map_err(|e| {
1599
- e.try_into()
1600
- .context("failed to call `sync`")
1601
- .unwrap_or_else(types::Error::trap)
1602
- })
1603
- }
1604
-
1605
- /// Return the current offset of a file descriptor.
1606
- /// NOTE: This is similar to `lseek(fd, 0, SEEK_CUR)` in POSIX.
1607
- #[instrument(skip(self))]
1608
- fn fd_tell(&mut self, fd: types::Fd) -> Result<types::Filesize, types::Error> {
1609
- let pos = self
1610
- .transact()?
1611
- .get_seekable(fd)
1612
- .map(|File { position, .. }| position.load(Ordering::Relaxed))?;
1613
- Ok(pos)
1614
- }
1615
-
1616
- #[instrument(skip(self))]
1617
- async fn fd_readdir<'a>(
1618
- &mut self,
1619
- fd: types::Fd,
1620
- buf: &GuestPtr<'a, u8>,
1621
- buf_len: types::Size,
1622
- cookie: types::Dircookie,
1623
- ) -> Result<types::Size, types::Error> {
1624
- let fd = self.get_dir_fd(fd)?;
1625
- let stream = self.read_directory(fd.borrowed()).await.map_err(|e| {
1626
- e.try_into()
1627
- .context("failed to call `read-directory`")
1628
- .unwrap_or_else(types::Error::trap)
1629
- })?;
1630
- let dir_metadata_hash = self.metadata_hash(fd.borrowed()).await.map_err(|e| {
1631
- e.try_into()
1632
- .context("failed to call `metadata-hash`")
1633
- .unwrap_or_else(types::Error::trap)
1634
- })?;
1635
- let cookie = cookie.try_into().map_err(|_| types::Errno::Overflow)?;
1636
-
1637
- let head = [
1638
- (
1639
- types::Dirent {
1640
- d_next: 1u64.to_le(),
1641
- d_ino: dir_metadata_hash.lower.to_le(),
1642
- d_type: types::Filetype::Directory,
1643
- d_namlen: 1u32.to_le(),
1644
- },
1645
- ".".into(),
1646
- ),
1647
- (
1648
- types::Dirent {
1649
- d_next: 2u64.to_le(),
1650
- d_ino: dir_metadata_hash.lower.to_le(), // NOTE: incorrect, but legacy implementation returns `fd` inode here
1651
- d_type: types::Filetype::Directory,
1652
- d_namlen: 2u32.to_le(),
1653
- },
1654
- "..".into(),
1655
- ),
1656
- ];
1657
-
1658
- let mut dir = Vec::new();
1659
- for (entry, d_next) in self
1660
- .table_mut()
1661
- // remove iterator from table and use it directly:
1662
- .delete(stream)?
1663
- .into_iter()
1664
- .zip(3u64..)
1665
- {
1666
- let filesystem::DirectoryEntry { type_, name } = entry.map_err(|e| {
1667
- e.try_into()
1668
- .context("failed to inspect `read-directory` entry")
1669
- .unwrap_or_else(types::Error::trap)
1670
- })?;
1671
- let metadata_hash = self
1672
- .metadata_hash_at(fd.borrowed(), filesystem::PathFlags::empty(), name.clone())
1673
- .await
1674
- .map_err(|e| {
1675
- e.try_into()
1676
- .context("failed to call `metadata-hash-at`")
1677
- .unwrap_or_else(types::Error::trap)
1678
- })?;
1679
- let d_type = type_.try_into().map_err(types::Error::trap)?;
1680
- let d_namlen: u32 = name.len().try_into().map_err(|_| types::Errno::Overflow)?;
1681
- dir.push((
1682
- types::Dirent {
1683
- d_next: d_next.to_le(),
1684
- d_ino: metadata_hash.lower.to_le(),
1685
- d_type, // endian-invariant
1686
- d_namlen: d_namlen.to_le(),
1687
- },
1688
- name,
1689
- ))
1690
- }
1691
-
1692
- // assume that `types::Dirent` size always fits in `u32`
1693
- const DIRENT_SIZE: u32 = size_of::<types::Dirent>() as _;
1694
- assert_eq!(
1695
- types::Dirent::guest_size(),
1696
- DIRENT_SIZE,
1697
- "Dirent guest repr and host repr should match"
1698
- );
1699
- let mut buf = *buf;
1700
- let mut cap = buf_len;
1701
- for (ref entry, path) in head.into_iter().chain(dir.into_iter()).skip(cookie) {
1702
- let mut path = path.into_bytes();
1703
- assert_eq!(
1704
- 1,
1705
- size_of_val(&entry.d_type),
1706
- "Dirent member d_type should be endian-invariant"
1707
- );
1708
- let entry_len = cap.min(DIRENT_SIZE);
1709
- let entry = entry as *const _ as _;
1710
- let entry = unsafe { slice::from_raw_parts(entry, entry_len as _) };
1711
- cap = cap.checked_sub(entry_len).unwrap();
1712
- buf = write_bytes(buf, entry)?;
1713
- if cap == 0 {
1714
- return Ok(buf_len);
1715
- }
1716
-
1717
- if let Ok(cap) = cap.try_into() {
1718
- // `path` cannot be longer than `usize`, only truncate if `cap` fits in `usize`
1719
- path.truncate(cap);
1720
- }
1721
- cap = cap.checked_sub(path.len() as _).unwrap();
1722
- buf = write_bytes(buf, &path)?;
1723
- if cap == 0 {
1724
- return Ok(buf_len);
1725
- }
1726
- }
1727
- Ok(buf_len.checked_sub(cap).unwrap())
1728
- }
1729
-
1730
- #[instrument(skip(self))]
1731
- async fn path_create_directory<'a>(
1732
- &mut self,
1733
- dirfd: types::Fd,
1734
- path: &GuestPtr<'a, str>,
1735
- ) -> Result<(), types::Error> {
1736
- let dirfd = self.get_dir_fd(dirfd)?;
1737
- let path = read_string(path)?;
1738
- self.create_directory_at(dirfd.borrowed(), path)
1739
- .await
1740
- .map_err(|e| {
1741
- e.try_into()
1742
- .context("failed to call `create-directory-at`")
1743
- .unwrap_or_else(types::Error::trap)
1744
- })
1745
- }
1746
-
1747
- /// Return the attributes of a file or directory.
1748
- /// NOTE: This is similar to `stat` in POSIX.
1749
- #[instrument(skip(self))]
1750
- async fn path_filestat_get<'a>(
1751
- &mut self,
1752
- dirfd: types::Fd,
1753
- flags: types::Lookupflags,
1754
- path: &GuestPtr<'a, str>,
1755
- ) -> Result<types::Filestat, types::Error> {
1756
- let dirfd = self.get_dir_fd(dirfd)?;
1757
- let path = read_string(path)?;
1758
- let filesystem::DescriptorStat {
1759
- type_,
1760
- link_count: nlink,
1761
- size,
1762
- data_access_timestamp,
1763
- data_modification_timestamp,
1764
- status_change_timestamp,
1765
- } = self
1766
- .stat_at(dirfd.borrowed(), flags.into(), path.clone())
1767
- .await
1768
- .map_err(|e| {
1769
- e.try_into()
1770
- .context("failed to call `stat-at`")
1771
- .unwrap_or_else(types::Error::trap)
1772
- })?;
1773
- let metadata_hash = self
1774
- .metadata_hash_at(dirfd, flags.into(), path)
1775
- .await
1776
- .map_err(|e| {
1777
- e.try_into()
1778
- .context("failed to call `metadata-hash-at`")
1779
- .unwrap_or_else(types::Error::trap)
1780
- })?;
1781
- let filetype = type_.try_into().map_err(types::Error::trap)?;
1782
- let zero = wall_clock::Datetime {
1783
- seconds: 0,
1784
- nanoseconds: 0,
1785
- };
1786
- let atim = data_access_timestamp.unwrap_or(zero).try_into()?;
1787
- let mtim = data_modification_timestamp.unwrap_or(zero).try_into()?;
1788
- let ctim = status_change_timestamp.unwrap_or(zero).try_into()?;
1789
- Ok(types::Filestat {
1790
- dev: 1,
1791
- ino: metadata_hash.lower,
1792
- filetype,
1793
- nlink,
1794
- size,
1795
- atim,
1796
- mtim,
1797
- ctim,
1798
- })
1799
- }
1800
-
1801
- /// Adjust the timestamps of a file or directory.
1802
- /// NOTE: This is similar to `utimensat` in POSIX.
1803
- #[instrument(skip(self))]
1804
- async fn path_filestat_set_times<'a>(
1805
- &mut self,
1806
- dirfd: types::Fd,
1807
- flags: types::Lookupflags,
1808
- path: &GuestPtr<'a, str>,
1809
- atim: types::Timestamp,
1810
- mtim: types::Timestamp,
1811
- fst_flags: types::Fstflags,
1812
- ) -> Result<(), types::Error> {
1813
- let atim = systimespec(
1814
- fst_flags.contains(types::Fstflags::ATIM),
1815
- atim,
1816
- fst_flags.contains(types::Fstflags::ATIM_NOW),
1817
- )?;
1818
- let mtim = systimespec(
1819
- fst_flags.contains(types::Fstflags::MTIM),
1820
- mtim,
1821
- fst_flags.contains(types::Fstflags::MTIM_NOW),
1822
- )?;
1823
-
1824
- let dirfd = self.get_dir_fd(dirfd)?;
1825
- let path = read_string(path)?;
1826
- self.set_times_at(dirfd, flags.into(), path, atim, mtim)
1827
- .await
1828
- .map_err(|e| {
1829
- e.try_into()
1830
- .context("failed to call `set-times-at`")
1831
- .unwrap_or_else(types::Error::trap)
1832
- })
1833
- }
1834
-
1835
- /// Create a hard link.
1836
- /// NOTE: This is similar to `linkat` in POSIX.
1837
- #[instrument(skip(self))]
1838
- async fn path_link<'a>(
1839
- &mut self,
1840
- src_fd: types::Fd,
1841
- src_flags: types::Lookupflags,
1842
- src_path: &GuestPtr<'a, str>,
1843
- target_fd: types::Fd,
1844
- target_path: &GuestPtr<'a, str>,
1845
- ) -> Result<(), types::Error> {
1846
- let src_fd = self.get_dir_fd(src_fd)?;
1847
- let target_fd = self.get_dir_fd(target_fd)?;
1848
- let src_path = read_string(src_path)?;
1849
- let target_path = read_string(target_path)?;
1850
- self.link_at(src_fd, src_flags.into(), src_path, target_fd, target_path)
1851
- .await
1852
- .map_err(|e| {
1853
- e.try_into()
1854
- .context("failed to call `link-at`")
1855
- .unwrap_or_else(types::Error::trap)
1856
- })
1857
- }
1858
-
1859
- /// Open a file or directory.
1860
- /// NOTE: This is similar to `openat` in POSIX.
1861
- #[instrument(skip(self))]
1862
- async fn path_open<'a>(
1863
- &mut self,
1864
- dirfd: types::Fd,
1865
- dirflags: types::Lookupflags,
1866
- path: &GuestPtr<'a, str>,
1867
- oflags: types::Oflags,
1868
- fs_rights_base: types::Rights,
1869
- _fs_rights_inheriting: types::Rights,
1870
- fdflags: types::Fdflags,
1871
- ) -> Result<types::Fd, types::Error> {
1872
- let path = read_string(path)?;
1873
-
1874
- let mut flags = filesystem::DescriptorFlags::empty();
1875
- if fs_rights_base.contains(types::Rights::FD_READ) {
1876
- flags |= filesystem::DescriptorFlags::READ;
1877
- }
1878
- if fs_rights_base.contains(types::Rights::FD_WRITE) {
1879
- flags |= filesystem::DescriptorFlags::WRITE;
1880
- }
1881
- if fdflags.contains(types::Fdflags::SYNC) {
1882
- flags |= filesystem::DescriptorFlags::FILE_INTEGRITY_SYNC;
1883
- }
1884
- if fdflags.contains(types::Fdflags::DSYNC) {
1885
- flags |= filesystem::DescriptorFlags::DATA_INTEGRITY_SYNC;
1886
- }
1887
- if fdflags.contains(types::Fdflags::RSYNC) {
1888
- flags |= filesystem::DescriptorFlags::REQUESTED_WRITE_SYNC;
1889
- }
1890
-
1891
- let t = self.transact()?;
1892
- let dirfd = match t.get_descriptor(dirfd)? {
1893
- Descriptor::PreopenDirectory((fd, _)) => fd.borrowed(),
1894
- Descriptor::File(File { fd, .. }) => {
1895
- t.view.table().get(fd)?.dir()?;
1896
- fd.borrowed()
1897
- }
1898
- _ => return Err(types::Errno::Badf.into()),
1899
- };
1900
- drop(t);
1901
- let fd = self
1902
- .open_at(dirfd, dirflags.into(), path, oflags.into(), flags)
1903
- .await
1904
- .map_err(|e| {
1905
- e.try_into()
1906
- .context("failed to call `open-at`")
1907
- .unwrap_or_else(types::Error::trap)
1908
- })?;
1909
- let fd = self.transact()?.descriptors.push_file(File {
1910
- fd,
1911
- position: Default::default(),
1912
- append: fdflags.contains(types::Fdflags::APPEND),
1913
- blocking_mode: BlockingMode::from_fdflags(&fdflags),
1914
- })?;
1915
- Ok(fd.into())
1916
- }
1917
-
1918
- /// Read the contents of a symbolic link.
1919
- /// NOTE: This is similar to `readlinkat` in POSIX.
1920
- #[instrument(skip(self))]
1921
- async fn path_readlink<'a>(
1922
- &mut self,
1923
- dirfd: types::Fd,
1924
- path: &GuestPtr<'a, str>,
1925
- buf: &GuestPtr<'a, u8>,
1926
- buf_len: types::Size,
1927
- ) -> Result<types::Size, types::Error> {
1928
- let dirfd = self.get_dir_fd(dirfd)?;
1929
- let path = read_string(path)?;
1930
- let mut path = self
1931
- .readlink_at(dirfd, path)
1932
- .await
1933
- .map_err(|e| {
1934
- e.try_into()
1935
- .context("failed to call `readlink-at`")
1936
- .unwrap_or_else(types::Error::trap)
1937
- })?
1938
- .into_bytes();
1939
- if let Ok(buf_len) = buf_len.try_into() {
1940
- // `path` cannot be longer than `usize`, only truncate if `buf_len` fits in `usize`
1941
- path.truncate(buf_len);
1942
- }
1943
- let n = path.len().try_into().map_err(|_| types::Errno::Overflow)?;
1944
- write_bytes(buf, &path)?;
1945
- Ok(n)
1946
- }
1947
-
1948
- #[instrument(skip(self))]
1949
- async fn path_remove_directory<'a>(
1950
- &mut self,
1951
- dirfd: types::Fd,
1952
- path: &GuestPtr<'a, str>,
1953
- ) -> Result<(), types::Error> {
1954
- let dirfd = self.get_dir_fd(dirfd)?;
1955
- let path = read_string(path)?;
1956
- self.remove_directory_at(dirfd, path).await.map_err(|e| {
1957
- e.try_into()
1958
- .context("failed to call `remove-directory-at`")
1959
- .unwrap_or_else(types::Error::trap)
1960
- })
1961
- }
1962
-
1963
- /// Rename a file or directory.
1964
- /// NOTE: This is similar to `renameat` in POSIX.
1965
- #[instrument(skip(self))]
1966
- async fn path_rename<'a>(
1967
- &mut self,
1968
- src_fd: types::Fd,
1969
- src_path: &GuestPtr<'a, str>,
1970
- dest_fd: types::Fd,
1971
- dest_path: &GuestPtr<'a, str>,
1972
- ) -> Result<(), types::Error> {
1973
- let src_fd = self.get_dir_fd(src_fd)?;
1974
- let dest_fd = self.get_dir_fd(dest_fd)?;
1975
- let src_path = read_string(src_path)?;
1976
- let dest_path = read_string(dest_path)?;
1977
- self.rename_at(src_fd, src_path, dest_fd, dest_path)
1978
- .await
1979
- .map_err(|e| {
1980
- e.try_into()
1981
- .context("failed to call `rename-at`")
1982
- .unwrap_or_else(types::Error::trap)
1983
- })
1984
- }
1985
-
1986
- #[instrument(skip(self))]
1987
- async fn path_symlink<'a>(
1988
- &mut self,
1989
- src_path: &GuestPtr<'a, str>,
1990
- dirfd: types::Fd,
1991
- dest_path: &GuestPtr<'a, str>,
1992
- ) -> Result<(), types::Error> {
1993
- let dirfd = self.get_dir_fd(dirfd)?;
1994
- let src_path = read_string(src_path)?;
1995
- let dest_path = read_string(dest_path)?;
1996
- self.symlink_at(dirfd.borrowed(), src_path, dest_path)
1997
- .await
1998
- .map_err(|e| {
1999
- e.try_into()
2000
- .context("failed to call `symlink-at`")
2001
- .unwrap_or_else(types::Error::trap)
2002
- })
2003
- }
2004
-
2005
- #[instrument(skip(self))]
2006
- async fn path_unlink_file<'a>(
2007
- &mut self,
2008
- dirfd: types::Fd,
2009
- path: &GuestPtr<'a, str>,
2010
- ) -> Result<(), types::Error> {
2011
- let dirfd = self.get_dir_fd(dirfd)?;
2012
- let path = path.as_cow()?.to_string();
2013
- self.unlink_file_at(dirfd.borrowed(), path)
2014
- .await
2015
- .map_err(|e| {
2016
- e.try_into()
2017
- .context("failed to call `unlink-file-at`")
2018
- .unwrap_or_else(types::Error::trap)
2019
- })
2020
- }
2021
-
2022
- #[instrument(skip(self))]
2023
- async fn poll_oneoff<'a>(
2024
- &mut self,
2025
- subs: &GuestPtr<'a, types::Subscription>,
2026
- events: &GuestPtr<'a, types::Event>,
2027
- nsubscriptions: types::Size,
2028
- ) -> Result<types::Size, types::Error> {
2029
- if nsubscriptions == 0 {
2030
- // Indefinite sleeping is not supported in preview1.
2031
- return Err(types::Errno::Inval.into());
2032
- }
2033
- let subs = subs.as_array(nsubscriptions);
2034
- let events = events.as_array(nsubscriptions);
2035
-
2036
- let n = usize::try_from(nsubscriptions).unwrap_or(usize::MAX);
2037
- let mut pollables = Vec::with_capacity(n);
2038
- for sub in subs.iter() {
2039
- let sub = sub?.read()?;
2040
- let p = match sub.u {
2041
- types::SubscriptionU::Clock(types::SubscriptionClock {
2042
- id,
2043
- timeout,
2044
- flags,
2045
- ..
2046
- }) => {
2047
- let absolute = flags.contains(types::Subclockflags::SUBSCRIPTION_CLOCK_ABSTIME);
2048
- let (timeout, absolute) = match id {
2049
- types::Clockid::Monotonic => (timeout, absolute),
2050
- types::Clockid::Realtime if !absolute => (timeout, false),
2051
- types::Clockid::Realtime => {
2052
- let now = wall_clock::Host::now(self)
2053
- .context("failed to call `wall_clock::now`")
2054
- .map_err(types::Error::trap)?;
2055
-
2056
- // Convert `timeout` to `Datetime` format.
2057
- let seconds = timeout / 1_000_000_000;
2058
- let nanoseconds = timeout % 1_000_000_000;
2059
-
2060
- let timeout = if now.seconds < seconds
2061
- || now.seconds == seconds
2062
- && u64::from(now.nanoseconds) < nanoseconds
2063
- {
2064
- // `now` is less than `timeout`, which is expressable as u64,
2065
- // substract the nanosecond counts directly
2066
- now.seconds * 1_000_000_000 + u64::from(now.nanoseconds) - timeout
2067
- } else {
2068
- 0
2069
- };
2070
- (timeout, false)
2071
- }
2072
- _ => return Err(types::Errno::Inval.into()),
2073
- };
2074
- if absolute {
2075
- monotonic_clock::Host::subscribe_instant(self, timeout)
2076
- .context("failed to call `monotonic_clock::subscribe_instant`")
2077
- .map_err(types::Error::trap)?
2078
- } else {
2079
- monotonic_clock::Host::subscribe_duration(self, timeout)
2080
- .context("failed to call `monotonic_clock::subscribe_duration`")
2081
- .map_err(types::Error::trap)?
2082
- }
2083
- }
2084
- types::SubscriptionU::FdRead(types::SubscriptionFdReadwrite {
2085
- file_descriptor,
2086
- }) => {
2087
- let stream = {
2088
- let t = self.transact()?;
2089
- let desc = t.get_descriptor(file_descriptor)?;
2090
- match desc {
2091
- Descriptor::Stdin { stream, .. } => stream.borrowed(),
2092
- Descriptor::File(File { fd, position, .. })
2093
- if t.view.table().get(fd)?.is_file() =>
2094
- {
2095
- let pos = position.load(Ordering::Relaxed);
2096
- let fd = fd.borrowed();
2097
- drop(t);
2098
- self.read_via_stream(fd, pos).map_err(|e| {
2099
- e.try_into()
2100
- .context("failed to call `read-via-stream`")
2101
- .unwrap_or_else(types::Error::trap)
2102
- })?
2103
- }
2104
- // TODO: Support sockets
2105
- _ => return Err(types::Errno::Badf.into()),
2106
- }
2107
- };
2108
- streams::HostInputStream::subscribe(self, stream)
2109
- .context("failed to call `subscribe` on `input-stream`")
2110
- .map_err(types::Error::trap)?
2111
- }
2112
- types::SubscriptionU::FdWrite(types::SubscriptionFdReadwrite {
2113
- file_descriptor,
2114
- }) => {
2115
- let stream = {
2116
- let t = self.transact()?;
2117
- let desc = t.get_descriptor(file_descriptor)?;
2118
- match desc {
2119
- Descriptor::Stdout { stream, .. }
2120
- | Descriptor::Stderr { stream, .. } => stream.borrowed(),
2121
- Descriptor::File(File {
2122
- fd,
2123
- position,
2124
- append,
2125
- ..
2126
- }) if t.view.table().get(fd)?.is_file() => {
2127
- let fd = fd.borrowed();
2128
- let position = position.clone();
2129
- let append = *append;
2130
- drop(t);
2131
- if append {
2132
- self.append_via_stream(fd).map_err(|e| {
2133
- e.try_into()
2134
- .context("failed to call `append-via-stream`")
2135
- .unwrap_or_else(types::Error::trap)
2136
- })?
2137
- } else {
2138
- let pos = position.load(Ordering::Relaxed);
2139
- self.write_via_stream(fd, pos).map_err(|e| {
2140
- e.try_into()
2141
- .context("failed to call `write-via-stream`")
2142
- .unwrap_or_else(types::Error::trap)
2143
- })?
2144
- }
2145
- }
2146
- // TODO: Support sockets
2147
- _ => return Err(types::Errno::Badf.into()),
2148
- }
2149
- };
2150
- streams::HostOutputStream::subscribe(self, stream)
2151
- .context("failed to call `subscribe` on `output-stream`")
2152
- .map_err(types::Error::trap)?
2153
- }
2154
- };
2155
- pollables.push(p);
2156
- }
2157
- let ready: HashSet<_> = self
2158
- .poll(pollables)
2159
- .await
2160
- .context("failed to call `poll-oneoff`")
2161
- .map_err(types::Error::trap)?
2162
- .into_iter()
2163
- .collect();
2164
-
2165
- let mut count: types::Size = 0;
2166
- for (sub, event) in (0..)
2167
- .zip(subs.iter())
2168
- .filter_map(|(idx, sub)| ready.contains(&idx).then_some(sub))
2169
- .zip(events.iter())
2170
- {
2171
- let sub = sub?.read()?;
2172
- let event = event?;
2173
- let e = match sub.u {
2174
- types::SubscriptionU::Clock(..) => types::Event {
2175
- userdata: sub.userdata,
2176
- error: types::Errno::Success,
2177
- type_: types::Eventtype::Clock,
2178
- fd_readwrite: types::EventFdReadwrite {
2179
- flags: types::Eventrwflags::empty(),
2180
- nbytes: 0,
2181
- },
2182
- },
2183
- types::SubscriptionU::FdRead(types::SubscriptionFdReadwrite {
2184
- file_descriptor,
2185
- }) => {
2186
- let t = self.transact()?;
2187
- let desc = t.get_descriptor(file_descriptor)?;
2188
- match desc {
2189
- Descriptor::Stdin { .. } => types::Event {
2190
- userdata: sub.userdata,
2191
- error: types::Errno::Success,
2192
- type_: types::Eventtype::FdRead,
2193
- fd_readwrite: types::EventFdReadwrite {
2194
- flags: types::Eventrwflags::empty(),
2195
- nbytes: 1,
2196
- },
2197
- },
2198
- Descriptor::File(File { fd, position, .. })
2199
- if t.view.table().get(fd)?.is_file() =>
2200
- {
2201
- let fd = fd.borrowed();
2202
- let position = position.clone();
2203
- drop(t);
2204
- match self.stat(fd).await? {
2205
- filesystem::DescriptorStat { size, .. } => {
2206
- let pos = position.load(Ordering::Relaxed);
2207
- let nbytes = size.saturating_sub(pos);
2208
- types::Event {
2209
- userdata: sub.userdata,
2210
- error: types::Errno::Success,
2211
- type_: types::Eventtype::FdRead,
2212
- fd_readwrite: types::EventFdReadwrite {
2213
- flags: if nbytes == 0 {
2214
- types::Eventrwflags::FD_READWRITE_HANGUP
2215
- } else {
2216
- types::Eventrwflags::empty()
2217
- },
2218
- nbytes: 1,
2219
- },
2220
- }
2221
- }
2222
- }
2223
- }
2224
- // TODO: Support sockets
2225
- _ => return Err(types::Errno::Badf.into()),
2226
- }
2227
- }
2228
- types::SubscriptionU::FdWrite(types::SubscriptionFdReadwrite {
2229
- file_descriptor,
2230
- }) => {
2231
- let t = self.transact()?;
2232
- let desc = t.get_descriptor(file_descriptor)?;
2233
- match desc {
2234
- Descriptor::Stdout { .. } | Descriptor::Stderr { .. } => types::Event {
2235
- userdata: sub.userdata,
2236
- error: types::Errno::Success,
2237
- type_: types::Eventtype::FdWrite,
2238
- fd_readwrite: types::EventFdReadwrite {
2239
- flags: types::Eventrwflags::empty(),
2240
- nbytes: 1,
2241
- },
2242
- },
2243
- Descriptor::File(File { fd, .. }) if t.view.table().get(fd)?.is_file() => {
2244
- types::Event {
2245
- userdata: sub.userdata,
2246
- error: types::Errno::Success,
2247
- type_: types::Eventtype::FdWrite,
2248
- fd_readwrite: types::EventFdReadwrite {
2249
- flags: types::Eventrwflags::empty(),
2250
- nbytes: 1,
2251
- },
2252
- }
2253
- }
2254
- // TODO: Support sockets
2255
- _ => return Err(types::Errno::Badf.into()),
2256
- }
2257
- }
2258
- };
2259
- event.write(e)?;
2260
- count = count
2261
- .checked_add(1)
2262
- .ok_or_else(|| types::Error::from(types::Errno::Overflow))?
2263
- }
2264
- Ok(count)
2265
- }
2266
-
2267
- #[instrument(skip(self))]
2268
- fn proc_exit(&mut self, status: types::Exitcode) -> anyhow::Error {
2269
- // Check that the status is within WASI's range.
2270
- if status >= 126 {
2271
- return anyhow::Error::msg("exit with invalid exit status outside of [0..126)");
2272
- }
2273
- crate::preview2::I32Exit(status as i32).into()
2274
- }
2275
-
2276
- #[instrument(skip(self))]
2277
- fn proc_raise(&mut self, _sig: types::Signal) -> Result<(), types::Error> {
2278
- Err(types::Errno::Notsup.into())
2279
- }
2280
-
2281
- #[instrument(skip(self))]
2282
- fn sched_yield(&mut self) -> Result<(), types::Error> {
2283
- // No such thing in preview 2. Intentionally left empty.
2284
- Ok(())
2285
- }
2286
-
2287
- #[instrument(skip(self))]
2288
- fn random_get<'a>(
2289
- &mut self,
2290
- buf: &GuestPtr<'a, u8>,
2291
- buf_len: types::Size,
2292
- ) -> Result<(), types::Error> {
2293
- let rand = self
2294
- .get_random_bytes(buf_len.into())
2295
- .context("failed to call `get-random-bytes`")
2296
- .map_err(types::Error::trap)?;
2297
- write_bytes(buf, &rand)?;
2298
- Ok(())
2299
- }
2300
-
2301
- #[allow(unused_variables)]
2302
- #[instrument(skip(self))]
2303
- fn sock_accept(
2304
- &mut self,
2305
- fd: types::Fd,
2306
- flags: types::Fdflags,
2307
- ) -> Result<types::Fd, types::Error> {
2308
- todo!("preview1 sock_accept is not implemented")
2309
- }
2310
-
2311
- #[allow(unused_variables)]
2312
- #[instrument(skip(self))]
2313
- fn sock_recv<'a>(
2314
- &mut self,
2315
- fd: types::Fd,
2316
- ri_data: &types::IovecArray<'a>,
2317
- ri_flags: types::Riflags,
2318
- ) -> Result<(types::Size, types::Roflags), types::Error> {
2319
- todo!("preview1 sock_recv is not implemented")
2320
- }
2321
-
2322
- #[allow(unused_variables)]
2323
- #[instrument(skip(self))]
2324
- fn sock_send<'a>(
2325
- &mut self,
2326
- fd: types::Fd,
2327
- si_data: &types::CiovecArray<'a>,
2328
- _si_flags: types::Siflags,
2329
- ) -> Result<types::Size, types::Error> {
2330
- todo!("preview1 sock_send is not implemented")
2331
- }
2332
-
2333
- #[allow(unused_variables)]
2334
- #[instrument(skip(self))]
2335
- fn sock_shutdown(&mut self, fd: types::Fd, how: types::Sdflags) -> Result<(), types::Error> {
2336
- todo!("preview1 sock_shutdown is not implemented")
2337
- }
2338
- }
2339
-
2340
- trait ResourceExt<T> {
2341
- fn borrowed(&self) -> Resource<T>;
2342
- }
2343
-
2344
- impl<T: 'static> ResourceExt<T> for Resource<T> {
2345
- fn borrowed(&self) -> Resource<T> {
2346
- Resource::new_borrow(self.rep())
2347
- }
2348
- }