wasmtime 15.0.1 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1212) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +83 -103
  3. data/ext/Cargo.toml +6 -6
  4. data/ext/cargo-vendor/cranelift-bforest-0.103.0/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.103.0/Cargo.toml +40 -0
  6. data/ext/cargo-vendor/cranelift-bforest-0.103.0/src/lib.rs +183 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.103.0/.cargo-checksum.json +1 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.103.0/Cargo.toml +175 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/binemit/mod.rs +171 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/cost.rs +171 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/elaborate.rs +750 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph.rs +703 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/dfg.rs +1735 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/pcc.rs +1682 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/aarch64/lower/isle.rs +874 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst/mod.rs +2041 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst.isle +2928 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/lower.isle +2864 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/s390x/lower/isle.rs +1029 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/lower/isle.rs +1064 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/pcc.rs +916 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isle_prelude.rs +977 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/lib.rs +106 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/machinst/isle.rs +896 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/arithmetic.isle +152 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/cprop.isle +237 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/icmp.isle +199 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/selects.isle +76 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts.rs +172 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/prelude.isle +649 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/timing.rs +297 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/unionfind.rs +75 -0
  33. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/.cargo-checksum.json +1 -0
  34. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/Cargo.toml +35 -0
  35. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/.cargo-checksum.json +1 -0
  36. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/Cargo.toml +22 -0
  37. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/src/lib.rs +10 -0
  38. data/ext/cargo-vendor/cranelift-control-0.103.0/.cargo-checksum.json +1 -0
  39. data/ext/cargo-vendor/cranelift-control-0.103.0/Cargo.toml +30 -0
  40. data/ext/cargo-vendor/cranelift-entity-0.103.0/.cargo-checksum.json +1 -0
  41. data/ext/cargo-vendor/cranelift-entity-0.103.0/Cargo.toml +50 -0
  42. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/lib.rs +317 -0
  43. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/primary.rs +516 -0
  44. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/unsigned.rs +71 -0
  45. data/ext/cargo-vendor/cranelift-frontend-0.103.0/.cargo-checksum.json +1 -0
  46. data/ext/cargo-vendor/cranelift-frontend-0.103.0/Cargo.toml +68 -0
  47. data/ext/cargo-vendor/cranelift-frontend-0.103.0/src/lib.rs +189 -0
  48. data/ext/cargo-vendor/cranelift-isle-0.103.0/.cargo-checksum.json +1 -0
  49. data/ext/cargo-vendor/cranelift-isle-0.103.0/Cargo.toml +46 -0
  50. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_constructor_main.rs +88 -0
  51. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_extractor_main.rs +63 -0
  52. data/ext/cargo-vendor/cranelift-isle-0.103.0/src/codegen.rs +886 -0
  53. data/ext/cargo-vendor/cranelift-native-0.103.0/.cargo-checksum.json +1 -0
  54. data/ext/cargo-vendor/cranelift-native-0.103.0/Cargo.toml +43 -0
  55. data/ext/cargo-vendor/cranelift-native-0.103.0/src/lib.rs +184 -0
  56. data/ext/cargo-vendor/cranelift-wasm-0.103.0/.cargo-checksum.json +1 -0
  57. data/ext/cargo-vendor/cranelift-wasm-0.103.0/Cargo.toml +106 -0
  58. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/environ/dummy.rs +953 -0
  59. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/lib.rs +62 -0
  60. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/translation_utils.rs +89 -0
  61. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/.cargo-checksum.json +1 -0
  62. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/Cargo.toml +102 -0
  63. data/ext/cargo-vendor/wasi-common-16.0.0/.cargo-checksum.json +1 -0
  64. data/ext/cargo-vendor/wasi-common-16.0.0/Cargo.toml +131 -0
  65. data/ext/cargo-vendor/wasi-common-16.0.0/src/lib.rs +76 -0
  66. data/ext/cargo-vendor/wasi-common-16.0.0/src/snapshots/preview_1.rs +1492 -0
  67. data/ext/cargo-vendor/wasmtime-16.0.0/.cargo-checksum.json +1 -0
  68. data/ext/cargo-vendor/wasmtime-16.0.0/Cargo.toml +211 -0
  69. data/ext/cargo-vendor/wasmtime-16.0.0/src/compiler.rs +682 -0
  70. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/component.rs +505 -0
  71. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/func/typed.rs +2400 -0
  72. data/ext/cargo-vendor/wasmtime-16.0.0/src/config.rs +2422 -0
  73. data/ext/cargo-vendor/wasmtime-16.0.0/src/func.rs +2391 -0
  74. data/ext/cargo-vendor/wasmtime-16.0.0/src/lib.rs +520 -0
  75. data/ext/cargo-vendor/wasmtime-16.0.0/src/memory.rs +998 -0
  76. data/ext/cargo-vendor/wasmtime-16.0.0/src/module.rs +1370 -0
  77. data/ext/cargo-vendor/wasmtime-16.0.0/src/stack.rs +73 -0
  78. data/ext/cargo-vendor/wasmtime-16.0.0/src/v128.rs +122 -0
  79. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/.cargo-checksum.json +1 -0
  80. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/Cargo.toml +22 -0
  81. data/ext/cargo-vendor/wasmtime-cache-16.0.0/.cargo-checksum.json +1 -0
  82. data/ext/cargo-vendor/wasmtime-cache-16.0.0/Cargo.toml +81 -0
  83. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/lib.rs +235 -0
  84. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/worker.rs +890 -0
  85. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/Cargo.toml +67 -0
  87. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/.cargo-checksum.json +1 -0
  88. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/Cargo.toml +25 -0
  89. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/.cargo-checksum.json +1 -0
  90. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/Cargo.toml +112 -0
  91. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler/component.rs +959 -0
  92. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler.rs +1317 -0
  93. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/expression.rs +1252 -0
  94. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/simulate.rs +410 -0
  95. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug.rs +18 -0
  96. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/func_environ.rs +2750 -0
  97. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/.cargo-checksum.json +1 -0
  98. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/Cargo.toml +71 -0
  99. data/ext/cargo-vendor/wasmtime-environ-16.0.0/.cargo-checksum.json +1 -0
  100. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.lock +660 -0
  101. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.toml +125 -0
  102. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/compilation.rs +402 -0
  103. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/compiler.rs +47 -0
  104. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/translate.rs +951 -0
  105. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/types.rs +1876 -0
  106. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/lib.rs +59 -0
  107. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module.rs +1075 -0
  108. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_environ.rs +892 -0
  109. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_types.rs +120 -0
  110. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/scopevec.rs +78 -0
  111. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/.cargo-checksum.json +1 -0
  112. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/Cargo.toml +63 -0
  113. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/lib.rs +328 -0
  114. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/unix.rs +265 -0
  115. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/windows.c +9 -0
  116. data/ext/cargo-vendor/wasmtime-jit-16.0.0/.cargo-checksum.json +1 -0
  117. data/ext/cargo-vendor/wasmtime-jit-16.0.0/Cargo.toml +125 -0
  118. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/code_memory.rs +319 -0
  119. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/instantiate.rs +772 -0
  120. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/lib.rs +21 -0
  121. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/.cargo-checksum.json +1 -0
  122. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/Cargo.toml +67 -0
  123. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/.cargo-checksum.json +1 -0
  124. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/Cargo.toml +46 -0
  125. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/.cargo-checksum.json +1 -0
  126. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/Cargo.toml +139 -0
  127. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/build.rs +28 -0
  128. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/proptest-regressions/instance/allocator/pooling/memory_pool.txt +9 -0
  129. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/aarch64.rs +120 -0
  130. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/mod.rs +32 -0
  131. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/riscv64.rs +88 -0
  132. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/s390x.rs +61 -0
  133. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/x86_64.rs +106 -0
  134. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/cow.rs +888 -0
  135. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/helpers.c +113 -0
  136. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/memory_pool.rs +1005 -0
  137. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/stack_pool.rs +242 -0
  138. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/table_pool.rs +227 -0
  139. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling.rs +698 -0
  140. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/lib.rs +264 -0
  141. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/libcalls.rs +776 -0
  142. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mmap.rs +214 -0
  143. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/enabled.rs +204 -0
  144. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/pkru.rs +102 -0
  145. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/mod.rs +10 -0
  146. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/traphandlers.rs +42 -0
  147. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/unwind.rs +17 -0
  148. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/vm.rs +63 -0
  149. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/mod.rs +30 -0
  150. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/machports.rs +487 -0
  151. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/macos_traphandlers.rs +28 -0
  152. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/mod.rs +21 -0
  153. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/signals.rs +402 -0
  154. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/unwind.rs +91 -0
  155. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/vm.rs +208 -0
  156. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/mod.rs +6 -0
  157. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/traphandlers.rs +105 -0
  158. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/unwind.rs +46 -0
  159. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/vm.rs +79 -0
  160. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers/backtrace.rs +265 -0
  161. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers.rs +733 -0
  162. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/vmcontext.rs +1197 -0
  163. data/ext/cargo-vendor/wasmtime-types-16.0.0/.cargo-checksum.json +1 -0
  164. data/ext/cargo-vendor/wasmtime-types-16.0.0/Cargo.toml +36 -0
  165. data/ext/cargo-vendor/wasmtime-types-16.0.0/src/lib.rs +504 -0
  166. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/.cargo-checksum.json +1 -0
  167. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/Cargo.toml +32 -0
  168. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/.cargo-checksum.json +1 -0
  169. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/Cargo.toml +261 -0
  170. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/lib.rs +137 -0
  171. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/io.rs +368 -0
  172. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/network.rs +570 -0
  173. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/tcp.rs +632 -0
  174. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/udp.rs +550 -0
  175. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/mod.rs +328 -0
  176. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview0.rs +870 -0
  177. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview1.rs +2348 -0
  178. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stdio.rs +259 -0
  179. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stream.rs +182 -0
  180. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/table.rs +337 -0
  181. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/api.rs +218 -0
  182. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/async_.rs +360 -0
  183. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/main.rs +113 -0
  184. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/preview1.rs +239 -0
  185. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/sync.rs +299 -0
  186. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/process_stdin.rs +165 -0
  187. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/command-extended.wit +6 -0
  188. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/command.wit +7 -0
  189. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/imports.wit +20 -0
  190. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/proxy.wit +32 -0
  191. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/types.wit +570 -0
  192. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/test.wit +22 -0
  193. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/typenames.witx +746 -0
  194. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/wasi_unstable.witx +513 -0
  195. data/ext/cargo-vendor/wasmtime-winch-16.0.0/.cargo-checksum.json +1 -0
  196. data/ext/cargo-vendor/wasmtime-winch-16.0.0/Cargo.toml +77 -0
  197. data/ext/cargo-vendor/wasmtime-winch-16.0.0/src/compiler.rs +243 -0
  198. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/.cargo-checksum.json +1 -0
  199. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/Cargo.toml +41 -0
  200. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/.cargo-checksum.json +1 -0
  201. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/Cargo.toml +29 -0
  202. data/ext/cargo-vendor/wiggle-16.0.0/.cargo-checksum.json +1 -0
  203. data/ext/cargo-vendor/wiggle-16.0.0/Cargo.toml +115 -0
  204. data/ext/cargo-vendor/wiggle-16.0.0/src/lib.rs +1198 -0
  205. data/ext/cargo-vendor/wiggle-generate-16.0.0/.cargo-checksum.json +1 -0
  206. data/ext/cargo-vendor/wiggle-generate-16.0.0/Cargo.toml +65 -0
  207. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/handle.rs +84 -0
  208. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/record.rs +132 -0
  209. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/variant.rs +191 -0
  210. data/ext/cargo-vendor/wiggle-macro-16.0.0/.cargo-checksum.json +1 -0
  211. data/ext/cargo-vendor/wiggle-macro-16.0.0/Cargo.toml +55 -0
  212. data/ext/cargo-vendor/winch-codegen-0.14.0/.cargo-checksum.json +1 -0
  213. data/ext/cargo-vendor/winch-codegen-0.14.0/Cargo.toml +76 -0
  214. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/local.rs +81 -0
  215. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/mod.rs +614 -0
  216. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/call.rs +345 -0
  217. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/context.rs +545 -0
  218. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/control.rs +497 -0
  219. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/env.rs +251 -0
  220. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/mod.rs +428 -0
  221. data/ext/cargo-vendor/winch-codegen-0.14.0/src/frame/mod.rs +221 -0
  222. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/abi.rs +313 -0
  223. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/masm.rs +444 -0
  224. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/mod.rs +137 -0
  225. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/mod.rs +225 -0
  226. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/abi.rs +524 -0
  227. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/asm.rs +1117 -0
  228. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/masm.rs +994 -0
  229. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/mod.rs +172 -0
  230. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/regs.rs +247 -0
  231. data/ext/cargo-vendor/winch-codegen-0.14.0/src/masm.rs +679 -0
  232. data/ext/cargo-vendor/winch-codegen-0.14.0/src/stack.rs +436 -0
  233. data/ext/cargo-vendor/winch-codegen-0.14.0/src/trampoline.rs +734 -0
  234. data/ext/cargo-vendor/winch-codegen-0.14.0/src/visitor.rs +1383 -0
  235. data/lib/wasmtime/version.rb +1 -1
  236. metadata +903 -977
  237. data/ext/cargo-vendor/cranelift-bforest-0.102.1/.cargo-checksum.json +0 -1
  238. data/ext/cargo-vendor/cranelift-bforest-0.102.1/Cargo.toml +0 -31
  239. data/ext/cargo-vendor/cranelift-bforest-0.102.1/src/lib.rs +0 -184
  240. data/ext/cargo-vendor/cranelift-codegen-0.102.1/.cargo-checksum.json +0 -1
  241. data/ext/cargo-vendor/cranelift-codegen-0.102.1/Cargo.toml +0 -164
  242. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/binemit/mod.rs +0 -171
  243. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/cost.rs +0 -91
  244. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/elaborate.rs +0 -731
  245. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph.rs +0 -678
  246. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/dfg.rs +0 -1730
  247. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/pcc.rs +0 -1682
  248. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/aarch64/lower/isle.rs +0 -875
  249. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst/mod.rs +0 -2041
  250. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst.isle +0 -2909
  251. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/lower.isle +0 -2860
  252. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/s390x/lower/isle.rs +0 -1029
  253. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/lower/isle.rs +0 -1070
  254. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/pcc.rs +0 -884
  255. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isle_prelude.rs +0 -972
  256. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/lib.rs +0 -108
  257. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/machinst/isle.rs +0 -897
  258. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/arithmetic.isle +0 -128
  259. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/cprop.isle +0 -210
  260. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/icmp.isle +0 -177
  261. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/selects.isle +0 -59
  262. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts.rs +0 -138
  263. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/prelude.isle +0 -646
  264. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/timing.rs +0 -271
  265. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/unionfind.rs +0 -74
  266. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/.cargo-checksum.json +0 -1
  267. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/Cargo.toml +0 -26
  268. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/.cargo-checksum.json +0 -1
  269. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/Cargo.toml +0 -22
  270. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/src/lib.rs +0 -12
  271. data/ext/cargo-vendor/cranelift-control-0.102.1/.cargo-checksum.json +0 -1
  272. data/ext/cargo-vendor/cranelift-control-0.102.1/Cargo.toml +0 -30
  273. data/ext/cargo-vendor/cranelift-entity-0.102.1/.cargo-checksum.json +0 -1
  274. data/ext/cargo-vendor/cranelift-entity-0.102.1/Cargo.toml +0 -41
  275. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/lib.rs +0 -316
  276. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/primary.rs +0 -456
  277. data/ext/cargo-vendor/cranelift-frontend-0.102.1/.cargo-checksum.json +0 -1
  278. data/ext/cargo-vendor/cranelift-frontend-0.102.1/Cargo.toml +0 -59
  279. data/ext/cargo-vendor/cranelift-frontend-0.102.1/src/lib.rs +0 -191
  280. data/ext/cargo-vendor/cranelift-isle-0.102.1/.cargo-checksum.json +0 -1
  281. data/ext/cargo-vendor/cranelift-isle-0.102.1/Cargo.toml +0 -37
  282. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_constructor_main.rs +0 -71
  283. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_extractor_main.rs +0 -50
  284. data/ext/cargo-vendor/cranelift-isle-0.102.1/src/codegen.rs +0 -763
  285. data/ext/cargo-vendor/cranelift-native-0.102.1/.cargo-checksum.json +0 -1
  286. data/ext/cargo-vendor/cranelift-native-0.102.1/Cargo.toml +0 -43
  287. data/ext/cargo-vendor/cranelift-native-0.102.1/src/lib.rs +0 -190
  288. data/ext/cargo-vendor/cranelift-wasm-0.102.1/.cargo-checksum.json +0 -1
  289. data/ext/cargo-vendor/cranelift-wasm-0.102.1/Cargo.toml +0 -97
  290. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/environ/dummy.rs +0 -953
  291. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/lib.rs +0 -64
  292. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/translation_utils.rs +0 -97
  293. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/.cargo-checksum.json +0 -1
  294. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/Cargo.toml +0 -93
  295. data/ext/cargo-vendor/wasi-common-15.0.1/.cargo-checksum.json +0 -1
  296. data/ext/cargo-vendor/wasi-common-15.0.1/Cargo.toml +0 -122
  297. data/ext/cargo-vendor/wasi-common-15.0.1/src/lib.rs +0 -73
  298. data/ext/cargo-vendor/wasi-common-15.0.1/src/snapshots/preview_1.rs +0 -1490
  299. data/ext/cargo-vendor/wasm-encoder-0.36.2/.cargo-checksum.json +0 -1
  300. data/ext/cargo-vendor/wasm-encoder-0.36.2/Cargo.toml +0 -37
  301. data/ext/cargo-vendor/wasm-encoder-0.36.2/README.md +0 -80
  302. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/aliases.rs +0 -160
  303. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/builder.rs +0 -455
  304. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/canonicals.rs +0 -159
  305. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/components.rs +0 -29
  306. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/exports.rs +0 -124
  307. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/imports.rs +0 -175
  308. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/instances.rs +0 -200
  309. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/modules.rs +0 -29
  310. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/names.rs +0 -149
  311. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/start.rs +0 -52
  312. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/types.rs +0 -771
  313. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component.rs +0 -168
  314. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/code.rs +0 -2989
  315. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/custom.rs +0 -73
  316. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/data.rs +0 -185
  317. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/dump.rs +0 -627
  318. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/elements.rs +0 -220
  319. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/exports.rs +0 -98
  320. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/functions.rs +0 -63
  321. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/globals.rs +0 -100
  322. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/imports.rs +0 -155
  323. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/linking.rs +0 -263
  324. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/memories.rs +0 -111
  325. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/names.rs +0 -265
  326. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/producers.rs +0 -180
  327. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/start.rs +0 -39
  328. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tables.rs +0 -115
  329. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tags.rs +0 -104
  330. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/types.rs +0 -584
  331. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core.rs +0 -168
  332. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/lib.rs +0 -215
  333. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/raw.rs +0 -30
  334. data/ext/cargo-vendor/wasmparser-0.116.1/.cargo-checksum.json +0 -1
  335. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.lock +0 -674
  336. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.toml +0 -60
  337. data/ext/cargo-vendor/wasmparser-0.116.1/README.md +0 -36
  338. data/ext/cargo-vendor/wasmparser-0.116.1/benches/benchmark.rs +0 -370
  339. data/ext/cargo-vendor/wasmparser-0.116.1/examples/simple.rs +0 -37
  340. data/ext/cargo-vendor/wasmparser-0.116.1/src/binary_reader.rs +0 -1706
  341. data/ext/cargo-vendor/wasmparser-0.116.1/src/define_types.rs +0 -782
  342. data/ext/cargo-vendor/wasmparser-0.116.1/src/lib.rs +0 -729
  343. data/ext/cargo-vendor/wasmparser-0.116.1/src/limits.rs +0 -58
  344. data/ext/cargo-vendor/wasmparser-0.116.1/src/parser.rs +0 -1612
  345. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/aliases.rs +0 -119
  346. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/canonicals.rs +0 -120
  347. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/exports.rs +0 -135
  348. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/imports.rs +0 -129
  349. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/instances.rs +0 -163
  350. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/names.rs +0 -102
  351. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/start.rs +0 -30
  352. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/types.rs +0 -549
  353. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component.rs +0 -17
  354. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/code.rs +0 -146
  355. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/coredumps.rs +0 -243
  356. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/custom.rs +0 -63
  357. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/data.rs +0 -96
  358. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/dylink0.rs +0 -132
  359. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/elements.rs +0 -152
  360. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/exports.rs +0 -65
  361. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/functions.rs +0 -17
  362. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/globals.rs +0 -49
  363. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/imports.rs +0 -76
  364. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/init.rs +0 -51
  365. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/memories.rs +0 -56
  366. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/names.rs +0 -153
  367. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/operators.rs +0 -354
  368. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/producers.rs +0 -83
  369. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tables.rs +0 -87
  370. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tags.rs +0 -32
  371. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/types.rs +0 -544
  372. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core.rs +0 -37
  373. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers.rs +0 -316
  374. data/ext/cargo-vendor/wasmparser-0.116.1/src/resources.rs +0 -398
  375. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/component.rs +0 -3203
  376. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/core.rs +0 -1341
  377. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/func.rs +0 -348
  378. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/names.rs +0 -859
  379. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/operators.rs +0 -3466
  380. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/types.rs +0 -4011
  381. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator.rs +0 -1603
  382. data/ext/cargo-vendor/wasmparser-0.116.1/tests/big-module.rs +0 -33
  383. data/ext/cargo-vendor/wasmtime-15.0.1/.cargo-checksum.json +0 -1
  384. data/ext/cargo-vendor/wasmtime-15.0.1/Cargo.toml +0 -202
  385. data/ext/cargo-vendor/wasmtime-15.0.1/src/compiler.rs +0 -682
  386. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/component.rs +0 -505
  387. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/func/typed.rs +0 -2398
  388. data/ext/cargo-vendor/wasmtime-15.0.1/src/config.rs +0 -2422
  389. data/ext/cargo-vendor/wasmtime-15.0.1/src/func.rs +0 -2428
  390. data/ext/cargo-vendor/wasmtime-15.0.1/src/lib.rs +0 -518
  391. data/ext/cargo-vendor/wasmtime-15.0.1/src/memory.rs +0 -996
  392. data/ext/cargo-vendor/wasmtime-15.0.1/src/module.rs +0 -1370
  393. data/ext/cargo-vendor/wasmtime-15.0.1/src/stack.rs +0 -73
  394. data/ext/cargo-vendor/wasmtime-15.0.1/src/v128.rs +0 -151
  395. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/.cargo-checksum.json +0 -1
  396. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/Cargo.toml +0 -22
  397. data/ext/cargo-vendor/wasmtime-cache-15.0.1/.cargo-checksum.json +0 -1
  398. data/ext/cargo-vendor/wasmtime-cache-15.0.1/Cargo.toml +0 -72
  399. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/lib.rs +0 -238
  400. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/worker.rs +0 -894
  401. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/.cargo-checksum.json +0 -1
  402. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/Cargo.toml +0 -58
  403. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/.cargo-checksum.json +0 -1
  404. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/Cargo.toml +0 -25
  405. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/.cargo-checksum.json +0 -1
  406. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/Cargo.toml +0 -103
  407. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler/component.rs +0 -959
  408. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler.rs +0 -1317
  409. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/expression.rs +0 -1250
  410. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/simulate.rs +0 -410
  411. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug.rs +0 -18
  412. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/func_environ.rs +0 -2746
  413. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/.cargo-checksum.json +0 -1
  414. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/Cargo.toml +0 -62
  415. data/ext/cargo-vendor/wasmtime-environ-15.0.1/.cargo-checksum.json +0 -1
  416. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.lock +0 -677
  417. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.toml +0 -116
  418. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/compilation.rs +0 -402
  419. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/compiler.rs +0 -47
  420. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/translate.rs +0 -951
  421. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/types.rs +0 -1870
  422. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/lib.rs +0 -59
  423. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module.rs +0 -1083
  424. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_environ.rs +0 -876
  425. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_types.rs +0 -78
  426. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/scopevec.rs +0 -57
  427. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/.cargo-checksum.json +0 -1
  428. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/Cargo.toml +0 -54
  429. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/lib.rs +0 -327
  430. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/unix.rs +0 -265
  431. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/windows.c +0 -9
  432. data/ext/cargo-vendor/wasmtime-jit-15.0.1/.cargo-checksum.json +0 -1
  433. data/ext/cargo-vendor/wasmtime-jit-15.0.1/Cargo.toml +0 -115
  434. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/code_memory.rs +0 -321
  435. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/instantiate.rs +0 -766
  436. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/lib.rs +0 -22
  437. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/miri.rs +0 -15
  438. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/systemv.rs +0 -90
  439. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/winx64.rs +0 -44
  440. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind.rs +0 -14
  441. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/.cargo-checksum.json +0 -1
  442. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/Cargo.toml +0 -58
  443. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/.cargo-checksum.json +0 -1
  444. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/Cargo.toml +0 -37
  445. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/.cargo-checksum.json +0 -1
  446. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/Cargo.toml +0 -126
  447. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/build.rs +0 -19
  448. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/proptest-regressions/instance/allocator/pooling/memory_pool.txt +0 -8
  449. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/cow.rs +0 -1060
  450. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/helpers.c +0 -108
  451. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/memory_pool.rs +0 -999
  452. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/stack_pool.rs +0 -242
  453. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/table_pool.rs +0 -225
  454. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/unix.rs +0 -56
  455. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/windows.rs +0 -38
  456. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling.rs +0 -708
  457. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/lib.rs +0 -279
  458. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/libcalls.rs +0 -775
  459. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mmap.rs +0 -226
  460. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/enabled.rs +0 -201
  461. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/pkru.rs +0 -93
  462. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/aarch64.rs +0 -42
  463. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/riscv64.rs +0 -45
  464. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/s390x.rs +0 -25
  465. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/x86_64.rs +0 -64
  466. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines.rs +0 -19
  467. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/aarch64.rs +0 -55
  468. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/riscv64.rs +0 -18
  469. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/s390x.rs +0 -22
  470. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/x86_64.rs +0 -20
  471. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace.rs +0 -291
  472. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/macos.rs +0 -492
  473. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/unix.rs +0 -402
  474. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/windows.rs +0 -89
  475. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers.rs +0 -815
  476. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/vmcontext.rs +0 -1197
  477. data/ext/cargo-vendor/wasmtime-types-15.0.1/.cargo-checksum.json +0 -1
  478. data/ext/cargo-vendor/wasmtime-types-15.0.1/Cargo.toml +0 -36
  479. data/ext/cargo-vendor/wasmtime-types-15.0.1/src/lib.rs +0 -504
  480. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/.cargo-checksum.json +0 -1
  481. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/Cargo.toml +0 -32
  482. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/.cargo-checksum.json +0 -1
  483. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/Cargo.toml +0 -248
  484. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/lib.rs +0 -135
  485. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/io.rs +0 -368
  486. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/network.rs +0 -515
  487. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/tcp.rs +0 -630
  488. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/udp.rs +0 -543
  489. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/mod.rs +0 -326
  490. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/preview1.rs +0 -2342
  491. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stdio.rs +0 -450
  492. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stream.rs +0 -182
  493. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/table.rs +0 -258
  494. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/command-extended.wit +0 -6
  495. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/command.wit +0 -7
  496. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/reactor.wit +0 -31
  497. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/proxy.wit +0 -33
  498. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/types.wit +0 -559
  499. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/test.wit +0 -22
  500. data/ext/cargo-vendor/wasmtime-winch-15.0.1/.cargo-checksum.json +0 -1
  501. data/ext/cargo-vendor/wasmtime-winch-15.0.1/Cargo.toml +0 -68
  502. data/ext/cargo-vendor/wasmtime-winch-15.0.1/src/compiler.rs +0 -242
  503. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/.cargo-checksum.json +0 -1
  504. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/Cargo.toml +0 -32
  505. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/.cargo-checksum.json +0 -1
  506. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/Cargo.toml +0 -22
  507. data/ext/cargo-vendor/wiggle-15.0.1/.cargo-checksum.json +0 -1
  508. data/ext/cargo-vendor/wiggle-15.0.1/Cargo.toml +0 -106
  509. data/ext/cargo-vendor/wiggle-15.0.1/src/lib.rs +0 -1198
  510. data/ext/cargo-vendor/wiggle-generate-15.0.1/.cargo-checksum.json +0 -1
  511. data/ext/cargo-vendor/wiggle-generate-15.0.1/Cargo.toml +0 -58
  512. data/ext/cargo-vendor/wiggle-generate-15.0.1/LICENSE +0 -220
  513. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/handle.rs +0 -84
  514. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/record.rs +0 -132
  515. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/variant.rs +0 -191
  516. data/ext/cargo-vendor/wiggle-macro-15.0.1/.cargo-checksum.json +0 -1
  517. data/ext/cargo-vendor/wiggle-macro-15.0.1/Cargo.toml +0 -55
  518. data/ext/cargo-vendor/wiggle-macro-15.0.1/LICENSE +0 -220
  519. data/ext/cargo-vendor/winch-codegen-0.13.1/.cargo-checksum.json +0 -1
  520. data/ext/cargo-vendor/winch-codegen-0.13.1/Cargo.toml +0 -67
  521. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/local.rs +0 -70
  522. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/mod.rs +0 -304
  523. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/call.rs +0 -353
  524. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/context.rs +0 -465
  525. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/control.rs +0 -456
  526. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/env.rs +0 -181
  527. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/mod.rs +0 -436
  528. data/ext/cargo-vendor/winch-codegen-0.13.1/src/frame/mod.rs +0 -189
  529. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/abi.rs +0 -267
  530. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/masm.rs +0 -436
  531. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/mod.rs +0 -136
  532. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/mod.rs +0 -218
  533. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/abi.rs +0 -410
  534. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/asm.rs +0 -1106
  535. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/masm.rs +0 -953
  536. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/mod.rs +0 -172
  537. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/regs.rs +0 -247
  538. data/ext/cargo-vendor/winch-codegen-0.13.1/src/masm.rs +0 -592
  539. data/ext/cargo-vendor/winch-codegen-0.13.1/src/stack.rs +0 -366
  540. data/ext/cargo-vendor/winch-codegen-0.13.1/src/trampoline.rs +0 -489
  541. data/ext/cargo-vendor/winch-codegen-0.13.1/src/visitor.rs +0 -1339
  542. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/LICENSE +0 -0
  543. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/README.md +0 -0
  544. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/map.rs +0 -0
  545. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/node.rs +0 -0
  546. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/path.rs +0 -0
  547. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/pool.rs +0 -0
  548. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/set.rs +0 -0
  549. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/LICENSE +0 -0
  550. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/README.md +0 -0
  551. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/benches/x64-evex-encoding.rs +0 -0
  552. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/build.rs +0 -0
  553. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/alias_analysis.rs +0 -0
  554. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/binemit/stack_map.rs +0 -0
  555. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/bitset.rs +0 -0
  556. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cfg_printer.rs +0 -0
  557. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/constant_hash.rs +0 -0
  558. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/context.rs +0 -0
  559. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ctxhash.rs +0 -0
  560. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cursor.rs +0 -0
  561. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/data_value.rs +0 -0
  562. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dbg.rs +0 -0
  563. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dce.rs +0 -0
  564. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dominator_tree.rs +0 -0
  565. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/egraph/domtree.rs +0 -0
  566. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/flowgraph.rs +0 -0
  567. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/fx.rs +0 -0
  568. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/incremental_cache.rs +0 -0
  569. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/inst_predicates.rs +0 -0
  570. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/atomic_rmw_op.rs +0 -0
  571. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/builder.rs +0 -0
  572. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/condcodes.rs +0 -0
  573. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/constant.rs +0 -0
  574. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/dynamic_type.rs +0 -0
  575. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/entities.rs +0 -0
  576. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extfunc.rs +0 -0
  577. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extname.rs +0 -0
  578. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/function.rs +0 -0
  579. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/globalvalue.rs +0 -0
  580. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/immediates.rs +0 -0
  581. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/instructions.rs +0 -0
  582. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/jumptable.rs +0 -0
  583. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/known_symbol.rs +0 -0
  584. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/layout.rs +0 -0
  585. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/libcall.rs +0 -0
  586. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memflags.rs +0 -0
  587. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memtype.rs +0 -0
  588. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/mod.rs +0 -0
  589. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/progpoint.rs +0 -0
  590. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/sourceloc.rs +0 -0
  591. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/stackslot.rs +0 -0
  592. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/table.rs +0 -0
  593. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/trapcode.rs +0 -0
  594. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/types.rs +0 -0
  595. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/abi.rs +0 -0
  596. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/args.rs +0 -0
  597. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit.rs +0 -0
  598. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  599. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/imms.rs +0 -0
  600. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/mod.rs +0 -0
  601. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/regs.rs +0 -0
  602. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  603. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  604. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst.isle +0 -0
  605. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst_neon.isle +0 -0
  606. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  607. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.isle +0 -0
  608. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.rs +0 -0
  609. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  610. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/mod.rs +0 -0
  611. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/pcc.rs +0 -0
  612. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/settings.rs +0 -0
  613. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/call_conv.rs +0 -0
  614. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/mod.rs +0 -0
  615. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/abi.rs +0 -0
  616. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/args.rs +0 -0
  617. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit.rs +0 -0
  618. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  619. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/encode.rs +0 -0
  620. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/imms.rs +0 -0
  621. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/regs.rs +0 -0
  622. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  623. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  624. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/vector.rs +0 -0
  625. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst_vector.isle +0 -0
  626. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  627. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle.rs +0 -0
  628. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower.rs +0 -0
  629. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/mod.rs +0 -0
  630. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/settings.rs +0 -0
  631. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/abi.rs +0 -0
  632. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/args.rs +0 -0
  633. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit.rs +0 -0
  634. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit_tests.rs +0 -0
  635. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/imms.rs +0 -0
  636. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/mod.rs +0 -0
  637. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/regs.rs +0 -0
  638. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  639. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind.rs +0 -0
  640. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst.isle +0 -0
  641. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  642. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.isle +0 -0
  643. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.rs +0 -0
  644. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/mod.rs +0 -0
  645. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/settings.rs +0 -0
  646. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/systemv.rs +0 -0
  647. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/winx64.rs +0 -0
  648. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind.rs +0 -0
  649. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/abi.rs +0 -0
  650. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/evex.rs +0 -0
  651. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/mod.rs +0 -0
  652. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/rex.rs +0 -0
  653. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/vex.rs +0 -0
  654. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/args.rs +0 -0
  655. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit.rs +0 -0
  656. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_state.rs +0 -0
  657. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_tests.rs +0 -0
  658. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/mod.rs +0 -0
  659. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/regs.rs +0 -0
  660. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  661. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  662. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind.rs +0 -0
  663. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst.isle +0 -0
  664. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  665. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.isle +0 -0
  666. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.rs +0 -0
  667. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/mod.rs +0 -0
  668. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/settings.rs +0 -0
  669. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/iterators.rs +0 -0
  670. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/globalvalue.rs +0 -0
  671. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/mod.rs +0 -0
  672. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/table.rs +0 -0
  673. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/loop_analysis.rs +0 -0
  674. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/abi.rs +0 -0
  675. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/blockorder.rs +0 -0
  676. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/buffer.rs +0 -0
  677. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/compile.rs +0 -0
  678. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/helpers.rs +0 -0
  679. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/inst_common.rs +0 -0
  680. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/lower.rs +0 -0
  681. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/mod.rs +0 -0
  682. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/pcc.rs +0 -0
  683. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/reg.rs +0 -0
  684. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/valueregs.rs +0 -0
  685. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/vcode.rs +0 -0
  686. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/nan_canonicalization.rs +0 -0
  687. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/README.md +0 -0
  688. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/bitops.isle +0 -0
  689. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/extends.isle +0 -0
  690. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/generated_code.rs +0 -0
  691. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/remat.isle +0 -0
  692. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/shifts.isle +0 -0
  693. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/vector.isle +0 -0
  694. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_lower.isle +0 -0
  695. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_opt.isle +0 -0
  696. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/print_errors.rs +0 -0
  697. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/remove_constant_phis.rs +0 -0
  698. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/result.rs +0 -0
  699. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/scoped_hash_map.rs +0 -0
  700. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/settings.rs +0 -0
  701. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/souper_harvest.rs +0 -0
  702. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/unreachable_code.rs +0 -0
  703. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/value_label.rs +0 -0
  704. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/verifier/mod.rs +0 -0
  705. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/write.rs +0 -0
  706. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/LICENSE +0 -0
  707. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/README.md +0 -0
  708. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/formats.rs +0 -0
  709. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/instructions.rs +0 -0
  710. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/isa.rs +0 -0
  711. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/mod.rs +0 -0
  712. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/operands.rs +0 -0
  713. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/settings.rs +0 -0
  714. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/types.rs +0 -0
  715. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/typevar.rs +0 -0
  716. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/constant_hash.rs +0 -0
  717. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/error.rs +0 -0
  718. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_inst.rs +0 -0
  719. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_settings.rs +0 -0
  720. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_types.rs +0 -0
  721. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/arm64.rs +0 -0
  722. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/mod.rs +0 -0
  723. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/riscv64.rs +0 -0
  724. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/s390x.rs +0 -0
  725. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/x86.rs +0 -0
  726. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/lib.rs +0 -0
  727. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/entities.rs +0 -0
  728. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/formats.rs +0 -0
  729. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/immediates.rs +0 -0
  730. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/instructions.rs +0 -0
  731. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/mod.rs +0 -0
  732. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/settings.rs +0 -0
  733. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/types.rs +0 -0
  734. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/srcgen.rs +0 -0
  735. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/unique_table.rs +0 -0
  736. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/LICENSE +0 -0
  737. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/README.md +0 -0
  738. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constant_hash.rs +0 -0
  739. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constants.rs +0 -0
  740. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/LICENSE +0 -0
  741. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/README.md +0 -0
  742. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/chaos.rs +0 -0
  743. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/lib.rs +0 -0
  744. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/zero_sized.rs +0 -0
  745. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/LICENSE +0 -0
  746. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/README.md +0 -0
  747. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/boxed_slice.rs +0 -0
  748. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/iter.rs +0 -0
  749. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/keys.rs +0 -0
  750. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/list.rs +0 -0
  751. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/map.rs +0 -0
  752. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/packed_option.rs +0 -0
  753. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/set.rs +0 -0
  754. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/sparse.rs +0 -0
  755. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/LICENSE +0 -0
  756. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/README.md +0 -0
  757. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/frontend.rs +0 -0
  758. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/ssa.rs +0 -0
  759. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/switch.rs +0 -0
  760. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/variable.rs +0 -0
  761. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/README.md +0 -0
  762. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/build.rs +0 -0
  763. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bad_converters.isle +0 -0
  764. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  765. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  766. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/error1.isle +0 -0
  767. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/extra_parens.isle +0 -0
  768. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_expression.isle +0 -0
  769. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_rhs.isle +0 -0
  770. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  771. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_prio.isle +0 -0
  772. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows.isle +0 -0
  773. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows_main.rs +0 -0
  774. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets.isle +0 -0
  775. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets_main.rs +0 -0
  776. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_constructor.isle +0 -0
  777. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_extractor.isle +0 -0
  778. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test.isle +0 -0
  779. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test_main.rs +0 -0
  780. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/bound_var.isle +0 -0
  781. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  782. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions.isle +0 -0
  783. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions_extern.isle +0 -0
  784. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/let.isle +0 -0
  785. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/nodebug.isle +0 -0
  786. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  787. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test2.isle +0 -0
  788. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test3.isle +0 -0
  789. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test4.isle +0 -0
  790. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/tutorial.isle +0 -0
  791. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst.isle +0 -0
  792. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst_main.rs +0 -0
  793. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing.isle +0 -0
  794. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  795. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/ast.rs +0 -0
  796. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/compile.rs +0 -0
  797. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/error.rs +0 -0
  798. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lexer.rs +0 -0
  799. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lib.rs +0 -0
  800. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/log.rs +0 -0
  801. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/overlap.rs +0 -0
  802. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/parser.rs +0 -0
  803. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/sema.rs +0 -0
  804. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/serialize.rs +0 -0
  805. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/trie_again.rs +0 -0
  806. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/tests/run_tests.rs +0 -0
  807. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/LICENSE +0 -0
  808. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/README.md +0 -0
  809. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/src/riscv.rs +0 -0
  810. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/LICENSE +0 -0
  811. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/README.md +0 -0
  812. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator/bounds_checks.rs +0 -0
  813. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator.rs +0 -0
  814. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/mod.rs +0 -0
  815. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/spec.rs +0 -0
  816. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/func_translator.rs +0 -0
  817. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/heap.rs +0 -0
  818. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/module_translator.rs +0 -0
  819. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/sections_translator.rs +0 -0
  820. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/state.rs +0 -0
  821. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/tests/wasm_testsuite.rs +0 -0
  822. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/arith.wat +0 -0
  823. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/br_table.wat +0 -0
  824. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call-simd.wat +0 -0
  825. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call.wat +0 -0
  826. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fannkuch.wat +0 -0
  827. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fasta.wat +0 -0
  828. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_ifs.wat +0 -0
  829. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_primes.wat +0 -0
  830. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fac-multi-value.wat +0 -0
  831. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fibonacci.wat +0 -0
  832. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/globals.wat +0 -0
  833. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall-simd.wat +0 -0
  834. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall.wat +0 -0
  835. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-0.wat +0 -0
  836. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-1.wat +0 -0
  837. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-2.wat +0 -0
  838. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-3.wat +0 -0
  839. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-4.wat +0 -0
  840. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-5.wat +0 -0
  841. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-6.wat +0 -0
  842. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params-2.wat +0 -0
  843. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params.wat +0 -0
  844. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  845. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/memory.wat +0 -0
  846. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-0.wat +0 -0
  847. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-1.wat +0 -0
  848. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-10.wat +0 -0
  849. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-11.wat +0 -0
  850. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-12.wat +0 -0
  851. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-13.wat +0 -0
  852. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-14.wat +0 -0
  853. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-15.wat +0 -0
  854. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-16.wat +0 -0
  855. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-17.wat +0 -0
  856. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-2.wat +0 -0
  857. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-3.wat +0 -0
  858. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-4.wat +0 -0
  859. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-5.wat +0 -0
  860. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-6.wat +0 -0
  861. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-7.wat +0 -0
  862. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-8.wat +0 -0
  863. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-9.wat +0 -0
  864. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/nullref.wat +0 -0
  865. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/passive-data.wat +0 -0
  866. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2303.wat +0 -0
  867. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2559.wat +0 -0
  868. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/ref-func-0.wat +0 -0
  869. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/rust_fannkuch.wat +0 -0
  870. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/select.wat +0 -0
  871. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd-store.wat +0 -0
  872. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd.wat +0 -0
  873. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/table-copy.wat +0 -0
  874. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/unreachable_code.wat +0 -0
  875. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/LICENSE +0 -0
  876. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/README.md +0 -0
  877. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/clocks.rs +0 -0
  878. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/dir.rs +0 -0
  879. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/file.rs +0 -0
  880. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/lib.rs +0 -0
  881. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/net.rs +0 -0
  882. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/unix.rs +0 -0
  883. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/windows.rs +0 -0
  884. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched.rs +0 -0
  885. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/stdio.rs +0 -0
  886. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/LICENSE +0 -0
  887. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/README.md +0 -0
  888. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/README.md +0 -0
  889. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/docs/README.md +0 -0
  890. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/README.md +0 -0
  891. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/docs.md +0 -0
  892. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  893. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  894. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  895. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  896. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  897. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  898. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  899. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  900. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  901. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  902. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  903. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/docs.md +0 -0
  904. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  905. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  906. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.html +0 -0
  907. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.md +0 -0
  908. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  909. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  910. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposal-template/README.md +0 -0
  911. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposals/README.md +0 -0
  912. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/snapshots/README.md +0 -0
  913. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/standard/README.md +0 -0
  914. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/build.rs +0 -0
  915. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/clocks.rs +0 -0
  916. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/ctx.rs +0 -0
  917. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/dir.rs +0 -0
  918. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/error.rs +0 -0
  919. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/file.rs +0 -0
  920. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/pipe.rs +0 -0
  921. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/random.rs +0 -0
  922. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched/subscription.rs +0 -0
  923. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched.rs +0 -0
  924. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/mod.rs +0 -0
  925. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_0.rs +0 -0
  926. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_1/error.rs +0 -0
  927. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/string_array.rs +0 -0
  928. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/table.rs +0 -0
  929. /data/ext/cargo-vendor/{wasm-encoder-0.36.2 → wasmtime-16.0.0}/LICENSE +0 -0
  930. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/README.md +0 -0
  931. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/code.rs +0 -0
  932. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/host.rs +0 -0
  933. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/options.rs +0 -0
  934. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func.rs +0 -0
  935. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/instance.rs +0 -0
  936. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/linker.rs +0 -0
  937. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/matching.rs +0 -0
  938. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/mod.rs +0 -0
  939. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/resources.rs +0 -0
  940. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/storage.rs +0 -0
  941. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/store.rs +0 -0
  942. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/types.rs +0 -0
  943. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/values.rs +0 -0
  944. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/coredump.rs +0 -0
  945. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine/serialization.rs +0 -0
  946. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine.rs +0 -0
  947. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/global.rs +0 -0
  948. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/table.rs +0 -0
  949. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals.rs +0 -0
  950. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/func/typed.rs +0 -0
  951. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/instance.rs +0 -0
  952. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/limits.rs +0 -0
  953. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/linker.rs +0 -0
  954. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/module/registry.rs +0 -0
  955. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/profiling.rs +0 -0
  956. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/ref.rs +0 -0
  957. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/resources.rs +0 -0
  958. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/signatures.rs +0 -0
  959. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/context.rs +0 -0
  960. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/data.rs +0 -0
  961. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/func_refs.rs +0 -0
  962. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store.rs +0 -0
  963. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/func.rs +0 -0
  964. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/global.rs +0 -0
  965. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/memory.rs +0 -0
  966. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/table.rs +0 -0
  967. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline.rs +0 -0
  968. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trap.rs +0 -0
  969. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types/matching.rs +0 -0
  970. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types.rs +0 -0
  971. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/unix.rs +0 -0
  972. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/values.rs +0 -0
  973. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/windows.rs +0 -0
  974. /data/ext/cargo-vendor/{wasmtime-asm-macros-15.0.1 → wasmtime-asm-macros-16.0.0}/src/lib.rs +0 -0
  975. /data/ext/cargo-vendor/{wasmparser-0.116.1 → wasmtime-cache-16.0.0}/LICENSE +0 -0
  976. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/build.rs +0 -0
  977. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config/tests.rs +0 -0
  978. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config.rs +0 -0
  979. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/tests.rs +0 -0
  980. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  981. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests.rs +0 -0
  982. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/tests/cache_write_default_config.rs +0 -0
  983. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/bindgen.rs +0 -0
  984. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/component.rs +0 -0
  985. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/lib.rs +0 -0
  986. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/char.wit +0 -0
  987. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/conventions.wit +0 -0
  988. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/direct-import.wit +0 -0
  989. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/empty.wit +0 -0
  990. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/flags.wit +0 -0
  991. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/floats.wit +0 -0
  992. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/function-new.wit +0 -0
  993. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/integers.wit +0 -0
  994. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/lists.wit +0 -0
  995. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/many-arguments.wit +0 -0
  996. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multi-return.wit +0 -0
  997. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  998. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  999. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/root.wit +0 -0
  1000. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/records.wit +0 -0
  1001. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/rename.wit +0 -0
  1002. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-export.wit +0 -0
  1003. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-import.wit +0 -0
  1004. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/share-types.wit +0 -0
  1005. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-functions.wit +0 -0
  1006. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-lists.wit +0 -0
  1007. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-wasi.wit +0 -0
  1008. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/small-anonymous.wit +0 -0
  1009. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-default.wit +0 -0
  1010. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-export.wit +0 -0
  1011. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke.wit +0 -0
  1012. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/strings.wit +0 -0
  1013. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/use-paths.wit +0 -0
  1014. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/variants.wit +0 -0
  1015. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  1016. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen.rs +0 -0
  1017. /data/ext/cargo-vendor/{wasmtime-component-util-15.0.1 → wasmtime-component-util-16.0.0}/src/lib.rs +0 -0
  1018. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-cranelift-16.0.0}/LICENSE +0 -0
  1019. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/SECURITY.md +0 -0
  1020. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/builder.rs +0 -0
  1021. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/gc.rs +0 -0
  1022. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/address_transform.rs +0 -0
  1023. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/attr.rs +0 -0
  1024. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/line_program.rs +0 -0
  1025. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/mod.rs +0 -0
  1026. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1027. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/refs.rs +0 -0
  1028. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/unit.rs +0 -0
  1029. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/utils.rs +0 -0
  1030. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/write_debuginfo.rs +0 -0
  1031. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/lib.rs +0 -0
  1032. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/compiled_function.rs +0 -0
  1033. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/isa_builder.rs +0 -0
  1034. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/lib.rs +0 -0
  1035. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/obj.rs +0 -0
  1036. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-environ-16.0.0}/LICENSE +0 -0
  1037. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/examples/factc.rs +0 -0
  1038. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/address_map.rs +0 -0
  1039. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/builtin.rs +0 -0
  1040. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/dfg.rs +0 -0
  1041. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/info.rs +0 -0
  1042. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/adapt.rs +0 -0
  1043. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/inline.rs +0 -0
  1044. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/types/resources.rs +0 -0
  1045. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1046. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component.rs +0 -0
  1047. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/core_types.rs +0 -0
  1048. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/signature.rs +0 -0
  1049. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/trampoline.rs +0 -0
  1050. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/transcode.rs +0 -0
  1051. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/traps.rs +0 -0
  1052. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact.rs +0 -0
  1053. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/obj.rs +0 -0
  1054. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/ref_bits.rs +0 -0
  1055. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/stack_map.rs +0 -0
  1056. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/trap_encoding.rs +0 -0
  1057. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/tunables.rs +0 -0
  1058. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/vmoffsets.rs +0 -0
  1059. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-fiber-16.0.0}/LICENSE +0 -0
  1060. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/build.rs +0 -0
  1061. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/aarch64.rs +0 -0
  1062. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/arm.rs +0 -0
  1063. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/riscv64.rs +0 -0
  1064. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/s390x.S +0 -0
  1065. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86.rs +0 -0
  1066. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86_64.rs +0 -0
  1067. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/windows.rs +0 -0
  1068. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-jit-16.0.0}/LICENSE +0 -0
  1069. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/debug.rs +0 -0
  1070. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/demangling.rs +0 -0
  1071. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/jitdump.rs +0 -0
  1072. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/perfmap.rs +0 -0
  1073. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/vtune.rs +0 -0
  1074. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling.rs +0 -0
  1075. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/README.md +0 -0
  1076. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/gdb_jit_int.rs +0 -0
  1077. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/lib.rs +0 -0
  1078. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/perf_jitdump.rs +0 -0
  1079. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/lib.rs +0 -0
  1080. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/libc.rs +0 -0
  1081. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/miri.rs +0 -0
  1082. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/win.rs +0 -0
  1083. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-runtime-16.0.0}/LICENSE +0 -0
  1084. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/trampolines → wasmtime-runtime-16.0.0/src/arch}/s390x.S +0 -0
  1085. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/libcalls.rs +0 -0
  1086. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/resources.rs +0 -0
  1087. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component.rs +0 -0
  1088. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/debug_builtins.rs +0 -0
  1089. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/export.rs +0 -0
  1090. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/externref.rs +0 -0
  1091. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/imports.rs +0 -0
  1092. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/on_demand.rs +0 -0
  1093. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1094. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator.rs +0 -0
  1095. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance.rs +0 -0
  1096. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/memory.rs +0 -0
  1097. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mmap_vec.rs +0 -0
  1098. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/module_id.rs +0 -0
  1099. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/disabled.rs +0 -0
  1100. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/mod.rs +0 -0
  1101. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/sys.rs +0 -0
  1102. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/parking_spot.rs +0 -0
  1103. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/send_sync_ptr.rs +0 -0
  1104. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/store_box.rs +0 -0
  1105. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/miri.rs → wasmtime-runtime-16.0.0/src/sys/miri/mmap.rs} +0 -0
  1106. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/unix.rs → wasmtime-runtime-16.0.0/src/sys/unix/mmap.rs} +0 -0
  1107. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/windows.rs → wasmtime-runtime-16.0.0/src/sys/windows/mmap.rs} +0 -0
  1108. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/table.rs +0 -0
  1109. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/traphandlers/coredump.rs +0 -0
  1110. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/vmcontext/vm_host_func_context.rs +0 -0
  1111. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-types-16.0.0}/LICENSE +0 -0
  1112. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wasmtime-types-16.0.0}/src/error.rs +0 -0
  1113. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-15.0.1 → wasmtime-versioned-export-macros-16.0.0}/src/lib.rs +0 -0
  1114. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-wasi-16.0.0}/LICENSE +0 -0
  1115. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/README.md +0 -0
  1116. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/build.rs +0 -0
  1117. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks/host.rs +0 -0
  1118. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks.rs +0 -0
  1119. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/command.rs +0 -0
  1120. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ctx.rs +0 -0
  1121. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/error.rs +0 -0
  1122. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/filesystem.rs +0 -0
  1123. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/clocks.rs +0 -0
  1124. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/env.rs +0 -0
  1125. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/exit.rs +0 -0
  1126. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem/sync.rs +0 -0
  1127. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem.rs +0 -0
  1128. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/instance_network.rs +0 -0
  1129. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/mod.rs +0 -0
  1130. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/random.rs +0 -0
  1131. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/tcp_create_socket.rs +0 -0
  1132. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/udp_create_socket.rs +0 -0
  1133. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ip_name_lookup.rs +0 -0
  1134. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/network.rs +0 -0
  1135. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/pipe.rs +0 -0
  1136. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/poll.rs +0 -0
  1137. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/random.rs +0 -0
  1138. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/stdio/worker_thread_stdin.rs +0 -0
  1139. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/tcp.rs +0 -0
  1140. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/udp.rs +0 -0
  1141. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/write_stream.rs +0 -0
  1142. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/environment.wit +0 -0
  1143. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/exit.wit +0 -0
  1144. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/run.wit +0 -0
  1145. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/stdio.wit +0 -0
  1146. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/terminal.wit +0 -0
  1147. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1148. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  1149. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/world.wit +0 -0
  1150. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  1151. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/types.wit +0 -0
  1152. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/world.wit +0 -0
  1153. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/http/handler.wit +0 -0
  1154. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/error.wit +0 -0
  1155. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/poll.wit +0 -0
  1156. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/streams.wit +0 -0
  1157. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/world.wit +0 -0
  1158. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  1159. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure.wit +0 -0
  1160. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/random.wit +0 -0
  1161. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/world.wit +0 -0
  1162. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  1163. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1164. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/network.wit +0 -0
  1165. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1166. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp.wit +0 -0
  1167. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1168. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp.wit +0 -0
  1169. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/world.wit +0 -0
  1170. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/typenames.witx +0 -0
  1171. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/wasi_snapshot_preview1.witx +0 -0
  1172. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/LICENSE +0 -0
  1173. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/builder.rs +0 -0
  1174. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/lib.rs +0 -0
  1175. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/lib.rs +0 -0
  1176. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/rust.rs +0 -0
  1177. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/source.rs +0 -0
  1178. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/types.rs +0 -0
  1179. /data/ext/cargo-vendor/{wasmtime-wmemcheck-15.0.1 → wasmtime-wmemcheck-16.0.0}/src/lib.rs +0 -0
  1180. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wiggle-16.0.0}/LICENSE +0 -0
  1181. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/README.md +0 -0
  1182. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/borrow.rs +0 -0
  1183. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/error.rs +0 -0
  1184. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/guest_type.rs +0 -0
  1185. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/region.rs +0 -0
  1186. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/wasmtime.rs +0 -0
  1187. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wiggle-generate-16.0.0}/LICENSE +0 -0
  1188. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/README.md +0 -0
  1189. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/codegen_settings.rs +0 -0
  1190. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/config.rs +0 -0
  1191. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/funcs.rs +0 -0
  1192. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lib.rs +0 -0
  1193. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lifetimes.rs +0 -0
  1194. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/module_trait.rs +0 -0
  1195. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/names.rs +0 -0
  1196. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/error.rs +0 -0
  1197. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/flags.rs +0 -0
  1198. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/mod.rs +0 -0
  1199. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/wasmtime.rs +0 -0
  1200. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-macro-16.0.0}/LICENSE +0 -0
  1201. /data/ext/cargo-vendor/{wiggle-macro-15.0.1 → wiggle-macro-16.0.0}/src/lib.rs +0 -0
  1202. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/LICENSE +0 -0
  1203. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/build.rs +0 -0
  1204. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/codegen/builtin.rs +0 -0
  1205. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/address.rs +0 -0
  1206. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/asm.rs +0 -0
  1207. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/regs.rs +0 -0
  1208. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/reg.rs +0 -0
  1209. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/x64/address.rs +0 -0
  1210. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/lib.rs +0 -0
  1211. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regalloc.rs +0 -0
  1212. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regset.rs +0 -0
@@ -1,2342 +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/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/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 blocking_mode = *blocking_mode;
1432
- let position = position.clone();
1433
- let append = *append;
1434
- drop(t);
1435
- let Some(buf) = first_non_empty_ciovec(ciovs)? else {
1436
- return Ok(0);
1437
- };
1438
- let (stream, pos) = if append {
1439
- let stream = self.append_via_stream(fd).map_err(|e| {
1440
- e.try_into()
1441
- .context("failed to call `append-via-stream`")
1442
- .unwrap_or_else(types::Error::trap)
1443
- })?;
1444
- (stream, 0)
1445
- } else {
1446
- let pos = position.load(Ordering::Relaxed);
1447
- let stream = self.write_via_stream(fd, pos).map_err(|e| {
1448
- e.try_into()
1449
- .context("failed to call `write-via-stream`")
1450
- .unwrap_or_else(types::Error::trap)
1451
- })?;
1452
- (stream, pos)
1453
- };
1454
- let n = blocking_mode.write(self, stream, &buf).await?;
1455
- if !append {
1456
- let pos = pos.checked_add(n as u64).ok_or(types::Errno::Overflow)?;
1457
- position.store(pos, Ordering::Relaxed);
1458
- }
1459
- let n = n.try_into()?;
1460
- Ok(n)
1461
- }
1462
- Descriptor::Stdout { stream, .. } | Descriptor::Stderr { stream, .. } => {
1463
- let stream = stream.borrowed();
1464
- drop(t);
1465
- let Some(buf) = first_non_empty_ciovec(ciovs)? else {
1466
- return Ok(0);
1467
- };
1468
- let n = BlockingMode::Blocking
1469
- .write(self, stream, &buf)
1470
- .await?
1471
- .try_into()?;
1472
- Ok(n)
1473
- }
1474
- _ => Err(types::Errno::Badf.into()),
1475
- }
1476
- }
1477
-
1478
- /// Write to a file descriptor, without using and updating the file descriptor's offset.
1479
- /// NOTE: This is similar to `pwritev` in POSIX.
1480
- #[instrument(skip(self))]
1481
- async fn fd_pwrite<'a>(
1482
- &mut self,
1483
- fd: types::Fd,
1484
- ciovs: &types::CiovecArray<'a>,
1485
- offset: types::Filesize,
1486
- ) -> Result<types::Size, types::Error> {
1487
- let t = self.transact()?;
1488
- let desc = t.get_descriptor(fd)?;
1489
- let n = match desc {
1490
- Descriptor::File(File {
1491
- fd, blocking_mode, ..
1492
- }) if t.view.table().get(fd)?.is_file() => {
1493
- let fd = fd.borrowed();
1494
- let blocking_mode = *blocking_mode;
1495
- drop(t);
1496
- let Some(buf) = first_non_empty_ciovec(ciovs)? else {
1497
- return Ok(0);
1498
- };
1499
- let stream = self.write_via_stream(fd, offset).map_err(|e| {
1500
- e.try_into()
1501
- .context("failed to call `write-via-stream`")
1502
- .unwrap_or_else(types::Error::trap)
1503
- })?;
1504
- blocking_mode.write(self, stream, &buf).await?
1505
- }
1506
- Descriptor::Stdout { .. } | Descriptor::Stderr { .. } => {
1507
- // NOTE: legacy implementation returns SPIPE here
1508
- return Err(types::Errno::Spipe.into());
1509
- }
1510
- _ => return Err(types::Errno::Badf.into()),
1511
- };
1512
- Ok(n.try_into()?)
1513
- }
1514
-
1515
- /// Return a description of the given preopened file descriptor.
1516
- #[instrument(skip(self))]
1517
- fn fd_prestat_get(&mut self, fd: types::Fd) -> Result<types::Prestat, types::Error> {
1518
- if let Descriptor::PreopenDirectory((_, p)) = self.transact()?.get_descriptor(fd)? {
1519
- let pr_name_len = p.len().try_into()?;
1520
- return Ok(types::Prestat::Dir(types::PrestatDir { pr_name_len }));
1521
- }
1522
- Err(types::Errno::Badf.into()) // NOTE: legacy implementation returns BADF here
1523
- }
1524
-
1525
- /// Return a description of the given preopened file descriptor.
1526
- #[instrument(skip(self))]
1527
- fn fd_prestat_dir_name<'a>(
1528
- &mut self,
1529
- fd: types::Fd,
1530
- path: &GuestPtr<'a, u8>,
1531
- path_max_len: types::Size,
1532
- ) -> Result<(), types::Error> {
1533
- let path_max_len = path_max_len.try_into()?;
1534
- if let Descriptor::PreopenDirectory((_, p)) = self.transact()?.get_descriptor(fd)? {
1535
- if p.len() > path_max_len {
1536
- return Err(types::Errno::Nametoolong.into());
1537
- }
1538
- write_bytes(path, p.as_bytes())?;
1539
- return Ok(());
1540
- }
1541
- Err(types::Errno::Notdir.into()) // NOTE: legacy implementation returns NOTDIR here
1542
- }
1543
-
1544
- /// Atomically replace a file descriptor by renumbering another file descriptor.
1545
- #[instrument(skip(self))]
1546
- fn fd_renumber(&mut self, from: types::Fd, to: types::Fd) -> Result<(), types::Error> {
1547
- let mut st = self.transact()?;
1548
- let desc = st.descriptors.remove(from).ok_or(types::Errno::Badf)?;
1549
- st.descriptors.insert(to.into(), desc);
1550
- Ok(())
1551
- }
1552
-
1553
- /// Move the offset of a file descriptor.
1554
- /// NOTE: This is similar to `lseek` in POSIX.
1555
- #[instrument(skip(self))]
1556
- async fn fd_seek(
1557
- &mut self,
1558
- fd: types::Fd,
1559
- offset: types::Filedelta,
1560
- whence: types::Whence,
1561
- ) -> Result<types::Filesize, types::Error> {
1562
- let t = self.transact()?;
1563
- let File { fd, position, .. } = t.get_seekable(fd)?;
1564
- let fd = fd.borrowed();
1565
- let position = position.clone();
1566
- drop(t);
1567
- let pos = match whence {
1568
- types::Whence::Set if offset >= 0 => offset as _,
1569
- types::Whence::Cur => position
1570
- .load(Ordering::Relaxed)
1571
- .checked_add_signed(offset)
1572
- .ok_or(types::Errno::Inval)?,
1573
- types::Whence::End => {
1574
- let filesystem::DescriptorStat { size, .. } = self.stat(fd).await.map_err(|e| {
1575
- e.try_into()
1576
- .context("failed to call `stat`")
1577
- .unwrap_or_else(types::Error::trap)
1578
- })?;
1579
- size.checked_add_signed(offset).ok_or(types::Errno::Inval)?
1580
- }
1581
- _ => return Err(types::Errno::Inval.into()),
1582
- };
1583
- position.store(pos, Ordering::Relaxed);
1584
- Ok(pos)
1585
- }
1586
-
1587
- /// Synchronize the data and metadata of a file to disk.
1588
- /// NOTE: This is similar to `fsync` in POSIX.
1589
- #[instrument(skip(self))]
1590
- async fn fd_sync(&mut self, fd: types::Fd) -> Result<(), types::Error> {
1591
- let fd = self.get_file_fd(fd)?;
1592
- self.sync(fd).await.map_err(|e| {
1593
- e.try_into()
1594
- .context("failed to call `sync`")
1595
- .unwrap_or_else(types::Error::trap)
1596
- })
1597
- }
1598
-
1599
- /// Return the current offset of a file descriptor.
1600
- /// NOTE: This is similar to `lseek(fd, 0, SEEK_CUR)` in POSIX.
1601
- #[instrument(skip(self))]
1602
- fn fd_tell(&mut self, fd: types::Fd) -> Result<types::Filesize, types::Error> {
1603
- let pos = self
1604
- .transact()?
1605
- .get_seekable(fd)
1606
- .map(|File { position, .. }| position.load(Ordering::Relaxed))?;
1607
- Ok(pos)
1608
- }
1609
-
1610
- #[instrument(skip(self))]
1611
- async fn fd_readdir<'a>(
1612
- &mut self,
1613
- fd: types::Fd,
1614
- buf: &GuestPtr<'a, u8>,
1615
- buf_len: types::Size,
1616
- cookie: types::Dircookie,
1617
- ) -> Result<types::Size, types::Error> {
1618
- let fd = self.get_dir_fd(fd)?;
1619
- let stream = self.read_directory(fd.borrowed()).await.map_err(|e| {
1620
- e.try_into()
1621
- .context("failed to call `read-directory`")
1622
- .unwrap_or_else(types::Error::trap)
1623
- })?;
1624
- let dir_metadata_hash = self.metadata_hash(fd.borrowed()).await.map_err(|e| {
1625
- e.try_into()
1626
- .context("failed to call `metadata-hash`")
1627
- .unwrap_or_else(types::Error::trap)
1628
- })?;
1629
- let cookie = cookie.try_into().map_err(|_| types::Errno::Overflow)?;
1630
-
1631
- let head = [
1632
- (
1633
- types::Dirent {
1634
- d_next: 1u64.to_le(),
1635
- d_ino: dir_metadata_hash.lower.to_le(),
1636
- d_type: types::Filetype::Directory,
1637
- d_namlen: 1u32.to_le(),
1638
- },
1639
- ".".into(),
1640
- ),
1641
- (
1642
- types::Dirent {
1643
- d_next: 2u64.to_le(),
1644
- d_ino: dir_metadata_hash.lower.to_le(), // NOTE: incorrect, but legacy implementation returns `fd` inode here
1645
- d_type: types::Filetype::Directory,
1646
- d_namlen: 2u32.to_le(),
1647
- },
1648
- "..".into(),
1649
- ),
1650
- ];
1651
-
1652
- let mut dir = Vec::new();
1653
- for (entry, d_next) in self
1654
- .table_mut()
1655
- // remove iterator from table and use it directly:
1656
- .delete(stream)?
1657
- .into_iter()
1658
- .zip(3u64..)
1659
- {
1660
- let filesystem::DirectoryEntry { type_, name } = entry.map_err(|e| {
1661
- e.try_into()
1662
- .context("failed to inspect `read-directory` entry")
1663
- .unwrap_or_else(types::Error::trap)
1664
- })?;
1665
- let metadata_hash = self
1666
- .metadata_hash_at(fd.borrowed(), filesystem::PathFlags::empty(), name.clone())
1667
- .await
1668
- .map_err(|e| {
1669
- e.try_into()
1670
- .context("failed to call `metadata-hash-at`")
1671
- .unwrap_or_else(types::Error::trap)
1672
- })?;
1673
- let d_type = type_.try_into().map_err(types::Error::trap)?;
1674
- let d_namlen: u32 = name.len().try_into().map_err(|_| types::Errno::Overflow)?;
1675
- dir.push((
1676
- types::Dirent {
1677
- d_next: d_next.to_le(),
1678
- d_ino: metadata_hash.lower.to_le(),
1679
- d_type, // endian-invariant
1680
- d_namlen: d_namlen.to_le(),
1681
- },
1682
- name,
1683
- ))
1684
- }
1685
-
1686
- // assume that `types::Dirent` size always fits in `u32`
1687
- const DIRENT_SIZE: u32 = size_of::<types::Dirent>() as _;
1688
- assert_eq!(
1689
- types::Dirent::guest_size(),
1690
- DIRENT_SIZE,
1691
- "Dirent guest repr and host repr should match"
1692
- );
1693
- let mut buf = *buf;
1694
- let mut cap = buf_len;
1695
- for (ref entry, path) in head.into_iter().chain(dir.into_iter()).skip(cookie) {
1696
- let mut path = path.into_bytes();
1697
- assert_eq!(
1698
- 1,
1699
- size_of_val(&entry.d_type),
1700
- "Dirent member d_type should be endian-invariant"
1701
- );
1702
- let entry_len = cap.min(DIRENT_SIZE);
1703
- let entry = entry as *const _ as _;
1704
- let entry = unsafe { slice::from_raw_parts(entry, entry_len as _) };
1705
- cap = cap.checked_sub(entry_len).unwrap();
1706
- buf = write_bytes(buf, entry)?;
1707
- if cap == 0 {
1708
- return Ok(buf_len);
1709
- }
1710
-
1711
- if let Ok(cap) = cap.try_into() {
1712
- // `path` cannot be longer than `usize`, only truncate if `cap` fits in `usize`
1713
- path.truncate(cap);
1714
- }
1715
- cap = cap.checked_sub(path.len() as _).unwrap();
1716
- buf = write_bytes(buf, &path)?;
1717
- if cap == 0 {
1718
- return Ok(buf_len);
1719
- }
1720
- }
1721
- Ok(buf_len.checked_sub(cap).unwrap())
1722
- }
1723
-
1724
- #[instrument(skip(self))]
1725
- async fn path_create_directory<'a>(
1726
- &mut self,
1727
- dirfd: types::Fd,
1728
- path: &GuestPtr<'a, str>,
1729
- ) -> Result<(), types::Error> {
1730
- let dirfd = self.get_dir_fd(dirfd)?;
1731
- let path = read_string(path)?;
1732
- self.create_directory_at(dirfd.borrowed(), path)
1733
- .await
1734
- .map_err(|e| {
1735
- e.try_into()
1736
- .context("failed to call `create-directory-at`")
1737
- .unwrap_or_else(types::Error::trap)
1738
- })
1739
- }
1740
-
1741
- /// Return the attributes of a file or directory.
1742
- /// NOTE: This is similar to `stat` in POSIX.
1743
- #[instrument(skip(self))]
1744
- async fn path_filestat_get<'a>(
1745
- &mut self,
1746
- dirfd: types::Fd,
1747
- flags: types::Lookupflags,
1748
- path: &GuestPtr<'a, str>,
1749
- ) -> Result<types::Filestat, types::Error> {
1750
- let dirfd = self.get_dir_fd(dirfd)?;
1751
- let path = read_string(path)?;
1752
- let filesystem::DescriptorStat {
1753
- type_,
1754
- link_count: nlink,
1755
- size,
1756
- data_access_timestamp,
1757
- data_modification_timestamp,
1758
- status_change_timestamp,
1759
- } = self
1760
- .stat_at(dirfd.borrowed(), flags.into(), path.clone())
1761
- .await
1762
- .map_err(|e| {
1763
- e.try_into()
1764
- .context("failed to call `stat-at`")
1765
- .unwrap_or_else(types::Error::trap)
1766
- })?;
1767
- let metadata_hash = self
1768
- .metadata_hash_at(dirfd, flags.into(), path)
1769
- .await
1770
- .map_err(|e| {
1771
- e.try_into()
1772
- .context("failed to call `metadata-hash-at`")
1773
- .unwrap_or_else(types::Error::trap)
1774
- })?;
1775
- let filetype = type_.try_into().map_err(types::Error::trap)?;
1776
- let zero = wall_clock::Datetime {
1777
- seconds: 0,
1778
- nanoseconds: 0,
1779
- };
1780
- let atim = data_access_timestamp.unwrap_or(zero).try_into()?;
1781
- let mtim = data_modification_timestamp.unwrap_or(zero).try_into()?;
1782
- let ctim = status_change_timestamp.unwrap_or(zero).try_into()?;
1783
- Ok(types::Filestat {
1784
- dev: 1,
1785
- ino: metadata_hash.lower,
1786
- filetype,
1787
- nlink,
1788
- size,
1789
- atim,
1790
- mtim,
1791
- ctim,
1792
- })
1793
- }
1794
-
1795
- /// Adjust the timestamps of a file or directory.
1796
- /// NOTE: This is similar to `utimensat` in POSIX.
1797
- #[instrument(skip(self))]
1798
- async fn path_filestat_set_times<'a>(
1799
- &mut self,
1800
- dirfd: types::Fd,
1801
- flags: types::Lookupflags,
1802
- path: &GuestPtr<'a, str>,
1803
- atim: types::Timestamp,
1804
- mtim: types::Timestamp,
1805
- fst_flags: types::Fstflags,
1806
- ) -> Result<(), types::Error> {
1807
- let atim = systimespec(
1808
- fst_flags.contains(types::Fstflags::ATIM),
1809
- atim,
1810
- fst_flags.contains(types::Fstflags::ATIM_NOW),
1811
- )?;
1812
- let mtim = systimespec(
1813
- fst_flags.contains(types::Fstflags::MTIM),
1814
- mtim,
1815
- fst_flags.contains(types::Fstflags::MTIM_NOW),
1816
- )?;
1817
-
1818
- let dirfd = self.get_dir_fd(dirfd)?;
1819
- let path = read_string(path)?;
1820
- self.set_times_at(dirfd, flags.into(), path, atim, mtim)
1821
- .await
1822
- .map_err(|e| {
1823
- e.try_into()
1824
- .context("failed to call `set-times-at`")
1825
- .unwrap_or_else(types::Error::trap)
1826
- })
1827
- }
1828
-
1829
- /// Create a hard link.
1830
- /// NOTE: This is similar to `linkat` in POSIX.
1831
- #[instrument(skip(self))]
1832
- async fn path_link<'a>(
1833
- &mut self,
1834
- src_fd: types::Fd,
1835
- src_flags: types::Lookupflags,
1836
- src_path: &GuestPtr<'a, str>,
1837
- target_fd: types::Fd,
1838
- target_path: &GuestPtr<'a, str>,
1839
- ) -> Result<(), types::Error> {
1840
- let src_fd = self.get_dir_fd(src_fd)?;
1841
- let target_fd = self.get_dir_fd(target_fd)?;
1842
- let src_path = read_string(src_path)?;
1843
- let target_path = read_string(target_path)?;
1844
- self.link_at(src_fd, src_flags.into(), src_path, target_fd, target_path)
1845
- .await
1846
- .map_err(|e| {
1847
- e.try_into()
1848
- .context("failed to call `link-at`")
1849
- .unwrap_or_else(types::Error::trap)
1850
- })
1851
- }
1852
-
1853
- /// Open a file or directory.
1854
- /// NOTE: This is similar to `openat` in POSIX.
1855
- #[instrument(skip(self))]
1856
- async fn path_open<'a>(
1857
- &mut self,
1858
- dirfd: types::Fd,
1859
- dirflags: types::Lookupflags,
1860
- path: &GuestPtr<'a, str>,
1861
- oflags: types::Oflags,
1862
- fs_rights_base: types::Rights,
1863
- _fs_rights_inheriting: types::Rights,
1864
- fdflags: types::Fdflags,
1865
- ) -> Result<types::Fd, types::Error> {
1866
- let path = read_string(path)?;
1867
-
1868
- let mut flags = filesystem::DescriptorFlags::empty();
1869
- if fs_rights_base.contains(types::Rights::FD_READ) {
1870
- flags |= filesystem::DescriptorFlags::READ;
1871
- }
1872
- if fs_rights_base.contains(types::Rights::FD_WRITE) {
1873
- flags |= filesystem::DescriptorFlags::WRITE;
1874
- }
1875
- if fdflags.contains(types::Fdflags::SYNC) {
1876
- flags |= filesystem::DescriptorFlags::FILE_INTEGRITY_SYNC;
1877
- }
1878
- if fdflags.contains(types::Fdflags::DSYNC) {
1879
- flags |= filesystem::DescriptorFlags::DATA_INTEGRITY_SYNC;
1880
- }
1881
- if fdflags.contains(types::Fdflags::RSYNC) {
1882
- flags |= filesystem::DescriptorFlags::REQUESTED_WRITE_SYNC;
1883
- }
1884
-
1885
- let t = self.transact()?;
1886
- let dirfd = match t.get_descriptor(dirfd)? {
1887
- Descriptor::PreopenDirectory((fd, _)) => fd.borrowed(),
1888
- Descriptor::File(File { fd, .. }) => {
1889
- t.view.table().get(fd)?.dir()?;
1890
- fd.borrowed()
1891
- }
1892
- _ => return Err(types::Errno::Badf.into()),
1893
- };
1894
- drop(t);
1895
- let fd = self
1896
- .open_at(dirfd, dirflags.into(), path, oflags.into(), flags)
1897
- .await
1898
- .map_err(|e| {
1899
- e.try_into()
1900
- .context("failed to call `open-at`")
1901
- .unwrap_or_else(types::Error::trap)
1902
- })?;
1903
- let fd = self.transact()?.descriptors.push_file(File {
1904
- fd,
1905
- position: Default::default(),
1906
- append: fdflags.contains(types::Fdflags::APPEND),
1907
- blocking_mode: BlockingMode::from_fdflags(&fdflags),
1908
- })?;
1909
- Ok(fd.into())
1910
- }
1911
-
1912
- /// Read the contents of a symbolic link.
1913
- /// NOTE: This is similar to `readlinkat` in POSIX.
1914
- #[instrument(skip(self))]
1915
- async fn path_readlink<'a>(
1916
- &mut self,
1917
- dirfd: types::Fd,
1918
- path: &GuestPtr<'a, str>,
1919
- buf: &GuestPtr<'a, u8>,
1920
- buf_len: types::Size,
1921
- ) -> Result<types::Size, types::Error> {
1922
- let dirfd = self.get_dir_fd(dirfd)?;
1923
- let path = read_string(path)?;
1924
- let mut path = self
1925
- .readlink_at(dirfd, path)
1926
- .await
1927
- .map_err(|e| {
1928
- e.try_into()
1929
- .context("failed to call `readlink-at`")
1930
- .unwrap_or_else(types::Error::trap)
1931
- })?
1932
- .into_bytes();
1933
- if let Ok(buf_len) = buf_len.try_into() {
1934
- // `path` cannot be longer than `usize`, only truncate if `buf_len` fits in `usize`
1935
- path.truncate(buf_len);
1936
- }
1937
- let n = path.len().try_into().map_err(|_| types::Errno::Overflow)?;
1938
- write_bytes(buf, &path)?;
1939
- Ok(n)
1940
- }
1941
-
1942
- #[instrument(skip(self))]
1943
- async fn path_remove_directory<'a>(
1944
- &mut self,
1945
- dirfd: types::Fd,
1946
- path: &GuestPtr<'a, str>,
1947
- ) -> Result<(), types::Error> {
1948
- let dirfd = self.get_dir_fd(dirfd)?;
1949
- let path = read_string(path)?;
1950
- self.remove_directory_at(dirfd, path).await.map_err(|e| {
1951
- e.try_into()
1952
- .context("failed to call `remove-directory-at`")
1953
- .unwrap_or_else(types::Error::trap)
1954
- })
1955
- }
1956
-
1957
- /// Rename a file or directory.
1958
- /// NOTE: This is similar to `renameat` in POSIX.
1959
- #[instrument(skip(self))]
1960
- async fn path_rename<'a>(
1961
- &mut self,
1962
- src_fd: types::Fd,
1963
- src_path: &GuestPtr<'a, str>,
1964
- dest_fd: types::Fd,
1965
- dest_path: &GuestPtr<'a, str>,
1966
- ) -> Result<(), types::Error> {
1967
- let src_fd = self.get_dir_fd(src_fd)?;
1968
- let dest_fd = self.get_dir_fd(dest_fd)?;
1969
- let src_path = read_string(src_path)?;
1970
- let dest_path = read_string(dest_path)?;
1971
- self.rename_at(src_fd, src_path, dest_fd, dest_path)
1972
- .await
1973
- .map_err(|e| {
1974
- e.try_into()
1975
- .context("failed to call `rename-at`")
1976
- .unwrap_or_else(types::Error::trap)
1977
- })
1978
- }
1979
-
1980
- #[instrument(skip(self))]
1981
- async fn path_symlink<'a>(
1982
- &mut self,
1983
- src_path: &GuestPtr<'a, str>,
1984
- dirfd: types::Fd,
1985
- dest_path: &GuestPtr<'a, str>,
1986
- ) -> Result<(), types::Error> {
1987
- let dirfd = self.get_dir_fd(dirfd)?;
1988
- let src_path = read_string(src_path)?;
1989
- let dest_path = read_string(dest_path)?;
1990
- self.symlink_at(dirfd.borrowed(), src_path, dest_path)
1991
- .await
1992
- .map_err(|e| {
1993
- e.try_into()
1994
- .context("failed to call `symlink-at`")
1995
- .unwrap_or_else(types::Error::trap)
1996
- })
1997
- }
1998
-
1999
- #[instrument(skip(self))]
2000
- async fn path_unlink_file<'a>(
2001
- &mut self,
2002
- dirfd: types::Fd,
2003
- path: &GuestPtr<'a, str>,
2004
- ) -> Result<(), types::Error> {
2005
- let dirfd = self.get_dir_fd(dirfd)?;
2006
- let path = path.as_cow()?.to_string();
2007
- self.unlink_file_at(dirfd.borrowed(), path)
2008
- .await
2009
- .map_err(|e| {
2010
- e.try_into()
2011
- .context("failed to call `unlink-file-at`")
2012
- .unwrap_or_else(types::Error::trap)
2013
- })
2014
- }
2015
-
2016
- #[instrument(skip(self))]
2017
- async fn poll_oneoff<'a>(
2018
- &mut self,
2019
- subs: &GuestPtr<'a, types::Subscription>,
2020
- events: &GuestPtr<'a, types::Event>,
2021
- nsubscriptions: types::Size,
2022
- ) -> Result<types::Size, types::Error> {
2023
- if nsubscriptions == 0 {
2024
- // Indefinite sleeping is not supported in preview1.
2025
- return Err(types::Errno::Inval.into());
2026
- }
2027
- let subs = subs.as_array(nsubscriptions);
2028
- let events = events.as_array(nsubscriptions);
2029
-
2030
- let n = usize::try_from(nsubscriptions).unwrap_or(usize::MAX);
2031
- let mut pollables = Vec::with_capacity(n);
2032
- for sub in subs.iter() {
2033
- let sub = sub?.read()?;
2034
- let p = match sub.u {
2035
- types::SubscriptionU::Clock(types::SubscriptionClock {
2036
- id,
2037
- timeout,
2038
- flags,
2039
- ..
2040
- }) => {
2041
- let absolute = flags.contains(types::Subclockflags::SUBSCRIPTION_CLOCK_ABSTIME);
2042
- let (timeout, absolute) = match id {
2043
- types::Clockid::Monotonic => (timeout, absolute),
2044
- types::Clockid::Realtime if !absolute => (timeout, false),
2045
- types::Clockid::Realtime => {
2046
- let now = wall_clock::Host::now(self)
2047
- .context("failed to call `wall_clock::now`")
2048
- .map_err(types::Error::trap)?;
2049
-
2050
- // Convert `timeout` to `Datetime` format.
2051
- let seconds = timeout / 1_000_000_000;
2052
- let nanoseconds = timeout % 1_000_000_000;
2053
-
2054
- let timeout = if now.seconds < seconds
2055
- || now.seconds == seconds
2056
- && u64::from(now.nanoseconds) < nanoseconds
2057
- {
2058
- // `now` is less than `timeout`, which is expressable as u64,
2059
- // substract the nanosecond counts directly
2060
- now.seconds * 1_000_000_000 + u64::from(now.nanoseconds) - timeout
2061
- } else {
2062
- 0
2063
- };
2064
- (timeout, false)
2065
- }
2066
- _ => return Err(types::Errno::Inval.into()),
2067
- };
2068
- if absolute {
2069
- monotonic_clock::Host::subscribe_instant(self, timeout)
2070
- .context("failed to call `monotonic_clock::subscribe_instant`")
2071
- .map_err(types::Error::trap)?
2072
- } else {
2073
- monotonic_clock::Host::subscribe_duration(self, timeout)
2074
- .context("failed to call `monotonic_clock::subscribe_duration`")
2075
- .map_err(types::Error::trap)?
2076
- }
2077
- }
2078
- types::SubscriptionU::FdRead(types::SubscriptionFdReadwrite {
2079
- file_descriptor,
2080
- }) => {
2081
- let stream = {
2082
- let t = self.transact()?;
2083
- let desc = t.get_descriptor(file_descriptor)?;
2084
- match desc {
2085
- Descriptor::Stdin { stream, .. } => stream.borrowed(),
2086
- Descriptor::File(File { fd, position, .. })
2087
- if t.view.table().get(fd)?.is_file() =>
2088
- {
2089
- let pos = position.load(Ordering::Relaxed);
2090
- let fd = fd.borrowed();
2091
- drop(t);
2092
- self.read_via_stream(fd, pos).map_err(|e| {
2093
- e.try_into()
2094
- .context("failed to call `read-via-stream`")
2095
- .unwrap_or_else(types::Error::trap)
2096
- })?
2097
- }
2098
- // TODO: Support sockets
2099
- _ => return Err(types::Errno::Badf.into()),
2100
- }
2101
- };
2102
- streams::HostInputStream::subscribe(self, stream)
2103
- .context("failed to call `subscribe` on `input-stream`")
2104
- .map_err(types::Error::trap)?
2105
- }
2106
- types::SubscriptionU::FdWrite(types::SubscriptionFdReadwrite {
2107
- file_descriptor,
2108
- }) => {
2109
- let stream = {
2110
- let t = self.transact()?;
2111
- let desc = t.get_descriptor(file_descriptor)?;
2112
- match desc {
2113
- Descriptor::Stdout { stream, .. }
2114
- | Descriptor::Stderr { stream, .. } => stream.borrowed(),
2115
- Descriptor::File(File {
2116
- fd,
2117
- position,
2118
- append,
2119
- ..
2120
- }) if t.view.table().get(fd)?.is_file() => {
2121
- let fd = fd.borrowed();
2122
- let position = position.clone();
2123
- let append = *append;
2124
- drop(t);
2125
- if append {
2126
- self.append_via_stream(fd).map_err(|e| {
2127
- e.try_into()
2128
- .context("failed to call `append-via-stream`")
2129
- .unwrap_or_else(types::Error::trap)
2130
- })?
2131
- } else {
2132
- let pos = position.load(Ordering::Relaxed);
2133
- self.write_via_stream(fd, pos).map_err(|e| {
2134
- e.try_into()
2135
- .context("failed to call `write-via-stream`")
2136
- .unwrap_or_else(types::Error::trap)
2137
- })?
2138
- }
2139
- }
2140
- // TODO: Support sockets
2141
- _ => return Err(types::Errno::Badf.into()),
2142
- }
2143
- };
2144
- streams::HostOutputStream::subscribe(self, stream)
2145
- .context("failed to call `subscribe` on `output-stream`")
2146
- .map_err(types::Error::trap)?
2147
- }
2148
- };
2149
- pollables.push(p);
2150
- }
2151
- let ready: HashSet<_> = self
2152
- .poll(pollables)
2153
- .await
2154
- .context("failed to call `poll-oneoff`")
2155
- .map_err(types::Error::trap)?
2156
- .into_iter()
2157
- .collect();
2158
-
2159
- let mut count: types::Size = 0;
2160
- for (sub, event) in (0..)
2161
- .zip(subs.iter())
2162
- .filter_map(|(idx, sub)| ready.contains(&idx).then_some(sub))
2163
- .zip(events.iter())
2164
- {
2165
- let sub = sub?.read()?;
2166
- let event = event?;
2167
- let e = match sub.u {
2168
- types::SubscriptionU::Clock(..) => types::Event {
2169
- userdata: sub.userdata,
2170
- error: types::Errno::Success,
2171
- type_: types::Eventtype::Clock,
2172
- fd_readwrite: types::EventFdReadwrite {
2173
- flags: types::Eventrwflags::empty(),
2174
- nbytes: 0,
2175
- },
2176
- },
2177
- types::SubscriptionU::FdRead(types::SubscriptionFdReadwrite {
2178
- file_descriptor,
2179
- }) => {
2180
- let t = self.transact()?;
2181
- let desc = t.get_descriptor(file_descriptor)?;
2182
- match desc {
2183
- Descriptor::Stdin { .. } => types::Event {
2184
- userdata: sub.userdata,
2185
- error: types::Errno::Success,
2186
- type_: types::Eventtype::FdRead,
2187
- fd_readwrite: types::EventFdReadwrite {
2188
- flags: types::Eventrwflags::empty(),
2189
- nbytes: 1,
2190
- },
2191
- },
2192
- Descriptor::File(File { fd, position, .. })
2193
- if t.view.table().get(fd)?.is_file() =>
2194
- {
2195
- let fd = fd.borrowed();
2196
- let position = position.clone();
2197
- drop(t);
2198
- match self.stat(fd).await? {
2199
- filesystem::DescriptorStat { size, .. } => {
2200
- let pos = position.load(Ordering::Relaxed);
2201
- let nbytes = size.saturating_sub(pos);
2202
- types::Event {
2203
- userdata: sub.userdata,
2204
- error: types::Errno::Success,
2205
- type_: types::Eventtype::FdRead,
2206
- fd_readwrite: types::EventFdReadwrite {
2207
- flags: if nbytes == 0 {
2208
- types::Eventrwflags::FD_READWRITE_HANGUP
2209
- } else {
2210
- types::Eventrwflags::empty()
2211
- },
2212
- nbytes: 1,
2213
- },
2214
- }
2215
- }
2216
- }
2217
- }
2218
- // TODO: Support sockets
2219
- _ => return Err(types::Errno::Badf.into()),
2220
- }
2221
- }
2222
- types::SubscriptionU::FdWrite(types::SubscriptionFdReadwrite {
2223
- file_descriptor,
2224
- }) => {
2225
- let t = self.transact()?;
2226
- let desc = t.get_descriptor(file_descriptor)?;
2227
- match desc {
2228
- Descriptor::Stdout { .. } | Descriptor::Stderr { .. } => types::Event {
2229
- userdata: sub.userdata,
2230
- error: types::Errno::Success,
2231
- type_: types::Eventtype::FdWrite,
2232
- fd_readwrite: types::EventFdReadwrite {
2233
- flags: types::Eventrwflags::empty(),
2234
- nbytes: 1,
2235
- },
2236
- },
2237
- Descriptor::File(File { fd, .. }) if t.view.table().get(fd)?.is_file() => {
2238
- types::Event {
2239
- userdata: sub.userdata,
2240
- error: types::Errno::Success,
2241
- type_: types::Eventtype::FdWrite,
2242
- fd_readwrite: types::EventFdReadwrite {
2243
- flags: types::Eventrwflags::empty(),
2244
- nbytes: 1,
2245
- },
2246
- }
2247
- }
2248
- // TODO: Support sockets
2249
- _ => return Err(types::Errno::Badf.into()),
2250
- }
2251
- }
2252
- };
2253
- event.write(e)?;
2254
- count = count
2255
- .checked_add(1)
2256
- .ok_or_else(|| types::Error::from(types::Errno::Overflow))?
2257
- }
2258
- Ok(count)
2259
- }
2260
-
2261
- #[instrument(skip(self))]
2262
- fn proc_exit(&mut self, status: types::Exitcode) -> anyhow::Error {
2263
- // Check that the status is within WASI's range.
2264
- if status >= 126 {
2265
- return anyhow::Error::msg("exit with invalid exit status outside of [0..126)");
2266
- }
2267
- crate::preview2::I32Exit(status as i32).into()
2268
- }
2269
-
2270
- #[instrument(skip(self))]
2271
- fn proc_raise(&mut self, _sig: types::Signal) -> Result<(), types::Error> {
2272
- Err(types::Errno::Notsup.into())
2273
- }
2274
-
2275
- #[instrument(skip(self))]
2276
- fn sched_yield(&mut self) -> Result<(), types::Error> {
2277
- // No such thing in preview 2. Intentionally left empty.
2278
- Ok(())
2279
- }
2280
-
2281
- #[instrument(skip(self))]
2282
- fn random_get<'a>(
2283
- &mut self,
2284
- buf: &GuestPtr<'a, u8>,
2285
- buf_len: types::Size,
2286
- ) -> Result<(), types::Error> {
2287
- let rand = self
2288
- .get_random_bytes(buf_len.into())
2289
- .context("failed to call `get-random-bytes`")
2290
- .map_err(types::Error::trap)?;
2291
- write_bytes(buf, &rand)?;
2292
- Ok(())
2293
- }
2294
-
2295
- #[allow(unused_variables)]
2296
- #[instrument(skip(self))]
2297
- fn sock_accept(
2298
- &mut self,
2299
- fd: types::Fd,
2300
- flags: types::Fdflags,
2301
- ) -> Result<types::Fd, types::Error> {
2302
- todo!("preview1 sock_accept is not implemented")
2303
- }
2304
-
2305
- #[allow(unused_variables)]
2306
- #[instrument(skip(self))]
2307
- fn sock_recv<'a>(
2308
- &mut self,
2309
- fd: types::Fd,
2310
- ri_data: &types::IovecArray<'a>,
2311
- ri_flags: types::Riflags,
2312
- ) -> Result<(types::Size, types::Roflags), types::Error> {
2313
- todo!("preview1 sock_recv is not implemented")
2314
- }
2315
-
2316
- #[allow(unused_variables)]
2317
- #[instrument(skip(self))]
2318
- fn sock_send<'a>(
2319
- &mut self,
2320
- fd: types::Fd,
2321
- si_data: &types::CiovecArray<'a>,
2322
- _si_flags: types::Siflags,
2323
- ) -> Result<types::Size, types::Error> {
2324
- todo!("preview1 sock_send is not implemented")
2325
- }
2326
-
2327
- #[allow(unused_variables)]
2328
- #[instrument(skip(self))]
2329
- fn sock_shutdown(&mut self, fd: types::Fd, how: types::Sdflags) -> Result<(), types::Error> {
2330
- todo!("preview1 sock_shutdown is not implemented")
2331
- }
2332
- }
2333
-
2334
- trait ResourceExt<T> {
2335
- fn borrowed(&self) -> Resource<T>;
2336
- }
2337
-
2338
- impl<T: 'static> ResourceExt<T> for Resource<T> {
2339
- fn borrowed(&self) -> Resource<T> {
2340
- Resource::new_borrow(self.rep())
2341
- }
2342
- }