wasmtime 15.0.1 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1212) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +83 -103
  3. data/ext/Cargo.toml +6 -6
  4. data/ext/cargo-vendor/cranelift-bforest-0.103.0/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.103.0/Cargo.toml +40 -0
  6. data/ext/cargo-vendor/cranelift-bforest-0.103.0/src/lib.rs +183 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.103.0/.cargo-checksum.json +1 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.103.0/Cargo.toml +175 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/binemit/mod.rs +171 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/cost.rs +171 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/elaborate.rs +750 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph.rs +703 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/dfg.rs +1735 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/pcc.rs +1682 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/aarch64/lower/isle.rs +874 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst/mod.rs +2041 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst.isle +2928 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/lower.isle +2864 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/s390x/lower/isle.rs +1029 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/lower/isle.rs +1064 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/pcc.rs +916 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isle_prelude.rs +977 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/lib.rs +106 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/machinst/isle.rs +896 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/arithmetic.isle +152 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/cprop.isle +237 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/icmp.isle +199 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/selects.isle +76 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts.rs +172 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/prelude.isle +649 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/timing.rs +297 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/unionfind.rs +75 -0
  33. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/.cargo-checksum.json +1 -0
  34. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/Cargo.toml +35 -0
  35. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/.cargo-checksum.json +1 -0
  36. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/Cargo.toml +22 -0
  37. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/src/lib.rs +10 -0
  38. data/ext/cargo-vendor/cranelift-control-0.103.0/.cargo-checksum.json +1 -0
  39. data/ext/cargo-vendor/cranelift-control-0.103.0/Cargo.toml +30 -0
  40. data/ext/cargo-vendor/cranelift-entity-0.103.0/.cargo-checksum.json +1 -0
  41. data/ext/cargo-vendor/cranelift-entity-0.103.0/Cargo.toml +50 -0
  42. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/lib.rs +317 -0
  43. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/primary.rs +516 -0
  44. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/unsigned.rs +71 -0
  45. data/ext/cargo-vendor/cranelift-frontend-0.103.0/.cargo-checksum.json +1 -0
  46. data/ext/cargo-vendor/cranelift-frontend-0.103.0/Cargo.toml +68 -0
  47. data/ext/cargo-vendor/cranelift-frontend-0.103.0/src/lib.rs +189 -0
  48. data/ext/cargo-vendor/cranelift-isle-0.103.0/.cargo-checksum.json +1 -0
  49. data/ext/cargo-vendor/cranelift-isle-0.103.0/Cargo.toml +46 -0
  50. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_constructor_main.rs +88 -0
  51. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_extractor_main.rs +63 -0
  52. data/ext/cargo-vendor/cranelift-isle-0.103.0/src/codegen.rs +886 -0
  53. data/ext/cargo-vendor/cranelift-native-0.103.0/.cargo-checksum.json +1 -0
  54. data/ext/cargo-vendor/cranelift-native-0.103.0/Cargo.toml +43 -0
  55. data/ext/cargo-vendor/cranelift-native-0.103.0/src/lib.rs +184 -0
  56. data/ext/cargo-vendor/cranelift-wasm-0.103.0/.cargo-checksum.json +1 -0
  57. data/ext/cargo-vendor/cranelift-wasm-0.103.0/Cargo.toml +106 -0
  58. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/environ/dummy.rs +953 -0
  59. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/lib.rs +62 -0
  60. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/translation_utils.rs +89 -0
  61. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/.cargo-checksum.json +1 -0
  62. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/Cargo.toml +102 -0
  63. data/ext/cargo-vendor/wasi-common-16.0.0/.cargo-checksum.json +1 -0
  64. data/ext/cargo-vendor/wasi-common-16.0.0/Cargo.toml +131 -0
  65. data/ext/cargo-vendor/wasi-common-16.0.0/src/lib.rs +76 -0
  66. data/ext/cargo-vendor/wasi-common-16.0.0/src/snapshots/preview_1.rs +1492 -0
  67. data/ext/cargo-vendor/wasmtime-16.0.0/.cargo-checksum.json +1 -0
  68. data/ext/cargo-vendor/wasmtime-16.0.0/Cargo.toml +211 -0
  69. data/ext/cargo-vendor/wasmtime-16.0.0/src/compiler.rs +682 -0
  70. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/component.rs +505 -0
  71. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/func/typed.rs +2400 -0
  72. data/ext/cargo-vendor/wasmtime-16.0.0/src/config.rs +2422 -0
  73. data/ext/cargo-vendor/wasmtime-16.0.0/src/func.rs +2391 -0
  74. data/ext/cargo-vendor/wasmtime-16.0.0/src/lib.rs +520 -0
  75. data/ext/cargo-vendor/wasmtime-16.0.0/src/memory.rs +998 -0
  76. data/ext/cargo-vendor/wasmtime-16.0.0/src/module.rs +1370 -0
  77. data/ext/cargo-vendor/wasmtime-16.0.0/src/stack.rs +73 -0
  78. data/ext/cargo-vendor/wasmtime-16.0.0/src/v128.rs +122 -0
  79. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/.cargo-checksum.json +1 -0
  80. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/Cargo.toml +22 -0
  81. data/ext/cargo-vendor/wasmtime-cache-16.0.0/.cargo-checksum.json +1 -0
  82. data/ext/cargo-vendor/wasmtime-cache-16.0.0/Cargo.toml +81 -0
  83. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/lib.rs +235 -0
  84. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/worker.rs +890 -0
  85. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/Cargo.toml +67 -0
  87. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/.cargo-checksum.json +1 -0
  88. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/Cargo.toml +25 -0
  89. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/.cargo-checksum.json +1 -0
  90. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/Cargo.toml +112 -0
  91. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler/component.rs +959 -0
  92. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler.rs +1317 -0
  93. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/expression.rs +1252 -0
  94. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/simulate.rs +410 -0
  95. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug.rs +18 -0
  96. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/func_environ.rs +2750 -0
  97. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/.cargo-checksum.json +1 -0
  98. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/Cargo.toml +71 -0
  99. data/ext/cargo-vendor/wasmtime-environ-16.0.0/.cargo-checksum.json +1 -0
  100. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.lock +660 -0
  101. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.toml +125 -0
  102. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/compilation.rs +402 -0
  103. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/compiler.rs +47 -0
  104. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/translate.rs +951 -0
  105. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/types.rs +1876 -0
  106. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/lib.rs +59 -0
  107. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module.rs +1075 -0
  108. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_environ.rs +892 -0
  109. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_types.rs +120 -0
  110. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/scopevec.rs +78 -0
  111. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/.cargo-checksum.json +1 -0
  112. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/Cargo.toml +63 -0
  113. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/lib.rs +328 -0
  114. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/unix.rs +265 -0
  115. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/windows.c +9 -0
  116. data/ext/cargo-vendor/wasmtime-jit-16.0.0/.cargo-checksum.json +1 -0
  117. data/ext/cargo-vendor/wasmtime-jit-16.0.0/Cargo.toml +125 -0
  118. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/code_memory.rs +319 -0
  119. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/instantiate.rs +772 -0
  120. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/lib.rs +21 -0
  121. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/.cargo-checksum.json +1 -0
  122. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/Cargo.toml +67 -0
  123. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/.cargo-checksum.json +1 -0
  124. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/Cargo.toml +46 -0
  125. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/.cargo-checksum.json +1 -0
  126. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/Cargo.toml +139 -0
  127. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/build.rs +28 -0
  128. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/proptest-regressions/instance/allocator/pooling/memory_pool.txt +9 -0
  129. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/aarch64.rs +120 -0
  130. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/mod.rs +32 -0
  131. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/riscv64.rs +88 -0
  132. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/s390x.rs +61 -0
  133. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/x86_64.rs +106 -0
  134. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/cow.rs +888 -0
  135. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/helpers.c +113 -0
  136. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/memory_pool.rs +1005 -0
  137. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/stack_pool.rs +242 -0
  138. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/table_pool.rs +227 -0
  139. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling.rs +698 -0
  140. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/lib.rs +264 -0
  141. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/libcalls.rs +776 -0
  142. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mmap.rs +214 -0
  143. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/enabled.rs +204 -0
  144. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/pkru.rs +102 -0
  145. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/mod.rs +10 -0
  146. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/traphandlers.rs +42 -0
  147. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/unwind.rs +17 -0
  148. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/vm.rs +63 -0
  149. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/mod.rs +30 -0
  150. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/machports.rs +487 -0
  151. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/macos_traphandlers.rs +28 -0
  152. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/mod.rs +21 -0
  153. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/signals.rs +402 -0
  154. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/unwind.rs +91 -0
  155. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/vm.rs +208 -0
  156. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/mod.rs +6 -0
  157. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/traphandlers.rs +105 -0
  158. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/unwind.rs +46 -0
  159. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/vm.rs +79 -0
  160. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers/backtrace.rs +265 -0
  161. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers.rs +733 -0
  162. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/vmcontext.rs +1197 -0
  163. data/ext/cargo-vendor/wasmtime-types-16.0.0/.cargo-checksum.json +1 -0
  164. data/ext/cargo-vendor/wasmtime-types-16.0.0/Cargo.toml +36 -0
  165. data/ext/cargo-vendor/wasmtime-types-16.0.0/src/lib.rs +504 -0
  166. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/.cargo-checksum.json +1 -0
  167. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/Cargo.toml +32 -0
  168. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/.cargo-checksum.json +1 -0
  169. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/Cargo.toml +261 -0
  170. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/lib.rs +137 -0
  171. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/io.rs +368 -0
  172. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/network.rs +570 -0
  173. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/tcp.rs +632 -0
  174. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/udp.rs +550 -0
  175. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/mod.rs +328 -0
  176. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview0.rs +870 -0
  177. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview1.rs +2348 -0
  178. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stdio.rs +259 -0
  179. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stream.rs +182 -0
  180. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/table.rs +337 -0
  181. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/api.rs +218 -0
  182. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/async_.rs +360 -0
  183. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/main.rs +113 -0
  184. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/preview1.rs +239 -0
  185. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/sync.rs +299 -0
  186. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/process_stdin.rs +165 -0
  187. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/command-extended.wit +6 -0
  188. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/command.wit +7 -0
  189. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/imports.wit +20 -0
  190. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/proxy.wit +32 -0
  191. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/types.wit +570 -0
  192. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/test.wit +22 -0
  193. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/typenames.witx +746 -0
  194. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/wasi_unstable.witx +513 -0
  195. data/ext/cargo-vendor/wasmtime-winch-16.0.0/.cargo-checksum.json +1 -0
  196. data/ext/cargo-vendor/wasmtime-winch-16.0.0/Cargo.toml +77 -0
  197. data/ext/cargo-vendor/wasmtime-winch-16.0.0/src/compiler.rs +243 -0
  198. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/.cargo-checksum.json +1 -0
  199. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/Cargo.toml +41 -0
  200. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/.cargo-checksum.json +1 -0
  201. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/Cargo.toml +29 -0
  202. data/ext/cargo-vendor/wiggle-16.0.0/.cargo-checksum.json +1 -0
  203. data/ext/cargo-vendor/wiggle-16.0.0/Cargo.toml +115 -0
  204. data/ext/cargo-vendor/wiggle-16.0.0/src/lib.rs +1198 -0
  205. data/ext/cargo-vendor/wiggle-generate-16.0.0/.cargo-checksum.json +1 -0
  206. data/ext/cargo-vendor/wiggle-generate-16.0.0/Cargo.toml +65 -0
  207. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/handle.rs +84 -0
  208. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/record.rs +132 -0
  209. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/variant.rs +191 -0
  210. data/ext/cargo-vendor/wiggle-macro-16.0.0/.cargo-checksum.json +1 -0
  211. data/ext/cargo-vendor/wiggle-macro-16.0.0/Cargo.toml +55 -0
  212. data/ext/cargo-vendor/winch-codegen-0.14.0/.cargo-checksum.json +1 -0
  213. data/ext/cargo-vendor/winch-codegen-0.14.0/Cargo.toml +76 -0
  214. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/local.rs +81 -0
  215. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/mod.rs +614 -0
  216. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/call.rs +345 -0
  217. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/context.rs +545 -0
  218. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/control.rs +497 -0
  219. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/env.rs +251 -0
  220. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/mod.rs +428 -0
  221. data/ext/cargo-vendor/winch-codegen-0.14.0/src/frame/mod.rs +221 -0
  222. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/abi.rs +313 -0
  223. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/masm.rs +444 -0
  224. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/mod.rs +137 -0
  225. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/mod.rs +225 -0
  226. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/abi.rs +524 -0
  227. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/asm.rs +1117 -0
  228. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/masm.rs +994 -0
  229. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/mod.rs +172 -0
  230. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/regs.rs +247 -0
  231. data/ext/cargo-vendor/winch-codegen-0.14.0/src/masm.rs +679 -0
  232. data/ext/cargo-vendor/winch-codegen-0.14.0/src/stack.rs +436 -0
  233. data/ext/cargo-vendor/winch-codegen-0.14.0/src/trampoline.rs +734 -0
  234. data/ext/cargo-vendor/winch-codegen-0.14.0/src/visitor.rs +1383 -0
  235. data/lib/wasmtime/version.rb +1 -1
  236. metadata +903 -977
  237. data/ext/cargo-vendor/cranelift-bforest-0.102.1/.cargo-checksum.json +0 -1
  238. data/ext/cargo-vendor/cranelift-bforest-0.102.1/Cargo.toml +0 -31
  239. data/ext/cargo-vendor/cranelift-bforest-0.102.1/src/lib.rs +0 -184
  240. data/ext/cargo-vendor/cranelift-codegen-0.102.1/.cargo-checksum.json +0 -1
  241. data/ext/cargo-vendor/cranelift-codegen-0.102.1/Cargo.toml +0 -164
  242. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/binemit/mod.rs +0 -171
  243. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/cost.rs +0 -91
  244. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/elaborate.rs +0 -731
  245. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph.rs +0 -678
  246. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/dfg.rs +0 -1730
  247. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/pcc.rs +0 -1682
  248. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/aarch64/lower/isle.rs +0 -875
  249. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst/mod.rs +0 -2041
  250. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst.isle +0 -2909
  251. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/lower.isle +0 -2860
  252. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/s390x/lower/isle.rs +0 -1029
  253. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/lower/isle.rs +0 -1070
  254. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/pcc.rs +0 -884
  255. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isle_prelude.rs +0 -972
  256. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/lib.rs +0 -108
  257. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/machinst/isle.rs +0 -897
  258. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/arithmetic.isle +0 -128
  259. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/cprop.isle +0 -210
  260. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/icmp.isle +0 -177
  261. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/selects.isle +0 -59
  262. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts.rs +0 -138
  263. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/prelude.isle +0 -646
  264. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/timing.rs +0 -271
  265. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/unionfind.rs +0 -74
  266. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/.cargo-checksum.json +0 -1
  267. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/Cargo.toml +0 -26
  268. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/.cargo-checksum.json +0 -1
  269. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/Cargo.toml +0 -22
  270. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/src/lib.rs +0 -12
  271. data/ext/cargo-vendor/cranelift-control-0.102.1/.cargo-checksum.json +0 -1
  272. data/ext/cargo-vendor/cranelift-control-0.102.1/Cargo.toml +0 -30
  273. data/ext/cargo-vendor/cranelift-entity-0.102.1/.cargo-checksum.json +0 -1
  274. data/ext/cargo-vendor/cranelift-entity-0.102.1/Cargo.toml +0 -41
  275. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/lib.rs +0 -316
  276. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/primary.rs +0 -456
  277. data/ext/cargo-vendor/cranelift-frontend-0.102.1/.cargo-checksum.json +0 -1
  278. data/ext/cargo-vendor/cranelift-frontend-0.102.1/Cargo.toml +0 -59
  279. data/ext/cargo-vendor/cranelift-frontend-0.102.1/src/lib.rs +0 -191
  280. data/ext/cargo-vendor/cranelift-isle-0.102.1/.cargo-checksum.json +0 -1
  281. data/ext/cargo-vendor/cranelift-isle-0.102.1/Cargo.toml +0 -37
  282. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_constructor_main.rs +0 -71
  283. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_extractor_main.rs +0 -50
  284. data/ext/cargo-vendor/cranelift-isle-0.102.1/src/codegen.rs +0 -763
  285. data/ext/cargo-vendor/cranelift-native-0.102.1/.cargo-checksum.json +0 -1
  286. data/ext/cargo-vendor/cranelift-native-0.102.1/Cargo.toml +0 -43
  287. data/ext/cargo-vendor/cranelift-native-0.102.1/src/lib.rs +0 -190
  288. data/ext/cargo-vendor/cranelift-wasm-0.102.1/.cargo-checksum.json +0 -1
  289. data/ext/cargo-vendor/cranelift-wasm-0.102.1/Cargo.toml +0 -97
  290. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/environ/dummy.rs +0 -953
  291. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/lib.rs +0 -64
  292. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/translation_utils.rs +0 -97
  293. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/.cargo-checksum.json +0 -1
  294. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/Cargo.toml +0 -93
  295. data/ext/cargo-vendor/wasi-common-15.0.1/.cargo-checksum.json +0 -1
  296. data/ext/cargo-vendor/wasi-common-15.0.1/Cargo.toml +0 -122
  297. data/ext/cargo-vendor/wasi-common-15.0.1/src/lib.rs +0 -73
  298. data/ext/cargo-vendor/wasi-common-15.0.1/src/snapshots/preview_1.rs +0 -1490
  299. data/ext/cargo-vendor/wasm-encoder-0.36.2/.cargo-checksum.json +0 -1
  300. data/ext/cargo-vendor/wasm-encoder-0.36.2/Cargo.toml +0 -37
  301. data/ext/cargo-vendor/wasm-encoder-0.36.2/README.md +0 -80
  302. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/aliases.rs +0 -160
  303. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/builder.rs +0 -455
  304. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/canonicals.rs +0 -159
  305. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/components.rs +0 -29
  306. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/exports.rs +0 -124
  307. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/imports.rs +0 -175
  308. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/instances.rs +0 -200
  309. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/modules.rs +0 -29
  310. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/names.rs +0 -149
  311. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/start.rs +0 -52
  312. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/types.rs +0 -771
  313. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component.rs +0 -168
  314. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/code.rs +0 -2989
  315. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/custom.rs +0 -73
  316. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/data.rs +0 -185
  317. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/dump.rs +0 -627
  318. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/elements.rs +0 -220
  319. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/exports.rs +0 -98
  320. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/functions.rs +0 -63
  321. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/globals.rs +0 -100
  322. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/imports.rs +0 -155
  323. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/linking.rs +0 -263
  324. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/memories.rs +0 -111
  325. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/names.rs +0 -265
  326. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/producers.rs +0 -180
  327. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/start.rs +0 -39
  328. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tables.rs +0 -115
  329. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tags.rs +0 -104
  330. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/types.rs +0 -584
  331. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core.rs +0 -168
  332. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/lib.rs +0 -215
  333. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/raw.rs +0 -30
  334. data/ext/cargo-vendor/wasmparser-0.116.1/.cargo-checksum.json +0 -1
  335. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.lock +0 -674
  336. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.toml +0 -60
  337. data/ext/cargo-vendor/wasmparser-0.116.1/README.md +0 -36
  338. data/ext/cargo-vendor/wasmparser-0.116.1/benches/benchmark.rs +0 -370
  339. data/ext/cargo-vendor/wasmparser-0.116.1/examples/simple.rs +0 -37
  340. data/ext/cargo-vendor/wasmparser-0.116.1/src/binary_reader.rs +0 -1706
  341. data/ext/cargo-vendor/wasmparser-0.116.1/src/define_types.rs +0 -782
  342. data/ext/cargo-vendor/wasmparser-0.116.1/src/lib.rs +0 -729
  343. data/ext/cargo-vendor/wasmparser-0.116.1/src/limits.rs +0 -58
  344. data/ext/cargo-vendor/wasmparser-0.116.1/src/parser.rs +0 -1612
  345. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/aliases.rs +0 -119
  346. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/canonicals.rs +0 -120
  347. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/exports.rs +0 -135
  348. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/imports.rs +0 -129
  349. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/instances.rs +0 -163
  350. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/names.rs +0 -102
  351. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/start.rs +0 -30
  352. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/types.rs +0 -549
  353. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component.rs +0 -17
  354. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/code.rs +0 -146
  355. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/coredumps.rs +0 -243
  356. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/custom.rs +0 -63
  357. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/data.rs +0 -96
  358. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/dylink0.rs +0 -132
  359. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/elements.rs +0 -152
  360. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/exports.rs +0 -65
  361. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/functions.rs +0 -17
  362. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/globals.rs +0 -49
  363. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/imports.rs +0 -76
  364. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/init.rs +0 -51
  365. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/memories.rs +0 -56
  366. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/names.rs +0 -153
  367. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/operators.rs +0 -354
  368. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/producers.rs +0 -83
  369. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tables.rs +0 -87
  370. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tags.rs +0 -32
  371. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/types.rs +0 -544
  372. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core.rs +0 -37
  373. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers.rs +0 -316
  374. data/ext/cargo-vendor/wasmparser-0.116.1/src/resources.rs +0 -398
  375. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/component.rs +0 -3203
  376. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/core.rs +0 -1341
  377. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/func.rs +0 -348
  378. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/names.rs +0 -859
  379. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/operators.rs +0 -3466
  380. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/types.rs +0 -4011
  381. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator.rs +0 -1603
  382. data/ext/cargo-vendor/wasmparser-0.116.1/tests/big-module.rs +0 -33
  383. data/ext/cargo-vendor/wasmtime-15.0.1/.cargo-checksum.json +0 -1
  384. data/ext/cargo-vendor/wasmtime-15.0.1/Cargo.toml +0 -202
  385. data/ext/cargo-vendor/wasmtime-15.0.1/src/compiler.rs +0 -682
  386. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/component.rs +0 -505
  387. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/func/typed.rs +0 -2398
  388. data/ext/cargo-vendor/wasmtime-15.0.1/src/config.rs +0 -2422
  389. data/ext/cargo-vendor/wasmtime-15.0.1/src/func.rs +0 -2428
  390. data/ext/cargo-vendor/wasmtime-15.0.1/src/lib.rs +0 -518
  391. data/ext/cargo-vendor/wasmtime-15.0.1/src/memory.rs +0 -996
  392. data/ext/cargo-vendor/wasmtime-15.0.1/src/module.rs +0 -1370
  393. data/ext/cargo-vendor/wasmtime-15.0.1/src/stack.rs +0 -73
  394. data/ext/cargo-vendor/wasmtime-15.0.1/src/v128.rs +0 -151
  395. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/.cargo-checksum.json +0 -1
  396. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/Cargo.toml +0 -22
  397. data/ext/cargo-vendor/wasmtime-cache-15.0.1/.cargo-checksum.json +0 -1
  398. data/ext/cargo-vendor/wasmtime-cache-15.0.1/Cargo.toml +0 -72
  399. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/lib.rs +0 -238
  400. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/worker.rs +0 -894
  401. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/.cargo-checksum.json +0 -1
  402. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/Cargo.toml +0 -58
  403. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/.cargo-checksum.json +0 -1
  404. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/Cargo.toml +0 -25
  405. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/.cargo-checksum.json +0 -1
  406. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/Cargo.toml +0 -103
  407. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler/component.rs +0 -959
  408. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler.rs +0 -1317
  409. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/expression.rs +0 -1250
  410. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/simulate.rs +0 -410
  411. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug.rs +0 -18
  412. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/func_environ.rs +0 -2746
  413. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/.cargo-checksum.json +0 -1
  414. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/Cargo.toml +0 -62
  415. data/ext/cargo-vendor/wasmtime-environ-15.0.1/.cargo-checksum.json +0 -1
  416. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.lock +0 -677
  417. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.toml +0 -116
  418. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/compilation.rs +0 -402
  419. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/compiler.rs +0 -47
  420. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/translate.rs +0 -951
  421. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/types.rs +0 -1870
  422. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/lib.rs +0 -59
  423. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module.rs +0 -1083
  424. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_environ.rs +0 -876
  425. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_types.rs +0 -78
  426. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/scopevec.rs +0 -57
  427. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/.cargo-checksum.json +0 -1
  428. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/Cargo.toml +0 -54
  429. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/lib.rs +0 -327
  430. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/unix.rs +0 -265
  431. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/windows.c +0 -9
  432. data/ext/cargo-vendor/wasmtime-jit-15.0.1/.cargo-checksum.json +0 -1
  433. data/ext/cargo-vendor/wasmtime-jit-15.0.1/Cargo.toml +0 -115
  434. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/code_memory.rs +0 -321
  435. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/instantiate.rs +0 -766
  436. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/lib.rs +0 -22
  437. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/miri.rs +0 -15
  438. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/systemv.rs +0 -90
  439. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/winx64.rs +0 -44
  440. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind.rs +0 -14
  441. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/.cargo-checksum.json +0 -1
  442. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/Cargo.toml +0 -58
  443. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/.cargo-checksum.json +0 -1
  444. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/Cargo.toml +0 -37
  445. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/.cargo-checksum.json +0 -1
  446. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/Cargo.toml +0 -126
  447. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/build.rs +0 -19
  448. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/proptest-regressions/instance/allocator/pooling/memory_pool.txt +0 -8
  449. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/cow.rs +0 -1060
  450. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/helpers.c +0 -108
  451. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/memory_pool.rs +0 -999
  452. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/stack_pool.rs +0 -242
  453. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/table_pool.rs +0 -225
  454. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/unix.rs +0 -56
  455. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/windows.rs +0 -38
  456. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling.rs +0 -708
  457. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/lib.rs +0 -279
  458. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/libcalls.rs +0 -775
  459. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mmap.rs +0 -226
  460. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/enabled.rs +0 -201
  461. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/pkru.rs +0 -93
  462. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/aarch64.rs +0 -42
  463. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/riscv64.rs +0 -45
  464. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/s390x.rs +0 -25
  465. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/x86_64.rs +0 -64
  466. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines.rs +0 -19
  467. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/aarch64.rs +0 -55
  468. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/riscv64.rs +0 -18
  469. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/s390x.rs +0 -22
  470. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/x86_64.rs +0 -20
  471. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace.rs +0 -291
  472. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/macos.rs +0 -492
  473. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/unix.rs +0 -402
  474. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/windows.rs +0 -89
  475. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers.rs +0 -815
  476. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/vmcontext.rs +0 -1197
  477. data/ext/cargo-vendor/wasmtime-types-15.0.1/.cargo-checksum.json +0 -1
  478. data/ext/cargo-vendor/wasmtime-types-15.0.1/Cargo.toml +0 -36
  479. data/ext/cargo-vendor/wasmtime-types-15.0.1/src/lib.rs +0 -504
  480. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/.cargo-checksum.json +0 -1
  481. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/Cargo.toml +0 -32
  482. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/.cargo-checksum.json +0 -1
  483. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/Cargo.toml +0 -248
  484. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/lib.rs +0 -135
  485. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/io.rs +0 -368
  486. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/network.rs +0 -515
  487. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/tcp.rs +0 -630
  488. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/udp.rs +0 -543
  489. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/mod.rs +0 -326
  490. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/preview1.rs +0 -2342
  491. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stdio.rs +0 -450
  492. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stream.rs +0 -182
  493. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/table.rs +0 -258
  494. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/command-extended.wit +0 -6
  495. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/command.wit +0 -7
  496. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/reactor.wit +0 -31
  497. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/proxy.wit +0 -33
  498. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/types.wit +0 -559
  499. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/test.wit +0 -22
  500. data/ext/cargo-vendor/wasmtime-winch-15.0.1/.cargo-checksum.json +0 -1
  501. data/ext/cargo-vendor/wasmtime-winch-15.0.1/Cargo.toml +0 -68
  502. data/ext/cargo-vendor/wasmtime-winch-15.0.1/src/compiler.rs +0 -242
  503. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/.cargo-checksum.json +0 -1
  504. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/Cargo.toml +0 -32
  505. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/.cargo-checksum.json +0 -1
  506. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/Cargo.toml +0 -22
  507. data/ext/cargo-vendor/wiggle-15.0.1/.cargo-checksum.json +0 -1
  508. data/ext/cargo-vendor/wiggle-15.0.1/Cargo.toml +0 -106
  509. data/ext/cargo-vendor/wiggle-15.0.1/src/lib.rs +0 -1198
  510. data/ext/cargo-vendor/wiggle-generate-15.0.1/.cargo-checksum.json +0 -1
  511. data/ext/cargo-vendor/wiggle-generate-15.0.1/Cargo.toml +0 -58
  512. data/ext/cargo-vendor/wiggle-generate-15.0.1/LICENSE +0 -220
  513. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/handle.rs +0 -84
  514. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/record.rs +0 -132
  515. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/variant.rs +0 -191
  516. data/ext/cargo-vendor/wiggle-macro-15.0.1/.cargo-checksum.json +0 -1
  517. data/ext/cargo-vendor/wiggle-macro-15.0.1/Cargo.toml +0 -55
  518. data/ext/cargo-vendor/wiggle-macro-15.0.1/LICENSE +0 -220
  519. data/ext/cargo-vendor/winch-codegen-0.13.1/.cargo-checksum.json +0 -1
  520. data/ext/cargo-vendor/winch-codegen-0.13.1/Cargo.toml +0 -67
  521. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/local.rs +0 -70
  522. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/mod.rs +0 -304
  523. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/call.rs +0 -353
  524. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/context.rs +0 -465
  525. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/control.rs +0 -456
  526. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/env.rs +0 -181
  527. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/mod.rs +0 -436
  528. data/ext/cargo-vendor/winch-codegen-0.13.1/src/frame/mod.rs +0 -189
  529. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/abi.rs +0 -267
  530. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/masm.rs +0 -436
  531. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/mod.rs +0 -136
  532. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/mod.rs +0 -218
  533. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/abi.rs +0 -410
  534. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/asm.rs +0 -1106
  535. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/masm.rs +0 -953
  536. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/mod.rs +0 -172
  537. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/regs.rs +0 -247
  538. data/ext/cargo-vendor/winch-codegen-0.13.1/src/masm.rs +0 -592
  539. data/ext/cargo-vendor/winch-codegen-0.13.1/src/stack.rs +0 -366
  540. data/ext/cargo-vendor/winch-codegen-0.13.1/src/trampoline.rs +0 -489
  541. data/ext/cargo-vendor/winch-codegen-0.13.1/src/visitor.rs +0 -1339
  542. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/LICENSE +0 -0
  543. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/README.md +0 -0
  544. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/map.rs +0 -0
  545. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/node.rs +0 -0
  546. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/path.rs +0 -0
  547. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/pool.rs +0 -0
  548. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/set.rs +0 -0
  549. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/LICENSE +0 -0
  550. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/README.md +0 -0
  551. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/benches/x64-evex-encoding.rs +0 -0
  552. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/build.rs +0 -0
  553. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/alias_analysis.rs +0 -0
  554. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/binemit/stack_map.rs +0 -0
  555. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/bitset.rs +0 -0
  556. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cfg_printer.rs +0 -0
  557. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/constant_hash.rs +0 -0
  558. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/context.rs +0 -0
  559. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ctxhash.rs +0 -0
  560. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cursor.rs +0 -0
  561. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/data_value.rs +0 -0
  562. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dbg.rs +0 -0
  563. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dce.rs +0 -0
  564. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dominator_tree.rs +0 -0
  565. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/egraph/domtree.rs +0 -0
  566. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/flowgraph.rs +0 -0
  567. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/fx.rs +0 -0
  568. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/incremental_cache.rs +0 -0
  569. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/inst_predicates.rs +0 -0
  570. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/atomic_rmw_op.rs +0 -0
  571. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/builder.rs +0 -0
  572. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/condcodes.rs +0 -0
  573. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/constant.rs +0 -0
  574. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/dynamic_type.rs +0 -0
  575. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/entities.rs +0 -0
  576. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extfunc.rs +0 -0
  577. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extname.rs +0 -0
  578. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/function.rs +0 -0
  579. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/globalvalue.rs +0 -0
  580. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/immediates.rs +0 -0
  581. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/instructions.rs +0 -0
  582. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/jumptable.rs +0 -0
  583. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/known_symbol.rs +0 -0
  584. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/layout.rs +0 -0
  585. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/libcall.rs +0 -0
  586. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memflags.rs +0 -0
  587. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memtype.rs +0 -0
  588. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/mod.rs +0 -0
  589. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/progpoint.rs +0 -0
  590. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/sourceloc.rs +0 -0
  591. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/stackslot.rs +0 -0
  592. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/table.rs +0 -0
  593. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/trapcode.rs +0 -0
  594. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/types.rs +0 -0
  595. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/abi.rs +0 -0
  596. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/args.rs +0 -0
  597. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit.rs +0 -0
  598. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  599. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/imms.rs +0 -0
  600. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/mod.rs +0 -0
  601. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/regs.rs +0 -0
  602. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  603. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  604. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst.isle +0 -0
  605. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst_neon.isle +0 -0
  606. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  607. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.isle +0 -0
  608. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.rs +0 -0
  609. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  610. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/mod.rs +0 -0
  611. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/pcc.rs +0 -0
  612. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/settings.rs +0 -0
  613. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/call_conv.rs +0 -0
  614. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/mod.rs +0 -0
  615. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/abi.rs +0 -0
  616. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/args.rs +0 -0
  617. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit.rs +0 -0
  618. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  619. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/encode.rs +0 -0
  620. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/imms.rs +0 -0
  621. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/regs.rs +0 -0
  622. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  623. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  624. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/vector.rs +0 -0
  625. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst_vector.isle +0 -0
  626. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  627. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle.rs +0 -0
  628. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower.rs +0 -0
  629. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/mod.rs +0 -0
  630. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/settings.rs +0 -0
  631. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/abi.rs +0 -0
  632. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/args.rs +0 -0
  633. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit.rs +0 -0
  634. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit_tests.rs +0 -0
  635. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/imms.rs +0 -0
  636. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/mod.rs +0 -0
  637. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/regs.rs +0 -0
  638. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  639. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind.rs +0 -0
  640. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst.isle +0 -0
  641. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  642. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.isle +0 -0
  643. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.rs +0 -0
  644. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/mod.rs +0 -0
  645. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/settings.rs +0 -0
  646. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/systemv.rs +0 -0
  647. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/winx64.rs +0 -0
  648. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind.rs +0 -0
  649. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/abi.rs +0 -0
  650. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/evex.rs +0 -0
  651. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/mod.rs +0 -0
  652. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/rex.rs +0 -0
  653. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/vex.rs +0 -0
  654. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/args.rs +0 -0
  655. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit.rs +0 -0
  656. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_state.rs +0 -0
  657. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_tests.rs +0 -0
  658. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/mod.rs +0 -0
  659. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/regs.rs +0 -0
  660. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  661. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  662. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind.rs +0 -0
  663. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst.isle +0 -0
  664. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  665. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.isle +0 -0
  666. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.rs +0 -0
  667. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/mod.rs +0 -0
  668. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/settings.rs +0 -0
  669. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/iterators.rs +0 -0
  670. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/globalvalue.rs +0 -0
  671. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/mod.rs +0 -0
  672. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/table.rs +0 -0
  673. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/loop_analysis.rs +0 -0
  674. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/abi.rs +0 -0
  675. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/blockorder.rs +0 -0
  676. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/buffer.rs +0 -0
  677. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/compile.rs +0 -0
  678. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/helpers.rs +0 -0
  679. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/inst_common.rs +0 -0
  680. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/lower.rs +0 -0
  681. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/mod.rs +0 -0
  682. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/pcc.rs +0 -0
  683. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/reg.rs +0 -0
  684. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/valueregs.rs +0 -0
  685. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/vcode.rs +0 -0
  686. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/nan_canonicalization.rs +0 -0
  687. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/README.md +0 -0
  688. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/bitops.isle +0 -0
  689. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/extends.isle +0 -0
  690. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/generated_code.rs +0 -0
  691. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/remat.isle +0 -0
  692. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/shifts.isle +0 -0
  693. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/vector.isle +0 -0
  694. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_lower.isle +0 -0
  695. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_opt.isle +0 -0
  696. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/print_errors.rs +0 -0
  697. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/remove_constant_phis.rs +0 -0
  698. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/result.rs +0 -0
  699. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/scoped_hash_map.rs +0 -0
  700. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/settings.rs +0 -0
  701. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/souper_harvest.rs +0 -0
  702. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/unreachable_code.rs +0 -0
  703. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/value_label.rs +0 -0
  704. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/verifier/mod.rs +0 -0
  705. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/write.rs +0 -0
  706. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/LICENSE +0 -0
  707. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/README.md +0 -0
  708. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/formats.rs +0 -0
  709. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/instructions.rs +0 -0
  710. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/isa.rs +0 -0
  711. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/mod.rs +0 -0
  712. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/operands.rs +0 -0
  713. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/settings.rs +0 -0
  714. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/types.rs +0 -0
  715. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/typevar.rs +0 -0
  716. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/constant_hash.rs +0 -0
  717. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/error.rs +0 -0
  718. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_inst.rs +0 -0
  719. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_settings.rs +0 -0
  720. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_types.rs +0 -0
  721. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/arm64.rs +0 -0
  722. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/mod.rs +0 -0
  723. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/riscv64.rs +0 -0
  724. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/s390x.rs +0 -0
  725. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/x86.rs +0 -0
  726. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/lib.rs +0 -0
  727. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/entities.rs +0 -0
  728. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/formats.rs +0 -0
  729. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/immediates.rs +0 -0
  730. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/instructions.rs +0 -0
  731. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/mod.rs +0 -0
  732. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/settings.rs +0 -0
  733. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/types.rs +0 -0
  734. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/srcgen.rs +0 -0
  735. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/unique_table.rs +0 -0
  736. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/LICENSE +0 -0
  737. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/README.md +0 -0
  738. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constant_hash.rs +0 -0
  739. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constants.rs +0 -0
  740. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/LICENSE +0 -0
  741. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/README.md +0 -0
  742. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/chaos.rs +0 -0
  743. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/lib.rs +0 -0
  744. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/zero_sized.rs +0 -0
  745. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/LICENSE +0 -0
  746. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/README.md +0 -0
  747. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/boxed_slice.rs +0 -0
  748. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/iter.rs +0 -0
  749. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/keys.rs +0 -0
  750. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/list.rs +0 -0
  751. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/map.rs +0 -0
  752. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/packed_option.rs +0 -0
  753. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/set.rs +0 -0
  754. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/sparse.rs +0 -0
  755. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/LICENSE +0 -0
  756. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/README.md +0 -0
  757. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/frontend.rs +0 -0
  758. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/ssa.rs +0 -0
  759. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/switch.rs +0 -0
  760. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/variable.rs +0 -0
  761. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/README.md +0 -0
  762. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/build.rs +0 -0
  763. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bad_converters.isle +0 -0
  764. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  765. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  766. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/error1.isle +0 -0
  767. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/extra_parens.isle +0 -0
  768. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_expression.isle +0 -0
  769. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_rhs.isle +0 -0
  770. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  771. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_prio.isle +0 -0
  772. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows.isle +0 -0
  773. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows_main.rs +0 -0
  774. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets.isle +0 -0
  775. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets_main.rs +0 -0
  776. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_constructor.isle +0 -0
  777. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_extractor.isle +0 -0
  778. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test.isle +0 -0
  779. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test_main.rs +0 -0
  780. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/bound_var.isle +0 -0
  781. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  782. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions.isle +0 -0
  783. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions_extern.isle +0 -0
  784. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/let.isle +0 -0
  785. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/nodebug.isle +0 -0
  786. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  787. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test2.isle +0 -0
  788. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test3.isle +0 -0
  789. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test4.isle +0 -0
  790. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/tutorial.isle +0 -0
  791. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst.isle +0 -0
  792. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst_main.rs +0 -0
  793. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing.isle +0 -0
  794. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  795. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/ast.rs +0 -0
  796. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/compile.rs +0 -0
  797. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/error.rs +0 -0
  798. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lexer.rs +0 -0
  799. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lib.rs +0 -0
  800. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/log.rs +0 -0
  801. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/overlap.rs +0 -0
  802. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/parser.rs +0 -0
  803. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/sema.rs +0 -0
  804. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/serialize.rs +0 -0
  805. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/trie_again.rs +0 -0
  806. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/tests/run_tests.rs +0 -0
  807. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/LICENSE +0 -0
  808. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/README.md +0 -0
  809. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/src/riscv.rs +0 -0
  810. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/LICENSE +0 -0
  811. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/README.md +0 -0
  812. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator/bounds_checks.rs +0 -0
  813. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator.rs +0 -0
  814. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/mod.rs +0 -0
  815. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/spec.rs +0 -0
  816. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/func_translator.rs +0 -0
  817. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/heap.rs +0 -0
  818. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/module_translator.rs +0 -0
  819. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/sections_translator.rs +0 -0
  820. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/state.rs +0 -0
  821. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/tests/wasm_testsuite.rs +0 -0
  822. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/arith.wat +0 -0
  823. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/br_table.wat +0 -0
  824. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call-simd.wat +0 -0
  825. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call.wat +0 -0
  826. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fannkuch.wat +0 -0
  827. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fasta.wat +0 -0
  828. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_ifs.wat +0 -0
  829. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_primes.wat +0 -0
  830. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fac-multi-value.wat +0 -0
  831. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fibonacci.wat +0 -0
  832. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/globals.wat +0 -0
  833. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall-simd.wat +0 -0
  834. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall.wat +0 -0
  835. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-0.wat +0 -0
  836. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-1.wat +0 -0
  837. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-2.wat +0 -0
  838. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-3.wat +0 -0
  839. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-4.wat +0 -0
  840. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-5.wat +0 -0
  841. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-6.wat +0 -0
  842. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params-2.wat +0 -0
  843. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params.wat +0 -0
  844. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  845. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/memory.wat +0 -0
  846. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-0.wat +0 -0
  847. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-1.wat +0 -0
  848. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-10.wat +0 -0
  849. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-11.wat +0 -0
  850. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-12.wat +0 -0
  851. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-13.wat +0 -0
  852. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-14.wat +0 -0
  853. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-15.wat +0 -0
  854. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-16.wat +0 -0
  855. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-17.wat +0 -0
  856. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-2.wat +0 -0
  857. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-3.wat +0 -0
  858. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-4.wat +0 -0
  859. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-5.wat +0 -0
  860. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-6.wat +0 -0
  861. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-7.wat +0 -0
  862. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-8.wat +0 -0
  863. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-9.wat +0 -0
  864. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/nullref.wat +0 -0
  865. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/passive-data.wat +0 -0
  866. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2303.wat +0 -0
  867. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2559.wat +0 -0
  868. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/ref-func-0.wat +0 -0
  869. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/rust_fannkuch.wat +0 -0
  870. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/select.wat +0 -0
  871. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd-store.wat +0 -0
  872. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd.wat +0 -0
  873. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/table-copy.wat +0 -0
  874. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/unreachable_code.wat +0 -0
  875. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/LICENSE +0 -0
  876. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/README.md +0 -0
  877. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/clocks.rs +0 -0
  878. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/dir.rs +0 -0
  879. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/file.rs +0 -0
  880. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/lib.rs +0 -0
  881. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/net.rs +0 -0
  882. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/unix.rs +0 -0
  883. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/windows.rs +0 -0
  884. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched.rs +0 -0
  885. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/stdio.rs +0 -0
  886. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/LICENSE +0 -0
  887. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/README.md +0 -0
  888. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/README.md +0 -0
  889. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/docs/README.md +0 -0
  890. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/README.md +0 -0
  891. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/docs.md +0 -0
  892. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  893. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  894. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  895. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  896. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  897. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  898. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  899. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  900. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  901. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  902. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  903. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/docs.md +0 -0
  904. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  905. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  906. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.html +0 -0
  907. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.md +0 -0
  908. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  909. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  910. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposal-template/README.md +0 -0
  911. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposals/README.md +0 -0
  912. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/snapshots/README.md +0 -0
  913. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/standard/README.md +0 -0
  914. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/build.rs +0 -0
  915. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/clocks.rs +0 -0
  916. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/ctx.rs +0 -0
  917. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/dir.rs +0 -0
  918. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/error.rs +0 -0
  919. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/file.rs +0 -0
  920. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/pipe.rs +0 -0
  921. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/random.rs +0 -0
  922. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched/subscription.rs +0 -0
  923. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched.rs +0 -0
  924. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/mod.rs +0 -0
  925. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_0.rs +0 -0
  926. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_1/error.rs +0 -0
  927. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/string_array.rs +0 -0
  928. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/table.rs +0 -0
  929. /data/ext/cargo-vendor/{wasm-encoder-0.36.2 → wasmtime-16.0.0}/LICENSE +0 -0
  930. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/README.md +0 -0
  931. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/code.rs +0 -0
  932. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/host.rs +0 -0
  933. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/options.rs +0 -0
  934. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func.rs +0 -0
  935. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/instance.rs +0 -0
  936. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/linker.rs +0 -0
  937. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/matching.rs +0 -0
  938. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/mod.rs +0 -0
  939. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/resources.rs +0 -0
  940. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/storage.rs +0 -0
  941. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/store.rs +0 -0
  942. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/types.rs +0 -0
  943. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/values.rs +0 -0
  944. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/coredump.rs +0 -0
  945. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine/serialization.rs +0 -0
  946. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine.rs +0 -0
  947. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/global.rs +0 -0
  948. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/table.rs +0 -0
  949. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals.rs +0 -0
  950. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/func/typed.rs +0 -0
  951. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/instance.rs +0 -0
  952. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/limits.rs +0 -0
  953. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/linker.rs +0 -0
  954. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/module/registry.rs +0 -0
  955. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/profiling.rs +0 -0
  956. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/ref.rs +0 -0
  957. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/resources.rs +0 -0
  958. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/signatures.rs +0 -0
  959. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/context.rs +0 -0
  960. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/data.rs +0 -0
  961. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/func_refs.rs +0 -0
  962. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store.rs +0 -0
  963. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/func.rs +0 -0
  964. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/global.rs +0 -0
  965. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/memory.rs +0 -0
  966. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/table.rs +0 -0
  967. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline.rs +0 -0
  968. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trap.rs +0 -0
  969. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types/matching.rs +0 -0
  970. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types.rs +0 -0
  971. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/unix.rs +0 -0
  972. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/values.rs +0 -0
  973. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/windows.rs +0 -0
  974. /data/ext/cargo-vendor/{wasmtime-asm-macros-15.0.1 → wasmtime-asm-macros-16.0.0}/src/lib.rs +0 -0
  975. /data/ext/cargo-vendor/{wasmparser-0.116.1 → wasmtime-cache-16.0.0}/LICENSE +0 -0
  976. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/build.rs +0 -0
  977. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config/tests.rs +0 -0
  978. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config.rs +0 -0
  979. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/tests.rs +0 -0
  980. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  981. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests.rs +0 -0
  982. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/tests/cache_write_default_config.rs +0 -0
  983. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/bindgen.rs +0 -0
  984. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/component.rs +0 -0
  985. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/lib.rs +0 -0
  986. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/char.wit +0 -0
  987. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/conventions.wit +0 -0
  988. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/direct-import.wit +0 -0
  989. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/empty.wit +0 -0
  990. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/flags.wit +0 -0
  991. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/floats.wit +0 -0
  992. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/function-new.wit +0 -0
  993. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/integers.wit +0 -0
  994. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/lists.wit +0 -0
  995. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/many-arguments.wit +0 -0
  996. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multi-return.wit +0 -0
  997. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  998. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  999. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/root.wit +0 -0
  1000. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/records.wit +0 -0
  1001. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/rename.wit +0 -0
  1002. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-export.wit +0 -0
  1003. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-import.wit +0 -0
  1004. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/share-types.wit +0 -0
  1005. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-functions.wit +0 -0
  1006. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-lists.wit +0 -0
  1007. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-wasi.wit +0 -0
  1008. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/small-anonymous.wit +0 -0
  1009. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-default.wit +0 -0
  1010. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-export.wit +0 -0
  1011. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke.wit +0 -0
  1012. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/strings.wit +0 -0
  1013. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/use-paths.wit +0 -0
  1014. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/variants.wit +0 -0
  1015. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  1016. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen.rs +0 -0
  1017. /data/ext/cargo-vendor/{wasmtime-component-util-15.0.1 → wasmtime-component-util-16.0.0}/src/lib.rs +0 -0
  1018. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-cranelift-16.0.0}/LICENSE +0 -0
  1019. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/SECURITY.md +0 -0
  1020. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/builder.rs +0 -0
  1021. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/gc.rs +0 -0
  1022. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/address_transform.rs +0 -0
  1023. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/attr.rs +0 -0
  1024. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/line_program.rs +0 -0
  1025. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/mod.rs +0 -0
  1026. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1027. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/refs.rs +0 -0
  1028. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/unit.rs +0 -0
  1029. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/utils.rs +0 -0
  1030. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/write_debuginfo.rs +0 -0
  1031. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/lib.rs +0 -0
  1032. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/compiled_function.rs +0 -0
  1033. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/isa_builder.rs +0 -0
  1034. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/lib.rs +0 -0
  1035. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/obj.rs +0 -0
  1036. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-environ-16.0.0}/LICENSE +0 -0
  1037. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/examples/factc.rs +0 -0
  1038. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/address_map.rs +0 -0
  1039. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/builtin.rs +0 -0
  1040. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/dfg.rs +0 -0
  1041. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/info.rs +0 -0
  1042. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/adapt.rs +0 -0
  1043. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/inline.rs +0 -0
  1044. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/types/resources.rs +0 -0
  1045. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1046. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component.rs +0 -0
  1047. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/core_types.rs +0 -0
  1048. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/signature.rs +0 -0
  1049. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/trampoline.rs +0 -0
  1050. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/transcode.rs +0 -0
  1051. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/traps.rs +0 -0
  1052. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact.rs +0 -0
  1053. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/obj.rs +0 -0
  1054. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/ref_bits.rs +0 -0
  1055. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/stack_map.rs +0 -0
  1056. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/trap_encoding.rs +0 -0
  1057. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/tunables.rs +0 -0
  1058. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/vmoffsets.rs +0 -0
  1059. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-fiber-16.0.0}/LICENSE +0 -0
  1060. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/build.rs +0 -0
  1061. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/aarch64.rs +0 -0
  1062. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/arm.rs +0 -0
  1063. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/riscv64.rs +0 -0
  1064. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/s390x.S +0 -0
  1065. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86.rs +0 -0
  1066. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86_64.rs +0 -0
  1067. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/windows.rs +0 -0
  1068. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-jit-16.0.0}/LICENSE +0 -0
  1069. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/debug.rs +0 -0
  1070. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/demangling.rs +0 -0
  1071. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/jitdump.rs +0 -0
  1072. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/perfmap.rs +0 -0
  1073. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/vtune.rs +0 -0
  1074. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling.rs +0 -0
  1075. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/README.md +0 -0
  1076. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/gdb_jit_int.rs +0 -0
  1077. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/lib.rs +0 -0
  1078. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/perf_jitdump.rs +0 -0
  1079. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/lib.rs +0 -0
  1080. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/libc.rs +0 -0
  1081. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/miri.rs +0 -0
  1082. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/win.rs +0 -0
  1083. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-runtime-16.0.0}/LICENSE +0 -0
  1084. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/trampolines → wasmtime-runtime-16.0.0/src/arch}/s390x.S +0 -0
  1085. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/libcalls.rs +0 -0
  1086. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/resources.rs +0 -0
  1087. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component.rs +0 -0
  1088. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/debug_builtins.rs +0 -0
  1089. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/export.rs +0 -0
  1090. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/externref.rs +0 -0
  1091. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/imports.rs +0 -0
  1092. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/on_demand.rs +0 -0
  1093. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1094. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator.rs +0 -0
  1095. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance.rs +0 -0
  1096. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/memory.rs +0 -0
  1097. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mmap_vec.rs +0 -0
  1098. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/module_id.rs +0 -0
  1099. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/disabled.rs +0 -0
  1100. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/mod.rs +0 -0
  1101. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/sys.rs +0 -0
  1102. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/parking_spot.rs +0 -0
  1103. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/send_sync_ptr.rs +0 -0
  1104. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/store_box.rs +0 -0
  1105. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/miri.rs → wasmtime-runtime-16.0.0/src/sys/miri/mmap.rs} +0 -0
  1106. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/unix.rs → wasmtime-runtime-16.0.0/src/sys/unix/mmap.rs} +0 -0
  1107. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/windows.rs → wasmtime-runtime-16.0.0/src/sys/windows/mmap.rs} +0 -0
  1108. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/table.rs +0 -0
  1109. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/traphandlers/coredump.rs +0 -0
  1110. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/vmcontext/vm_host_func_context.rs +0 -0
  1111. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-types-16.0.0}/LICENSE +0 -0
  1112. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wasmtime-types-16.0.0}/src/error.rs +0 -0
  1113. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-15.0.1 → wasmtime-versioned-export-macros-16.0.0}/src/lib.rs +0 -0
  1114. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-wasi-16.0.0}/LICENSE +0 -0
  1115. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/README.md +0 -0
  1116. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/build.rs +0 -0
  1117. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks/host.rs +0 -0
  1118. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks.rs +0 -0
  1119. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/command.rs +0 -0
  1120. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ctx.rs +0 -0
  1121. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/error.rs +0 -0
  1122. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/filesystem.rs +0 -0
  1123. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/clocks.rs +0 -0
  1124. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/env.rs +0 -0
  1125. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/exit.rs +0 -0
  1126. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem/sync.rs +0 -0
  1127. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem.rs +0 -0
  1128. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/instance_network.rs +0 -0
  1129. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/mod.rs +0 -0
  1130. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/random.rs +0 -0
  1131. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/tcp_create_socket.rs +0 -0
  1132. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/udp_create_socket.rs +0 -0
  1133. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ip_name_lookup.rs +0 -0
  1134. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/network.rs +0 -0
  1135. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/pipe.rs +0 -0
  1136. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/poll.rs +0 -0
  1137. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/random.rs +0 -0
  1138. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/stdio/worker_thread_stdin.rs +0 -0
  1139. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/tcp.rs +0 -0
  1140. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/udp.rs +0 -0
  1141. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/write_stream.rs +0 -0
  1142. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/environment.wit +0 -0
  1143. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/exit.wit +0 -0
  1144. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/run.wit +0 -0
  1145. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/stdio.wit +0 -0
  1146. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/terminal.wit +0 -0
  1147. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1148. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  1149. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/world.wit +0 -0
  1150. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  1151. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/types.wit +0 -0
  1152. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/world.wit +0 -0
  1153. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/http/handler.wit +0 -0
  1154. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/error.wit +0 -0
  1155. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/poll.wit +0 -0
  1156. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/streams.wit +0 -0
  1157. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/world.wit +0 -0
  1158. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  1159. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure.wit +0 -0
  1160. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/random.wit +0 -0
  1161. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/world.wit +0 -0
  1162. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  1163. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1164. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/network.wit +0 -0
  1165. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1166. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp.wit +0 -0
  1167. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1168. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp.wit +0 -0
  1169. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/world.wit +0 -0
  1170. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/typenames.witx +0 -0
  1171. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/wasi_snapshot_preview1.witx +0 -0
  1172. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/LICENSE +0 -0
  1173. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/builder.rs +0 -0
  1174. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/lib.rs +0 -0
  1175. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/lib.rs +0 -0
  1176. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/rust.rs +0 -0
  1177. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/source.rs +0 -0
  1178. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/types.rs +0 -0
  1179. /data/ext/cargo-vendor/{wasmtime-wmemcheck-15.0.1 → wasmtime-wmemcheck-16.0.0}/src/lib.rs +0 -0
  1180. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wiggle-16.0.0}/LICENSE +0 -0
  1181. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/README.md +0 -0
  1182. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/borrow.rs +0 -0
  1183. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/error.rs +0 -0
  1184. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/guest_type.rs +0 -0
  1185. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/region.rs +0 -0
  1186. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/wasmtime.rs +0 -0
  1187. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wiggle-generate-16.0.0}/LICENSE +0 -0
  1188. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/README.md +0 -0
  1189. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/codegen_settings.rs +0 -0
  1190. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/config.rs +0 -0
  1191. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/funcs.rs +0 -0
  1192. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lib.rs +0 -0
  1193. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lifetimes.rs +0 -0
  1194. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/module_trait.rs +0 -0
  1195. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/names.rs +0 -0
  1196. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/error.rs +0 -0
  1197. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/flags.rs +0 -0
  1198. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/mod.rs +0 -0
  1199. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/wasmtime.rs +0 -0
  1200. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-macro-16.0.0}/LICENSE +0 -0
  1201. /data/ext/cargo-vendor/{wiggle-macro-15.0.1 → wiggle-macro-16.0.0}/src/lib.rs +0 -0
  1202. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/LICENSE +0 -0
  1203. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/build.rs +0 -0
  1204. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/codegen/builtin.rs +0 -0
  1205. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/address.rs +0 -0
  1206. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/asm.rs +0 -0
  1207. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/regs.rs +0 -0
  1208. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/reg.rs +0 -0
  1209. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/x64/address.rs +0 -0
  1210. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/lib.rs +0 -0
  1211. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regalloc.rs +0 -0
  1212. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regset.rs +0 -0
@@ -0,0 +1,2422 @@
1
+ use crate::memory::MemoryCreator;
2
+ use crate::trampoline::MemoryCreatorProxy;
3
+ use anyhow::{bail, ensure, Result};
4
+ use serde_derive::{Deserialize, Serialize};
5
+ use std::collections::{HashMap, HashSet};
6
+ use std::fmt;
7
+ #[cfg(any(feature = "cache", feature = "cranelift", feature = "winch"))]
8
+ use std::path::Path;
9
+ use std::str::FromStr;
10
+ use std::sync::Arc;
11
+ use target_lexicon::Architecture;
12
+ use wasmparser::WasmFeatures;
13
+ #[cfg(feature = "cache")]
14
+ use wasmtime_cache::CacheConfig;
15
+ use wasmtime_environ::Tunables;
16
+ use wasmtime_jit::profiling::{self, ProfilingAgent};
17
+ use wasmtime_runtime::{mpk, InstanceAllocator, OnDemandInstanceAllocator, RuntimeMemoryCreator};
18
+
19
+ #[cfg(feature = "async")]
20
+ use crate::stack::{StackCreator, StackCreatorProxy};
21
+ #[cfg(feature = "async")]
22
+ use wasmtime_fiber::RuntimeFiberStackCreator;
23
+
24
+ pub use wasmtime_environ::CacheStore;
25
+ pub use wasmtime_runtime::MpkEnabled;
26
+
27
+ /// Represents the module instance allocation strategy to use.
28
+ #[derive(Clone)]
29
+ pub enum InstanceAllocationStrategy {
30
+ /// The on-demand instance allocation strategy.
31
+ ///
32
+ /// Resources related to a module instance are allocated at instantiation time and
33
+ /// immediately deallocated when the `Store` referencing the instance is dropped.
34
+ ///
35
+ /// This is the default allocation strategy for Wasmtime.
36
+ OnDemand,
37
+ /// The pooling instance allocation strategy.
38
+ ///
39
+ /// A pool of resources is created in advance and module instantiation reuses resources
40
+ /// from the pool. Resources are returned to the pool when the `Store` referencing the instance
41
+ /// is dropped.
42
+ #[cfg(feature = "pooling-allocator")]
43
+ Pooling(PoolingAllocationConfig),
44
+ }
45
+
46
+ impl InstanceAllocationStrategy {
47
+ /// The default pooling instance allocation strategy.
48
+ #[cfg(feature = "pooling-allocator")]
49
+ pub fn pooling() -> Self {
50
+ Self::Pooling(Default::default())
51
+ }
52
+ }
53
+
54
+ impl Default for InstanceAllocationStrategy {
55
+ fn default() -> Self {
56
+ Self::OnDemand
57
+ }
58
+ }
59
+
60
+ #[derive(Clone)]
61
+ /// Configure the strategy used for versioning in serializing and deserializing [`crate::Module`].
62
+ pub enum ModuleVersionStrategy {
63
+ /// Use the wasmtime crate's Cargo package version.
64
+ WasmtimeVersion,
65
+ /// Use a custom version string. Must be at most 255 bytes.
66
+ Custom(String),
67
+ /// Emit no version string in serialization, and accept all version strings in deserialization.
68
+ None,
69
+ }
70
+
71
+ impl Default for ModuleVersionStrategy {
72
+ fn default() -> Self {
73
+ ModuleVersionStrategy::WasmtimeVersion
74
+ }
75
+ }
76
+
77
+ impl std::hash::Hash for ModuleVersionStrategy {
78
+ fn hash<H: std::hash::Hasher>(&self, hasher: &mut H) {
79
+ match self {
80
+ Self::WasmtimeVersion => env!("CARGO_PKG_VERSION").hash(hasher),
81
+ Self::Custom(s) => s.hash(hasher),
82
+ Self::None => {}
83
+ };
84
+ }
85
+ }
86
+
87
+ /// Global configuration options used to create an [`Engine`](crate::Engine)
88
+ /// and customize its behavior.
89
+ ///
90
+ /// This structure exposed a builder-like interface and is primarily consumed by
91
+ /// [`Engine::new()`](crate::Engine::new).
92
+ ///
93
+ /// The validation of `Config` is deferred until the engine is being built, thus
94
+ /// a problematic config may cause `Engine::new` to fail.
95
+ #[derive(Clone)]
96
+ pub struct Config {
97
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
98
+ compiler_config: CompilerConfig,
99
+ profiling_strategy: ProfilingStrategy,
100
+
101
+ pub(crate) tunables: Tunables,
102
+ #[cfg(feature = "cache")]
103
+ pub(crate) cache_config: CacheConfig,
104
+ pub(crate) mem_creator: Option<Arc<dyn RuntimeMemoryCreator>>,
105
+ pub(crate) allocation_strategy: InstanceAllocationStrategy,
106
+ pub(crate) max_wasm_stack: usize,
107
+ pub(crate) features: WasmFeatures,
108
+ pub(crate) wasm_backtrace: bool,
109
+ pub(crate) wasm_backtrace_details_env_used: bool,
110
+ pub(crate) native_unwind_info: Option<bool>,
111
+ #[cfg(feature = "async")]
112
+ pub(crate) async_stack_size: usize,
113
+ #[cfg(feature = "async")]
114
+ pub(crate) stack_creator: Option<Arc<dyn RuntimeFiberStackCreator>>,
115
+ pub(crate) async_support: bool,
116
+ pub(crate) module_version: ModuleVersionStrategy,
117
+ pub(crate) parallel_compilation: bool,
118
+ pub(crate) memory_init_cow: bool,
119
+ pub(crate) memory_guaranteed_dense_image_size: u64,
120
+ pub(crate) force_memory_init_memfd: bool,
121
+ pub(crate) wmemcheck: bool,
122
+ pub(crate) coredump_on_trap: bool,
123
+ pub(crate) macos_use_mach_ports: bool,
124
+ }
125
+
126
+ /// User-provided configuration for the compiler.
127
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
128
+ #[derive(Debug, Clone)]
129
+ struct CompilerConfig {
130
+ strategy: Strategy,
131
+ target: Option<target_lexicon::Triple>,
132
+ settings: HashMap<String, String>,
133
+ flags: HashSet<String>,
134
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
135
+ cache_store: Option<Arc<dyn CacheStore>>,
136
+ clif_dir: Option<std::path::PathBuf>,
137
+ wmemcheck: bool,
138
+ }
139
+
140
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
141
+ impl CompilerConfig {
142
+ fn new(strategy: Strategy) -> Self {
143
+ Self {
144
+ strategy,
145
+ target: None,
146
+ settings: HashMap::new(),
147
+ flags: HashSet::new(),
148
+ cache_store: None,
149
+ clif_dir: None,
150
+ wmemcheck: false,
151
+ }
152
+ }
153
+
154
+ /// Ensures that the key is not set or equals to the given value.
155
+ /// If the key is not set, it will be set to the given value.
156
+ ///
157
+ /// # Returns
158
+ ///
159
+ /// Returns true if successfully set or already had the given setting
160
+ /// value, or false if the setting was explicitly set to something
161
+ /// else previously.
162
+ fn ensure_setting_unset_or_given(&mut self, k: &str, v: &str) -> bool {
163
+ if let Some(value) = self.settings.get(k) {
164
+ if value != v {
165
+ return false;
166
+ }
167
+ } else {
168
+ self.settings.insert(k.to_string(), v.to_string());
169
+ }
170
+ true
171
+ }
172
+ }
173
+
174
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
175
+ impl Default for CompilerConfig {
176
+ fn default() -> Self {
177
+ Self::new(Strategy::Auto)
178
+ }
179
+ }
180
+
181
+ impl Config {
182
+ /// Creates a new configuration object with the default configuration
183
+ /// specified.
184
+ pub fn new() -> Self {
185
+ let mut ret = Self {
186
+ tunables: Tunables::default(),
187
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
188
+ compiler_config: CompilerConfig::default(),
189
+ #[cfg(feature = "cache")]
190
+ cache_config: CacheConfig::new_cache_disabled(),
191
+ profiling_strategy: ProfilingStrategy::None,
192
+ mem_creator: None,
193
+ allocation_strategy: InstanceAllocationStrategy::OnDemand,
194
+ // 512k of stack -- note that this is chosen currently to not be too
195
+ // big, not be too small, and be a good default for most platforms.
196
+ // One platform of particular note is Windows where the stack size
197
+ // of the main thread seems to, by default, be smaller than that of
198
+ // Linux and macOS. This 512k value at least lets our current test
199
+ // suite pass on the main thread of Windows (using `--test-threads
200
+ // 1` forces this), or at least it passed when this change was
201
+ // committed.
202
+ max_wasm_stack: 512 * 1024,
203
+ wasm_backtrace: true,
204
+ wasm_backtrace_details_env_used: false,
205
+ native_unwind_info: None,
206
+ features: WasmFeatures::default(),
207
+ #[cfg(feature = "async")]
208
+ async_stack_size: 2 << 20,
209
+ #[cfg(feature = "async")]
210
+ stack_creator: None,
211
+ async_support: false,
212
+ module_version: ModuleVersionStrategy::default(),
213
+ parallel_compilation: !cfg!(miri),
214
+ memory_init_cow: true,
215
+ memory_guaranteed_dense_image_size: 16 << 20,
216
+ force_memory_init_memfd: false,
217
+ wmemcheck: false,
218
+ coredump_on_trap: false,
219
+ macos_use_mach_ports: true,
220
+ };
221
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
222
+ {
223
+ ret.cranelift_debug_verifier(false);
224
+ ret.cranelift_opt_level(OptLevel::Speed);
225
+ }
226
+
227
+ ret.wasm_reference_types(true);
228
+ ret.wasm_multi_value(true);
229
+ ret.wasm_bulk_memory(true);
230
+ ret.wasm_simd(true);
231
+ ret.wasm_backtrace_details(WasmBacktraceDetails::Environment);
232
+
233
+ // This is on-by-default in `wasmparser` since it's a stage 4+ proposal
234
+ // but it's not implemented in Wasmtime yet so disable it.
235
+ ret.features.tail_call = false;
236
+
237
+ ret
238
+ }
239
+
240
+ /// Sets the target triple for the [`Config`].
241
+ ///
242
+ /// By default, the host target triple is used for the [`Config`].
243
+ ///
244
+ /// This method can be used to change the target triple.
245
+ ///
246
+ /// Cranelift flags will not be inferred for the given target and any
247
+ /// existing target-specific Cranelift flags will be cleared.
248
+ ///
249
+ /// # Errors
250
+ ///
251
+ /// This method will error if the given target triple is not supported.
252
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
253
+ #[cfg_attr(nightlydoc, doc(cfg(any(feature = "cranelift", feature = "winch"))))]
254
+ pub fn target(&mut self, target: &str) -> Result<&mut Self> {
255
+ self.compiler_config.target =
256
+ Some(target_lexicon::Triple::from_str(target).map_err(|e| anyhow::anyhow!(e))?);
257
+
258
+ Ok(self)
259
+ }
260
+
261
+ /// Enables the incremental compilation cache in Cranelift, using the provided `CacheStore`
262
+ /// backend for storage.
263
+ #[cfg(all(feature = "incremental-cache", feature = "cranelift"))]
264
+ pub fn enable_incremental_compilation(
265
+ &mut self,
266
+ cache_store: Arc<dyn CacheStore>,
267
+ ) -> Result<&mut Self> {
268
+ self.compiler_config.cache_store = Some(cache_store);
269
+ Ok(self)
270
+ }
271
+
272
+ /// Whether or not to enable support for asynchronous functions in Wasmtime.
273
+ ///
274
+ /// When enabled, the config can optionally define host functions with `async`.
275
+ /// Instances created and functions called with this `Config` *must* be called
276
+ /// through their asynchronous APIs, however. For example using
277
+ /// [`Func::call`](crate::Func::call) will panic when used with this config.
278
+ ///
279
+ /// # Asynchronous Wasm
280
+ ///
281
+ /// WebAssembly does not currently have a way to specify at the bytecode
282
+ /// level what is and isn't async. Host-defined functions, however, may be
283
+ /// defined as `async`. WebAssembly imports always appear synchronous, which
284
+ /// gives rise to a bit of an impedance mismatch here. To solve this
285
+ /// Wasmtime supports "asynchronous configs" which enables calling these
286
+ /// asynchronous functions in a way that looks synchronous to the executing
287
+ /// WebAssembly code.
288
+ ///
289
+ /// An asynchronous config must always invoke wasm code asynchronously,
290
+ /// meaning we'll always represent its computation as a
291
+ /// [`Future`](std::future::Future). The `poll` method of the futures
292
+ /// returned by Wasmtime will perform the actual work of calling the
293
+ /// WebAssembly. Wasmtime won't manage its own thread pools or similar,
294
+ /// that's left up to the embedder.
295
+ ///
296
+ /// To implement futures in a way that WebAssembly sees asynchronous host
297
+ /// functions as synchronous, all async Wasmtime futures will execute on a
298
+ /// separately allocated native stack from the thread otherwise executing
299
+ /// Wasmtime. This separate native stack can then be switched to and from.
300
+ /// Using this whenever an `async` host function returns a future that
301
+ /// resolves to `Pending` we switch away from the temporary stack back to
302
+ /// the main stack and propagate the `Pending` status.
303
+ ///
304
+ /// In general it's encouraged that the integration with `async` and
305
+ /// wasmtime is designed early on in your embedding of Wasmtime to ensure
306
+ /// that it's planned that WebAssembly executes in the right context of your
307
+ /// application.
308
+ ///
309
+ /// # Execution in `poll`
310
+ ///
311
+ /// The [`Future::poll`](std::future::Future::poll) method is the main
312
+ /// driving force behind Rust's futures. That method's own documentation
313
+ /// states "an implementation of `poll` should strive to return quickly, and
314
+ /// should not block". This, however, can be at odds with executing
315
+ /// WebAssembly code as part of the `poll` method itself. If your
316
+ /// WebAssembly is untrusted then this could allow the `poll` method to take
317
+ /// arbitrarily long in the worst case, likely blocking all other
318
+ /// asynchronous tasks.
319
+ ///
320
+ /// To remedy this situation you have a a few possible ways to solve this:
321
+ ///
322
+ /// * The most efficient solution is to enable
323
+ /// [`Config::epoch_interruption`] in conjunction with
324
+ /// [`crate::Store::epoch_deadline_async_yield_and_update`]. Coupled with
325
+ /// periodic calls to [`crate::Engine::increment_epoch`] this will cause
326
+ /// executing WebAssembly to periodically yield back according to the
327
+ /// epoch configuration settings. This enables `Future::poll` to take at
328
+ /// most a certain amount of time according to epoch configuration
329
+ /// settings and when increments happen. The benefit of this approach is
330
+ /// that the instrumentation in compiled code is quite lightweight, but a
331
+ /// downside can be that the scheduling is somewhat nondeterministic since
332
+ /// increments are usually timer-based which are not always deterministic.
333
+ ///
334
+ /// Note that to prevent infinite execution of wasm it's recommended to
335
+ /// place a timeout on the entire future representing executing wasm code
336
+ /// and the periodic yields with epochs should ensure that when the
337
+ /// timeout is reached it's appropriately recognized.
338
+ ///
339
+ /// * Alternatively you can enable the
340
+ /// [`Config::consume_fuel`](crate::Config::consume_fuel) method as well
341
+ /// as [`crate::Store::fuel_async_yield_interval`] When doing so this will
342
+ /// configure Wasmtime futures to yield periodically while they're
343
+ /// executing WebAssembly code. After consuming the specified amount of
344
+ /// fuel wasm futures will return `Poll::Pending` from their `poll`
345
+ /// method, and will get automatically re-polled later. This enables the
346
+ /// `Future::poll` method to take roughly a fixed amount of time since
347
+ /// fuel is guaranteed to get consumed while wasm is executing. Unlike
348
+ /// epoch-based preemption this is deterministic since wasm always
349
+ /// consumes a fixed amount of fuel per-operation. The downside of this
350
+ /// approach, however, is that the compiled code instrumentation is
351
+ /// significantly more expensive than epoch checks.
352
+ ///
353
+ /// Note that to prevent infinite execution of wasm it's recommended to
354
+ /// place a timeout on the entire future representing executing wasm code
355
+ /// and the periodic yields with epochs should ensure that when the
356
+ /// timeout is reached it's appropriately recognized.
357
+ ///
358
+ /// In all cases special care needs to be taken when integrating
359
+ /// asynchronous wasm into your application. You should carefully plan where
360
+ /// WebAssembly will execute and what compute resources will be allotted to
361
+ /// it. If Wasmtime doesn't support exactly what you'd like just yet, please
362
+ /// feel free to open an issue!
363
+ #[cfg(feature = "async")]
364
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "async")))]
365
+ pub fn async_support(&mut self, enable: bool) -> &mut Self {
366
+ self.async_support = enable;
367
+ self
368
+ }
369
+
370
+ /// Configures whether DWARF debug information will be emitted during
371
+ /// compilation.
372
+ ///
373
+ /// By default this option is `false`.
374
+ pub fn debug_info(&mut self, enable: bool) -> &mut Self {
375
+ self.tunables.generate_native_debuginfo = enable;
376
+ self
377
+ }
378
+
379
+ /// Configures whether [`WasmBacktrace`] will be present in the context of
380
+ /// errors returned from Wasmtime.
381
+ ///
382
+ /// A backtrace may be collected whenever an error is returned from a host
383
+ /// function call through to WebAssembly or when WebAssembly itself hits a
384
+ /// trap condition, such as an out-of-bounds memory access. This flag
385
+ /// indicates, in these conditions, whether the backtrace is collected or
386
+ /// not.
387
+ ///
388
+ /// Currently wasm backtraces are implemented through frame pointer walking.
389
+ /// This means that collecting a backtrace is expected to be a fast and
390
+ /// relatively cheap operation. Additionally backtrace collection is
391
+ /// suitable in concurrent environments since one thread capturing a
392
+ /// backtrace won't block other threads.
393
+ ///
394
+ /// Collected backtraces are attached via [`anyhow::Error::context`] to
395
+ /// errors returned from host functions. The [`WasmBacktrace`] type can be
396
+ /// acquired via [`anyhow::Error::downcast_ref`] to inspect the backtrace.
397
+ /// When this option is disabled then this context is never applied to
398
+ /// errors coming out of wasm.
399
+ ///
400
+ /// This option is `true` by default.
401
+ ///
402
+ /// [`WasmBacktrace`]: crate::WasmBacktrace
403
+ pub fn wasm_backtrace(&mut self, enable: bool) -> &mut Self {
404
+ self.wasm_backtrace = enable;
405
+ self
406
+ }
407
+
408
+ /// Configures whether backtraces in `Trap` will parse debug info in the wasm file to
409
+ /// have filename/line number information.
410
+ ///
411
+ /// When enabled this will causes modules to retain debugging information
412
+ /// found in wasm binaries. This debug information will be used when a trap
413
+ /// happens to symbolicate each stack frame and attempt to print a
414
+ /// filename/line number for each wasm frame in the stack trace.
415
+ ///
416
+ /// By default this option is `WasmBacktraceDetails::Environment`, meaning
417
+ /// that wasm will read `WASMTIME_BACKTRACE_DETAILS` to indicate whether details
418
+ /// should be parsed.
419
+ pub fn wasm_backtrace_details(&mut self, enable: WasmBacktraceDetails) -> &mut Self {
420
+ self.wasm_backtrace_details_env_used = false;
421
+ self.tunables.parse_wasm_debuginfo = match enable {
422
+ WasmBacktraceDetails::Enable => true,
423
+ WasmBacktraceDetails::Disable => false,
424
+ WasmBacktraceDetails::Environment => {
425
+ self.wasm_backtrace_details_env_used = true;
426
+ std::env::var("WASMTIME_BACKTRACE_DETAILS")
427
+ .map(|s| s == "1")
428
+ .unwrap_or(false)
429
+ }
430
+ };
431
+ self
432
+ }
433
+
434
+ /// Configures whether to generate native unwind information
435
+ /// (e.g. `.eh_frame` on Linux).
436
+ ///
437
+ /// This configuration option only exists to help third-party stack
438
+ /// capturing mechanisms, such as the system's unwinder or the `backtrace`
439
+ /// crate, determine how to unwind through Wasm frames. It does not affect
440
+ /// whether Wasmtime can capture Wasm backtraces or not. The presence of
441
+ /// [`WasmBacktrace`] is controlled by the [`Config::wasm_backtrace`]
442
+ /// option.
443
+ ///
444
+ /// Native unwind information is included:
445
+ /// - When targeting Windows, since the Windows ABI requires it.
446
+ /// - By default.
447
+ ///
448
+ /// [`WasmBacktrace`]: crate::WasmBacktrace
449
+ pub fn native_unwind_info(&mut self, enable: bool) -> &mut Self {
450
+ self.native_unwind_info = Some(enable);
451
+ self
452
+ }
453
+
454
+ /// Configures whether execution of WebAssembly will "consume fuel" to
455
+ /// either halt or yield execution as desired.
456
+ ///
457
+ /// This can be used to deterministically prevent infinitely-executing
458
+ /// WebAssembly code by instrumenting generated code to consume fuel as it
459
+ /// executes. When fuel runs out a trap is raised, however [`Store`] can be
460
+ /// configured to yield execution periodically via
461
+ /// [`crate::Store::fuel_async_yield_interval`].
462
+ ///
463
+ /// Note that a [`Store`] starts with no fuel, so if you enable this option
464
+ /// you'll have to be sure to pour some fuel into [`Store`] before
465
+ /// executing some code.
466
+ ///
467
+ /// By default this option is `false`.
468
+ ///
469
+ /// [`Store`]: crate::Store
470
+ pub fn consume_fuel(&mut self, enable: bool) -> &mut Self {
471
+ self.tunables.consume_fuel = enable;
472
+ self
473
+ }
474
+
475
+ /// Enables epoch-based interruption.
476
+ ///
477
+ /// When executing code in async mode, we sometimes want to
478
+ /// implement a form of cooperative timeslicing: long-running Wasm
479
+ /// guest code should periodically yield to the executor
480
+ /// loop. This yielding could be implemented by using "fuel" (see
481
+ /// [`consume_fuel`](Config::consume_fuel)). However, fuel
482
+ /// instrumentation is somewhat expensive: it modifies the
483
+ /// compiled form of the Wasm code so that it maintains a precise
484
+ /// instruction count, frequently checking this count against the
485
+ /// remaining fuel. If one does not need this precise count or
486
+ /// deterministic interruptions, and only needs a periodic
487
+ /// interrupt of some form, then It would be better to have a more
488
+ /// lightweight mechanism.
489
+ ///
490
+ /// Epoch-based interruption is that mechanism. There is a global
491
+ /// "epoch", which is a counter that divides time into arbitrary
492
+ /// periods (or epochs). This counter lives on the
493
+ /// [`Engine`](crate::Engine) and can be incremented by calling
494
+ /// [`Engine::increment_epoch`](crate::Engine::increment_epoch).
495
+ /// Epoch-based instrumentation works by setting a "deadline
496
+ /// epoch". The compiled code knows the deadline, and at certain
497
+ /// points, checks the current epoch against that deadline. It
498
+ /// will yield if the deadline has been reached.
499
+ ///
500
+ /// The idea is that checking an infrequently-changing counter is
501
+ /// cheaper than counting and frequently storing a precise metric
502
+ /// (instructions executed) locally. The interruptions are not
503
+ /// deterministic, but if the embedder increments the epoch in a
504
+ /// periodic way (say, every regular timer tick by a thread or
505
+ /// signal handler), then we can ensure that all async code will
506
+ /// yield to the executor within a bounded time.
507
+ ///
508
+ /// The deadline check cannot be avoided by malicious wasm code. It is safe
509
+ /// to use epoch deadlines to limit the execution time of untrusted
510
+ /// code.
511
+ ///
512
+ /// The [`Store`](crate::Store) tracks the deadline, and controls
513
+ /// what happens when the deadline is reached during
514
+ /// execution. Several behaviors are possible:
515
+ ///
516
+ /// - Trap if code is executing when the epoch deadline is
517
+ /// met. See
518
+ /// [`Store::epoch_deadline_trap`](crate::Store::epoch_deadline_trap).
519
+ ///
520
+ /// - Call an arbitrary function. This function may chose to trap or
521
+ /// increment the epoch. See
522
+ /// [`Store::epoch_deadline_callback`](crate::Store::epoch_deadline_callback).
523
+ ///
524
+ /// - Yield to the executor loop, then resume when the future is
525
+ /// next polled. See
526
+ /// [`Store::epoch_deadline_async_yield_and_update`](crate::Store::epoch_deadline_async_yield_and_update).
527
+ ///
528
+ /// Trapping is the default. The yielding behaviour may be used for
529
+ /// the timeslicing behavior described above.
530
+ ///
531
+ /// This feature is available with or without async support.
532
+ /// However, without async support, the timeslicing behaviour is
533
+ /// not available. This means epoch-based interruption can only
534
+ /// serve as a simple external-interruption mechanism.
535
+ ///
536
+ /// An initial deadline must be set before executing code by calling
537
+ /// [`Store::set_epoch_deadline`](crate::Store::set_epoch_deadline). If this
538
+ /// deadline is not configured then wasm will immediately trap.
539
+ ///
540
+ /// ## When to use fuel vs. epochs
541
+ ///
542
+ /// In general, epoch-based interruption results in faster
543
+ /// execution. This difference is sometimes significant: in some
544
+ /// measurements, up to 2-3x. This is because epoch-based
545
+ /// interruption does less work: it only watches for a global
546
+ /// rarely-changing counter to increment, rather than keeping a
547
+ /// local frequently-changing counter and comparing it to a
548
+ /// deadline.
549
+ ///
550
+ /// Fuel, in contrast, should be used when *deterministic*
551
+ /// yielding or trapping is needed. For example, if it is required
552
+ /// that the same function call with the same starting state will
553
+ /// always either complete or trap with an out-of-fuel error,
554
+ /// deterministically, then fuel with a fixed bound should be
555
+ /// used.
556
+ ///
557
+ /// # See Also
558
+ ///
559
+ /// - [`Engine::increment_epoch`](crate::Engine::increment_epoch)
560
+ /// - [`Store::set_epoch_deadline`](crate::Store::set_epoch_deadline)
561
+ /// - [`Store::epoch_deadline_trap`](crate::Store::epoch_deadline_trap)
562
+ /// - [`Store::epoch_deadline_callback`](crate::Store::epoch_deadline_callback)
563
+ /// - [`Store::epoch_deadline_async_yield_and_update`](crate::Store::epoch_deadline_async_yield_and_update)
564
+ pub fn epoch_interruption(&mut self, enable: bool) -> &mut Self {
565
+ self.tunables.epoch_interruption = enable;
566
+ self
567
+ }
568
+
569
+ /// Configures the maximum amount of stack space available for
570
+ /// executing WebAssembly code.
571
+ ///
572
+ /// WebAssembly has well-defined semantics on stack overflow. This is
573
+ /// intended to be a knob which can help configure how much stack space
574
+ /// wasm execution is allowed to consume. Note that the number here is not
575
+ /// super-precise, but rather wasm will take at most "pretty close to this
576
+ /// much" stack space.
577
+ ///
578
+ /// If a wasm call (or series of nested wasm calls) take more stack space
579
+ /// than the `size` specified then a stack overflow trap will be raised.
580
+ ///
581
+ /// Caveat: this knob only limits the stack space consumed by wasm code.
582
+ /// More importantly, it does not ensure that this much stack space is
583
+ /// available on the calling thread stack. Exhausting the thread stack
584
+ /// typically leads to an **abort** of the process.
585
+ ///
586
+ /// Here are some examples of how that could happen:
587
+ ///
588
+ /// - Let's assume this option is set to 2 MiB and then a thread that has
589
+ /// a stack with 512 KiB left.
590
+ ///
591
+ /// If wasm code consumes more than 512 KiB then the process will be aborted.
592
+ ///
593
+ /// - Assuming the same conditions, but this time wasm code does not consume
594
+ /// any stack but calls into a host function. The host function consumes
595
+ /// more than 512 KiB of stack space. The process will be aborted.
596
+ ///
597
+ /// There's another gotcha related to recursive calling into wasm: the stack
598
+ /// space consumed by a host function is counted towards this limit. The
599
+ /// host functions are not prevented from consuming more than this limit.
600
+ /// However, if the host function that used more than this limit and called
601
+ /// back into wasm, then the execution will trap immediatelly because of
602
+ /// stack overflow.
603
+ ///
604
+ /// When the `async` feature is enabled, this value cannot exceed the
605
+ /// `async_stack_size` option. Be careful not to set this value too close
606
+ /// to `async_stack_size` as doing so may limit how much stack space
607
+ /// is available for host functions.
608
+ ///
609
+ /// By default this option is 512 KiB.
610
+ ///
611
+ /// # Errors
612
+ ///
613
+ /// The `Engine::new` method will fail if the `size` specified here is
614
+ /// either 0 or larger than the [`Config::async_stack_size`] configuration.
615
+ pub fn max_wasm_stack(&mut self, size: usize) -> &mut Self {
616
+ self.max_wasm_stack = size;
617
+ self
618
+ }
619
+
620
+ /// Configures the size of the stacks used for asynchronous execution.
621
+ ///
622
+ /// This setting configures the size of the stacks that are allocated for
623
+ /// asynchronous execution. The value cannot be less than `max_wasm_stack`.
624
+ ///
625
+ /// The amount of stack space guaranteed for host functions is
626
+ /// `async_stack_size - max_wasm_stack`, so take care not to set these two values
627
+ /// close to one another; doing so may cause host functions to overflow the
628
+ /// stack and abort the process.
629
+ ///
630
+ /// By default this option is 2 MiB.
631
+ ///
632
+ /// # Errors
633
+ ///
634
+ /// The `Engine::new` method will fail if the value for this option is
635
+ /// smaller than the [`Config::max_wasm_stack`] option.
636
+ #[cfg(feature = "async")]
637
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "async")))]
638
+ pub fn async_stack_size(&mut self, size: usize) -> &mut Self {
639
+ self.async_stack_size = size;
640
+ self
641
+ }
642
+
643
+ /// Configures whether the WebAssembly tail calls proposal will be enabled
644
+ /// for compilation or not.
645
+ ///
646
+ /// The [WebAssembly tail calls proposal] introduces the `return_call` and
647
+ /// `return_call_indirect` instructions. These instructions allow for Wasm
648
+ /// programs to implement some recursive algorithms with *O(1)* stack space
649
+ /// usage.
650
+ ///
651
+ /// This feature is disabled by default.
652
+ ///
653
+ /// [WebAssembly tail calls proposal]: https://github.com/WebAssembly/tail-call
654
+ pub fn wasm_tail_call(&mut self, enable: bool) -> &mut Self {
655
+ self.features.tail_call = enable;
656
+ self.tunables.tail_callable = enable;
657
+ self
658
+ }
659
+
660
+ /// Configures whether the WebAssembly [threads] proposal will be enabled
661
+ /// for compilation.
662
+ ///
663
+ /// This feature gates items such as shared memories and atomic
664
+ /// instructions. Note that the threads feature depends on the bulk memory
665
+ /// feature, which is enabled by default. Additionally note that while the
666
+ /// wasm feature is called "threads" it does not actually include the
667
+ /// ability to spawn threads. Spawning threads is part of the [wasi-threads]
668
+ /// proposal which is a separately gated feature in Wasmtime.
669
+ ///
670
+ /// Embeddings of Wasmtime are able to build their own custom threading
671
+ /// scheme on top of the core wasm threads proposal, however.
672
+ ///
673
+ /// This is `true` by default.
674
+ ///
675
+ /// [threads]: https://github.com/webassembly/threads
676
+ /// [wasi-threads]: https://github.com/webassembly/wasi-threads
677
+ pub fn wasm_threads(&mut self, enable: bool) -> &mut Self {
678
+ self.features.threads = enable;
679
+ self
680
+ }
681
+
682
+ /// Configures whether the [WebAssembly reference types proposal][proposal]
683
+ /// will be enabled for compilation.
684
+ ///
685
+ /// This feature gates items such as the `externref` and `funcref` types as
686
+ /// well as allowing a module to define multiple tables.
687
+ ///
688
+ /// Note that the reference types proposal depends on the bulk memory proposal.
689
+ ///
690
+ /// This feature is `true` by default.
691
+ ///
692
+ /// # Errors
693
+ ///
694
+ /// The validation of this feature are deferred until the engine is being built,
695
+ /// and thus may cause `Engine::new` fail if the `bulk_memory` feature is disabled.
696
+ ///
697
+ /// [proposal]: https://github.com/webassembly/reference-types
698
+ pub fn wasm_reference_types(&mut self, enable: bool) -> &mut Self {
699
+ self.features.reference_types = enable;
700
+ self
701
+ }
702
+
703
+ /// Configures whether the [WebAssembly function references proposal][proposal]
704
+ /// will be enabled for compilation.
705
+ ///
706
+ /// This feature gates non-nullable reference types, function reference
707
+ /// types, call_ref, ref.func, and non-nullable reference related instructions.
708
+ ///
709
+ /// Note that the function references proposal depends on the reference types proposal.
710
+ ///
711
+ /// This feature is `false` by default.
712
+ ///
713
+ /// [proposal]: https://github.com/WebAssembly/function-references
714
+ pub fn wasm_function_references(&mut self, enable: bool) -> &mut Self {
715
+ self.features.function_references = enable;
716
+ self
717
+ }
718
+
719
+ /// Configures whether the WebAssembly SIMD proposal will be
720
+ /// enabled for compilation.
721
+ ///
722
+ /// The [WebAssembly SIMD proposal][proposal]. This feature gates items such
723
+ /// as the `v128` type and all of its operators being in a module. Note that
724
+ /// this does not enable the [relaxed simd proposal].
725
+ ///
726
+ /// On x86_64 platforms note that enabling this feature requires SSE 4.2 and
727
+ /// below to be available on the target platform. Compilation will fail if
728
+ /// the compile target does not include SSE 4.2.
729
+ ///
730
+ /// This is `true` by default.
731
+ ///
732
+ /// [proposal]: https://github.com/webassembly/simd
733
+ /// [relaxed simd proposal]: https://github.com/WebAssembly/relaxed-simd
734
+ pub fn wasm_simd(&mut self, enable: bool) -> &mut Self {
735
+ self.features.simd = enable;
736
+ self
737
+ }
738
+
739
+ /// Configures whether the WebAssembly Relaxed SIMD proposal will be
740
+ /// enabled for compilation.
741
+ ///
742
+ /// The relaxed SIMD proposal adds new instructions to WebAssembly which,
743
+ /// for some specific inputs, are allowed to produce different results on
744
+ /// different hosts. More-or-less this proposal enables exposing
745
+ /// platform-specific semantics of SIMD instructions in a controlled
746
+ /// fashion to a WebAssembly program. From an embedder's perspective this
747
+ /// means that WebAssembly programs may execute differently depending on
748
+ /// whether the host is x86_64 or AArch64, for example.
749
+ ///
750
+ /// By default Wasmtime lowers relaxed SIMD instructions to the fastest
751
+ /// lowering for the platform it's running on. This means that, by default,
752
+ /// some relaxed SIMD instructions may have different results for the same
753
+ /// inputs across x86_64 and AArch64. This behavior can be disabled through
754
+ /// the [`Config::relaxed_simd_deterministic`] option which will force
755
+ /// deterministic behavior across all platforms, as classified by the
756
+ /// specification, at the cost of performance.
757
+ ///
758
+ /// This is `true` by default.
759
+ ///
760
+ /// [proposal]: https://github.com/webassembly/relaxed-simd
761
+ pub fn wasm_relaxed_simd(&mut self, enable: bool) -> &mut Self {
762
+ self.features.relaxed_simd = enable;
763
+ self
764
+ }
765
+
766
+ /// This option can be used to control the behavior of the [relaxed SIMD
767
+ /// proposal's][proposal] instructions.
768
+ ///
769
+ /// The relaxed SIMD proposal introduces instructions that are allowed to
770
+ /// have different behavior on different architectures, primarily to afford
771
+ /// an efficient implementation on all architectures. This means, however,
772
+ /// that the same module may execute differently on one host than another,
773
+ /// which typically is not otherwise the case. This option is provided to
774
+ /// force Wasmtime to generate deterministic code for all relaxed simd
775
+ /// instructions, at the cost of performance, for all architectures. When
776
+ /// this option is enabled then the deterministic behavior of all
777
+ /// instructions in the relaxed SIMD proposal is selected.
778
+ ///
779
+ /// This is `false` by default.
780
+ ///
781
+ /// [proposal]: https://github.com/webassembly/relaxed-simd
782
+ pub fn relaxed_simd_deterministic(&mut self, enable: bool) -> &mut Self {
783
+ self.tunables.relaxed_simd_deterministic = enable;
784
+ self
785
+ }
786
+
787
+ /// Configures whether the [WebAssembly bulk memory operations
788
+ /// proposal][proposal] will be enabled for compilation.
789
+ ///
790
+ /// This feature gates items such as the `memory.copy` instruction, passive
791
+ /// data/table segments, etc, being in a module.
792
+ ///
793
+ /// This is `true` by default.
794
+ ///
795
+ /// Feature `reference_types`, which is also `true` by default, requires
796
+ /// this feature to be enabled. Thus disabling this feature must also disable
797
+ /// `reference_types` as well using [`wasm_reference_types`](crate::Config::wasm_reference_types).
798
+ ///
799
+ /// # Errors
800
+ ///
801
+ /// Disabling this feature without disabling `reference_types` will cause
802
+ /// `Engine::new` to fail.
803
+ ///
804
+ /// [proposal]: https://github.com/webassembly/bulk-memory-operations
805
+ pub fn wasm_bulk_memory(&mut self, enable: bool) -> &mut Self {
806
+ self.features.bulk_memory = enable;
807
+ self
808
+ }
809
+
810
+ /// Configures whether the WebAssembly multi-value [proposal] will
811
+ /// be enabled for compilation.
812
+ ///
813
+ /// This feature gates functions and blocks returning multiple values in a
814
+ /// module, for example.
815
+ ///
816
+ /// This is `true` by default.
817
+ ///
818
+ /// [proposal]: https://github.com/webassembly/multi-value
819
+ pub fn wasm_multi_value(&mut self, enable: bool) -> &mut Self {
820
+ self.features.multi_value = enable;
821
+ self
822
+ }
823
+
824
+ /// Configures whether the WebAssembly multi-memory [proposal] will
825
+ /// be enabled for compilation.
826
+ ///
827
+ /// This feature gates modules having more than one linear memory
828
+ /// declaration or import.
829
+ ///
830
+ /// This is `true` by default.
831
+ ///
832
+ /// [proposal]: https://github.com/webassembly/multi-memory
833
+ pub fn wasm_multi_memory(&mut self, enable: bool) -> &mut Self {
834
+ self.features.multi_memory = enable;
835
+ self
836
+ }
837
+
838
+ /// Configures whether the WebAssembly memory64 [proposal] will
839
+ /// be enabled for compilation.
840
+ ///
841
+ /// Note that this the upstream specification is not finalized and Wasmtime
842
+ /// may also have bugs for this feature since it hasn't been exercised
843
+ /// much.
844
+ ///
845
+ /// This is `false` by default.
846
+ ///
847
+ /// [proposal]: https://github.com/webassembly/memory64
848
+ pub fn wasm_memory64(&mut self, enable: bool) -> &mut Self {
849
+ self.features.memory64 = enable;
850
+ self
851
+ }
852
+
853
+ /// Configures whether the WebAssembly component-model [proposal] will
854
+ /// be enabled for compilation.
855
+ ///
856
+ /// Note that this feature is a work-in-progress and is incomplete.
857
+ ///
858
+ /// This is `false` by default.
859
+ ///
860
+ /// [proposal]: https://github.com/webassembly/component-model
861
+ #[cfg(feature = "component-model")]
862
+ pub fn wasm_component_model(&mut self, enable: bool) -> &mut Self {
863
+ self.features.component_model = enable;
864
+ self
865
+ }
866
+
867
+ /// Configures which compilation strategy will be used for wasm modules.
868
+ ///
869
+ /// This method can be used to configure which compiler is used for wasm
870
+ /// modules, and for more documentation consult the [`Strategy`] enumeration
871
+ /// and its documentation.
872
+ ///
873
+ /// The default value for this is `Strategy::Auto`.
874
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
875
+ #[cfg_attr(nightlydoc, doc(cfg(any(feature = "cranelift", feature = "winch"))))]
876
+ pub fn strategy(&mut self, strategy: Strategy) -> &mut Self {
877
+ self.compiler_config.strategy = strategy;
878
+ self
879
+ }
880
+
881
+ /// Creates a default profiler based on the profiling strategy chosen.
882
+ ///
883
+ /// Profiler creation calls the type's default initializer where the purpose is
884
+ /// really just to put in place the type used for profiling.
885
+ ///
886
+ /// Some [`ProfilingStrategy`] require specific platforms or particular feature
887
+ /// to be enabled, such as `ProfilingStrategy::JitDump` requires the `jitdump`
888
+ /// feature.
889
+ ///
890
+ /// # Errors
891
+ ///
892
+ /// The validation of this field is deferred until the engine is being built, and thus may
893
+ /// cause `Engine::new` fail if the required feature is disabled, or the platform is not
894
+ /// supported.
895
+ pub fn profiler(&mut self, profile: ProfilingStrategy) -> &mut Self {
896
+ self.profiling_strategy = profile;
897
+ self
898
+ }
899
+
900
+ /// Configures whether the debug verifier of Cranelift is enabled or not.
901
+ ///
902
+ /// When Cranelift is used as a code generation backend this will configure
903
+ /// it to have the `enable_verifier` flag which will enable a number of debug
904
+ /// checks inside of Cranelift. This is largely only useful for the
905
+ /// developers of wasmtime itself.
906
+ ///
907
+ /// The default value for this is `false`
908
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
909
+ #[cfg_attr(nightlydoc, doc(cfg(any(feature = "cranelift", feature = "winch"))))]
910
+ pub fn cranelift_debug_verifier(&mut self, enable: bool) -> &mut Self {
911
+ let val = if enable { "true" } else { "false" };
912
+ self.compiler_config
913
+ .settings
914
+ .insert("enable_verifier".to_string(), val.to_string());
915
+ self
916
+ }
917
+
918
+ /// Configures the Cranelift code generator optimization level.
919
+ ///
920
+ /// When the Cranelift code generator is used you can configure the
921
+ /// optimization level used for generated code in a few various ways. For
922
+ /// more information see the documentation of [`OptLevel`].
923
+ ///
924
+ /// The default value for this is `OptLevel::None`.
925
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
926
+ #[cfg_attr(nightlydoc, doc(cfg(any(feature = "cranelift", feature = "winch"))))]
927
+ pub fn cranelift_opt_level(&mut self, level: OptLevel) -> &mut Self {
928
+ let val = match level {
929
+ OptLevel::None => "none",
930
+ OptLevel::Speed => "speed",
931
+ OptLevel::SpeedAndSize => "speed_and_size",
932
+ };
933
+ self.compiler_config
934
+ .settings
935
+ .insert("opt_level".to_string(), val.to_string());
936
+ self
937
+ }
938
+
939
+ /// Configures whether Cranelift should perform a NaN-canonicalization pass.
940
+ ///
941
+ /// When Cranelift is used as a code generation backend this will configure
942
+ /// it to replace NaNs with a single canonical value. This is useful for users
943
+ /// requiring entirely deterministic WebAssembly computation.
944
+ /// This is not required by the WebAssembly spec, so it is not enabled by default.
945
+ ///
946
+ /// The default value for this is `false`
947
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
948
+ #[cfg_attr(nightlydoc, doc(cfg(any(feature = "cranelift", feature = "winch"))))]
949
+ pub fn cranelift_nan_canonicalization(&mut self, enable: bool) -> &mut Self {
950
+ let val = if enable { "true" } else { "false" };
951
+ self.compiler_config
952
+ .settings
953
+ .insert("enable_nan_canonicalization".to_string(), val.to_string());
954
+ self
955
+ }
956
+
957
+ /// Controls whether proof-carrying code (PCC) is used to validate
958
+ /// lowering of Wasm sandbox checks.
959
+ ///
960
+ /// Proof-carrying code carries "facts" about program values from
961
+ /// the IR all the way to machine code, and checks those facts
962
+ /// against known machine-instruction semantics. This guards
963
+ /// against bugs in instruction lowering that might create holes
964
+ /// in the Wasm sandbox.
965
+ ///
966
+ /// PCC is designed to be fast: it does not require complex
967
+ /// solvers or logic engines to verify, but only a linear pass
968
+ /// over a trail of "breadcrumbs" or facts at each intermediate
969
+ /// value. Thus, it is appropriate to enable in production.
970
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
971
+ #[cfg_attr(nightlydoc, doc(cfg(any(feature = "cranelift", feature = "winch"))))]
972
+ pub fn cranelift_pcc(&mut self, enable: bool) -> &mut Self {
973
+ let val = if enable { "true" } else { "false" };
974
+ self.compiler_config
975
+ .settings
976
+ .insert("enable_pcc".to_string(), val.to_string());
977
+ self
978
+ }
979
+
980
+ /// Allows setting a Cranelift boolean flag or preset. This allows
981
+ /// fine-tuning of Cranelift settings.
982
+ ///
983
+ /// Since Cranelift flags may be unstable, this method should not be considered to be stable
984
+ /// either; other `Config` functions should be preferred for stability.
985
+ ///
986
+ /// # Safety
987
+ ///
988
+ /// This is marked as unsafe, because setting the wrong flag might break invariants,
989
+ /// resulting in execution hazards.
990
+ ///
991
+ /// # Errors
992
+ ///
993
+ /// The validation of the flags are deferred until the engine is being built, and thus may
994
+ /// cause `Engine::new` fail if the flag's name does not exist, or the value is not appropriate
995
+ /// for the flag type.
996
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
997
+ #[cfg_attr(nightlydoc, doc(cfg(any(feature = "cranelift", feature = "winch"))))]
998
+ pub unsafe fn cranelift_flag_enable(&mut self, flag: &str) -> &mut Self {
999
+ self.compiler_config.flags.insert(flag.to_string());
1000
+ self
1001
+ }
1002
+
1003
+ /// Allows settings another Cranelift flag defined by a flag name and value. This allows
1004
+ /// fine-tuning of Cranelift settings.
1005
+ ///
1006
+ /// Since Cranelift flags may be unstable, this method should not be considered to be stable
1007
+ /// either; other `Config` functions should be preferred for stability.
1008
+ ///
1009
+ /// # Safety
1010
+ ///
1011
+ /// This is marked as unsafe, because setting the wrong flag might break invariants,
1012
+ /// resulting in execution hazards.
1013
+ ///
1014
+ /// # Errors
1015
+ ///
1016
+ /// The validation of the flags are deferred until the engine is being built, and thus may
1017
+ /// cause `Engine::new` fail if the flag's name does not exist, or incompatible with other
1018
+ /// settings.
1019
+ ///
1020
+ /// For example, feature `wasm_backtrace` will set `unwind_info` to `true`, but if it's
1021
+ /// manually set to false then it will fail.
1022
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1023
+ #[cfg_attr(nightlydoc, doc(cfg(any(feature = "cranelift", feature = "winch"))))]
1024
+ pub unsafe fn cranelift_flag_set(&mut self, name: &str, value: &str) -> &mut Self {
1025
+ self.compiler_config
1026
+ .settings
1027
+ .insert(name.to_string(), value.to_string());
1028
+ self
1029
+ }
1030
+
1031
+ /// Loads cache configuration specified at `path`.
1032
+ ///
1033
+ /// This method will read the file specified by `path` on the filesystem and
1034
+ /// attempt to load cache configuration from it. This method can also fail
1035
+ /// due to I/O errors, misconfiguration, syntax errors, etc. For expected
1036
+ /// syntax in the configuration file see the [documentation online][docs].
1037
+ ///
1038
+ /// By default cache configuration is not enabled or loaded.
1039
+ ///
1040
+ /// This method is only available when the `cache` feature of this crate is
1041
+ /// enabled.
1042
+ ///
1043
+ /// # Errors
1044
+ ///
1045
+ /// This method can fail due to any error that happens when loading the file
1046
+ /// pointed to by `path` and attempting to load the cache configuration.
1047
+ ///
1048
+ /// [docs]: https://bytecodealliance.github.io/wasmtime/cli-cache.html
1049
+ #[cfg(feature = "cache")]
1050
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "cache")))]
1051
+ pub fn cache_config_load(&mut self, path: impl AsRef<Path>) -> Result<&mut Self> {
1052
+ self.cache_config = CacheConfig::from_file(Some(path.as_ref()))?;
1053
+ Ok(self)
1054
+ }
1055
+
1056
+ /// Disable caching.
1057
+ ///
1058
+ /// Every call to [`Module::new(my_wasm)`][crate::Module::new] will
1059
+ /// recompile `my_wasm`, even when it is unchanged.
1060
+ ///
1061
+ /// By default, new configs do not have caching enabled. This method is only
1062
+ /// useful for disabling a previous cache configuration.
1063
+ ///
1064
+ /// This method is only available when the `cache` feature of this crate is
1065
+ /// enabled.
1066
+ #[cfg(feature = "cache")]
1067
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "cache")))]
1068
+ pub fn disable_cache(&mut self) -> &mut Self {
1069
+ self.cache_config = CacheConfig::new_cache_disabled();
1070
+ self
1071
+ }
1072
+
1073
+ /// Loads cache configuration from the system default path.
1074
+ ///
1075
+ /// This commit is the same as [`Config::cache_config_load`] except that it
1076
+ /// does not take a path argument and instead loads the default
1077
+ /// configuration present on the system. This is located, for example, on
1078
+ /// Unix at `$HOME/.config/wasmtime/config.toml` and is typically created
1079
+ /// with the `wasmtime config new` command.
1080
+ ///
1081
+ /// By default cache configuration is not enabled or loaded.
1082
+ ///
1083
+ /// This method is only available when the `cache` feature of this crate is
1084
+ /// enabled.
1085
+ ///
1086
+ /// # Errors
1087
+ ///
1088
+ /// This method can fail due to any error that happens when loading the
1089
+ /// default system configuration. Note that it is not an error if the
1090
+ /// default config file does not exist, in which case the default settings
1091
+ /// for an enabled cache are applied.
1092
+ ///
1093
+ /// [docs]: https://bytecodealliance.github.io/wasmtime/cli-cache.html
1094
+ #[cfg(feature = "cache")]
1095
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "cache")))]
1096
+ pub fn cache_config_load_default(&mut self) -> Result<&mut Self> {
1097
+ self.cache_config = CacheConfig::from_file(None)?;
1098
+ Ok(self)
1099
+ }
1100
+
1101
+ /// Sets a custom memory creator.
1102
+ ///
1103
+ /// Custom memory creators are used when creating host `Memory` objects or when
1104
+ /// creating instance linear memories for the on-demand instance allocation strategy.
1105
+ pub fn with_host_memory(&mut self, mem_creator: Arc<dyn MemoryCreator>) -> &mut Self {
1106
+ self.mem_creator = Some(Arc::new(MemoryCreatorProxy(mem_creator)));
1107
+ self
1108
+ }
1109
+
1110
+ /// Sets a custom stack creator.
1111
+ ///
1112
+ /// Custom memory creators are used when creating creating async instance stacks for
1113
+ /// the on-demand instance allocation strategy.
1114
+ #[cfg(feature = "async")]
1115
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "async")))]
1116
+ pub fn with_host_stack(&mut self, stack_creator: Arc<dyn StackCreator>) -> &mut Self {
1117
+ self.stack_creator = Some(Arc::new(StackCreatorProxy(stack_creator)));
1118
+ self
1119
+ }
1120
+
1121
+ /// Sets the instance allocation strategy to use.
1122
+ ///
1123
+ /// When using the pooling instance allocation strategy, all linear memories
1124
+ /// will be created as "static" and the
1125
+ /// [`Config::static_memory_maximum_size`] and
1126
+ /// [`Config::static_memory_guard_size`] options will be used to configure
1127
+ /// the virtual memory allocations of linear memories.
1128
+ pub fn allocation_strategy(&mut self, strategy: InstanceAllocationStrategy) -> &mut Self {
1129
+ self.allocation_strategy = strategy;
1130
+ self
1131
+ }
1132
+
1133
+ /// Configures the maximum size, in bytes, where a linear memory is
1134
+ /// considered static, above which it'll be considered dynamic.
1135
+ ///
1136
+ /// > Note: this value has important performance ramifications, be sure to
1137
+ /// > understand what this value does before tweaking it and benchmarking.
1138
+ ///
1139
+ /// This function configures the threshold for wasm memories whether they're
1140
+ /// implemented as a dynamically relocatable chunk of memory or a statically
1141
+ /// located chunk of memory. The `max_size` parameter here is the size, in
1142
+ /// bytes, where if the maximum size of a linear memory is below `max_size`
1143
+ /// then it will be statically allocated with enough space to never have to
1144
+ /// move. If the maximum size of a linear memory is larger than `max_size`
1145
+ /// then wasm memory will be dynamically located and may move in memory
1146
+ /// through growth operations.
1147
+ ///
1148
+ /// Specifying a `max_size` of 0 means that all memories will be dynamic and
1149
+ /// may be relocated through `memory.grow`. Also note that if any wasm
1150
+ /// memory's maximum size is below `max_size` then it will still reserve
1151
+ /// `max_size` bytes in the virtual memory space.
1152
+ ///
1153
+ /// ## Static vs Dynamic Memory
1154
+ ///
1155
+ /// Linear memories represent contiguous arrays of bytes, but they can also
1156
+ /// be grown through the API and wasm instructions. When memory is grown if
1157
+ /// space hasn't been preallocated then growth may involve relocating the
1158
+ /// base pointer in memory. Memories in Wasmtime are classified in two
1159
+ /// different ways:
1160
+ ///
1161
+ /// * **static** - these memories preallocate all space necessary they'll
1162
+ /// ever need, meaning that the base pointer of these memories is never
1163
+ /// moved. Static memories may take more virtual memory space because of
1164
+ /// pre-reserving space for memories.
1165
+ ///
1166
+ /// * **dynamic** - these memories are not preallocated and may move during
1167
+ /// growth operations. Dynamic memories consume less virtual memory space
1168
+ /// because they don't need to preallocate space for future growth.
1169
+ ///
1170
+ /// Static memories can be optimized better in JIT code because once the
1171
+ /// base address is loaded in a function it's known that we never need to
1172
+ /// reload it because it never changes, `memory.grow` is generally a pretty
1173
+ /// fast operation because the wasm memory is never relocated, and under
1174
+ /// some conditions bounds checks can be elided on memory accesses.
1175
+ ///
1176
+ /// Dynamic memories can't be quite as heavily optimized because the base
1177
+ /// address may need to be reloaded more often, they may require relocating
1178
+ /// lots of data on `memory.grow`, and dynamic memories require
1179
+ /// unconditional bounds checks on all memory accesses.
1180
+ ///
1181
+ /// ## Should you use static or dynamic memory?
1182
+ ///
1183
+ /// In general you probably don't need to change the value of this property.
1184
+ /// The defaults here are optimized for each target platform to consume a
1185
+ /// reasonable amount of physical memory while also generating speedy
1186
+ /// machine code.
1187
+ ///
1188
+ /// One of the main reasons you may want to configure this today is if your
1189
+ /// environment can't reserve virtual memory space for each wasm linear
1190
+ /// memory. On 64-bit platforms wasm memories require a 6GB reservation by
1191
+ /// default, and system limits may prevent this in some scenarios. In this
1192
+ /// case you may wish to force memories to be allocated dynamically meaning
1193
+ /// that the virtual memory footprint of creating a wasm memory should be
1194
+ /// exactly what's used by the wasm itself.
1195
+ ///
1196
+ /// For 32-bit memories a static memory must contain at least 4GB of
1197
+ /// reserved address space plus a guard page to elide any bounds checks at
1198
+ /// all. Smaller static memories will use similar bounds checks as dynamic
1199
+ /// memories.
1200
+ ///
1201
+ /// ## Default
1202
+ ///
1203
+ /// The default value for this property depends on the host platform. For
1204
+ /// 64-bit platforms there's lots of address space available, so the default
1205
+ /// configured here is 4GB. WebAssembly linear memories currently max out at
1206
+ /// 4GB which means that on 64-bit platforms Wasmtime by default always uses
1207
+ /// a static memory. This, coupled with a sufficiently sized guard region,
1208
+ /// should produce the fastest JIT code on 64-bit platforms, but does
1209
+ /// require a large address space reservation for each wasm memory.
1210
+ ///
1211
+ /// For 32-bit platforms this value defaults to 1GB. This means that wasm
1212
+ /// memories whose maximum size is less than 1GB will be allocated
1213
+ /// statically, otherwise they'll be considered dynamic.
1214
+ ///
1215
+ /// ## Static Memory and Pooled Instance Allocation
1216
+ ///
1217
+ /// When using the pooling instance allocator memories are considered to
1218
+ /// always be static memories, they are never dynamic. This setting
1219
+ /// configures the size of linear memory to reserve for each memory in the
1220
+ /// pooling allocator.
1221
+ ///
1222
+ /// Note that the pooling allocator can reduce the amount of memory needed
1223
+ /// for pooling allocation by using memory protection; see
1224
+ /// `PoolingAllocatorConfig::memory_protection_keys` for details.
1225
+ pub fn static_memory_maximum_size(&mut self, max_size: u64) -> &mut Self {
1226
+ let max_pages = max_size / u64::from(wasmtime_environ::WASM_PAGE_SIZE);
1227
+ self.tunables.static_memory_bound = max_pages;
1228
+ self
1229
+ }
1230
+
1231
+ /// Indicates that the "static" style of memory should always be used.
1232
+ ///
1233
+ /// This configuration option enables selecting the "static" option for all
1234
+ /// linear memories created within this `Config`. This means that all
1235
+ /// memories will be allocated up-front and will never move. Additionally
1236
+ /// this means that all memories are synthetically limited by the
1237
+ /// [`Config::static_memory_maximum_size`] option, regardless of what the
1238
+ /// actual maximum size is on the memory's original type.
1239
+ ///
1240
+ /// For the difference between static and dynamic memories, see the
1241
+ /// [`Config::static_memory_maximum_size`].
1242
+ pub fn static_memory_forced(&mut self, force: bool) -> &mut Self {
1243
+ self.tunables.static_memory_bound_is_maximum = force;
1244
+ self
1245
+ }
1246
+
1247
+ /// Configures the size, in bytes, of the guard region used at the end of a
1248
+ /// static memory's address space reservation.
1249
+ ///
1250
+ /// > Note: this value has important performance ramifications, be sure to
1251
+ /// > understand what this value does before tweaking it and benchmarking.
1252
+ ///
1253
+ /// All WebAssembly loads/stores are bounds-checked and generate a trap if
1254
+ /// they're out-of-bounds. Loads and stores are often very performance
1255
+ /// critical, so we want the bounds check to be as fast as possible!
1256
+ /// Accelerating these memory accesses is the motivation for a guard after a
1257
+ /// memory allocation.
1258
+ ///
1259
+ /// Memories (both static and dynamic) can be configured with a guard at the
1260
+ /// end of them which consists of unmapped virtual memory. This unmapped
1261
+ /// memory will trigger a memory access violation (e.g. segfault) if
1262
+ /// accessed. This allows JIT code to elide bounds checks if it can prove
1263
+ /// that an access, if out of bounds, would hit the guard region. This means
1264
+ /// that having such a guard of unmapped memory can remove the need for
1265
+ /// bounds checks in JIT code.
1266
+ ///
1267
+ /// For the difference between static and dynamic memories, see the
1268
+ /// [`Config::static_memory_maximum_size`].
1269
+ ///
1270
+ /// ## How big should the guard be?
1271
+ ///
1272
+ /// In general, like with configuring `static_memory_maximum_size`, you
1273
+ /// probably don't want to change this value from the defaults. Otherwise,
1274
+ /// though, the size of the guard region affects the number of bounds checks
1275
+ /// needed for generated wasm code. More specifically, loads/stores with
1276
+ /// immediate offsets will generate bounds checks based on how big the guard
1277
+ /// page is.
1278
+ ///
1279
+ /// For 32-bit wasm memories a 4GB static memory is required to even start
1280
+ /// removing bounds checks. A 4GB guard size will guarantee that the module
1281
+ /// has zero bounds checks for memory accesses. A 2GB guard size will
1282
+ /// eliminate all bounds checks with an immediate offset less than 2GB. A
1283
+ /// guard size of zero means that all memory accesses will still have bounds
1284
+ /// checks.
1285
+ ///
1286
+ /// ## Default
1287
+ ///
1288
+ /// The default value for this property is 2GB on 64-bit platforms. This
1289
+ /// allows eliminating almost all bounds checks on loads/stores with an
1290
+ /// immediate offset of less than 2GB. On 32-bit platforms this defaults to
1291
+ /// 64KB.
1292
+ ///
1293
+ /// ## Errors
1294
+ ///
1295
+ /// The `Engine::new` method will return an error if this option is smaller
1296
+ /// than the value configured for [`Config::dynamic_memory_guard_size`].
1297
+ pub fn static_memory_guard_size(&mut self, guard_size: u64) -> &mut Self {
1298
+ let guard_size = round_up_to_pages(guard_size);
1299
+ self.tunables.static_memory_offset_guard_size = guard_size;
1300
+ self
1301
+ }
1302
+
1303
+ /// Configures the size, in bytes, of the guard region used at the end of a
1304
+ /// dynamic memory's address space reservation.
1305
+ ///
1306
+ /// For the difference between static and dynamic memories, see the
1307
+ /// [`Config::static_memory_maximum_size`]
1308
+ ///
1309
+ /// For more information about what a guard is, see the documentation on
1310
+ /// [`Config::static_memory_guard_size`].
1311
+ ///
1312
+ /// Note that the size of the guard region for dynamic memories is not super
1313
+ /// critical for performance. Making it reasonably-sized can improve
1314
+ /// generated code slightly, but for maximum performance you'll want to lean
1315
+ /// towards static memories rather than dynamic anyway.
1316
+ ///
1317
+ /// Also note that the dynamic memory guard size must be smaller than the
1318
+ /// static memory guard size, so if a large dynamic memory guard is
1319
+ /// specified then the static memory guard size will also be automatically
1320
+ /// increased.
1321
+ ///
1322
+ /// ## Default
1323
+ ///
1324
+ /// This value defaults to 64KB.
1325
+ ///
1326
+ /// ## Errors
1327
+ ///
1328
+ /// The `Engine::new` method will return an error if this option is larger
1329
+ /// than the value configured for [`Config::static_memory_guard_size`].
1330
+ pub fn dynamic_memory_guard_size(&mut self, guard_size: u64) -> &mut Self {
1331
+ let guard_size = round_up_to_pages(guard_size);
1332
+ self.tunables.dynamic_memory_offset_guard_size = guard_size;
1333
+ self
1334
+ }
1335
+
1336
+ /// Configures the size, in bytes, of the extra virtual memory space
1337
+ /// reserved after a "dynamic" memory for growing into.
1338
+ ///
1339
+ /// For the difference between static and dynamic memories, see the
1340
+ /// [`Config::static_memory_maximum_size`]
1341
+ ///
1342
+ /// Dynamic memories can be relocated in the process's virtual address space
1343
+ /// on growth and do not always reserve their entire space up-front. This
1344
+ /// means that a growth of the memory may require movement in the address
1345
+ /// space, which in the worst case can copy a large number of bytes from one
1346
+ /// region to another.
1347
+ ///
1348
+ /// This setting configures how many bytes are reserved after the initial
1349
+ /// reservation for a dynamic memory for growing into. A value of 0 here
1350
+ /// means that no extra bytes are reserved and all calls to `memory.grow`
1351
+ /// will need to relocate the wasm linear memory (copying all the bytes). A
1352
+ /// value of 1 megabyte, however, means that `memory.grow` can allocate up
1353
+ /// to a megabyte of extra memory before the memory needs to be moved in
1354
+ /// linear memory.
1355
+ ///
1356
+ /// Note that this is a currently simple heuristic for optimizing the growth
1357
+ /// of dynamic memories, primarily implemented for the memory64 proposal
1358
+ /// where all memories are currently "dynamic". This is unlikely to be a
1359
+ /// one-size-fits-all style approach and if you're an embedder running into
1360
+ /// issues with dynamic memories and growth and are interested in having
1361
+ /// other growth strategies available here please feel free to [open an
1362
+ /// issue on the Wasmtime repository][issue]!
1363
+ ///
1364
+ /// [issue]: https://github.com/bytecodealliance/wasmtime/issues/ne
1365
+ ///
1366
+ /// ## Default
1367
+ ///
1368
+ /// For 64-bit platforms this defaults to 2GB, and for 32-bit platforms this
1369
+ /// defaults to 1MB.
1370
+ pub fn dynamic_memory_reserved_for_growth(&mut self, reserved: u64) -> &mut Self {
1371
+ self.tunables.dynamic_memory_growth_reserve = round_up_to_pages(reserved);
1372
+ self
1373
+ }
1374
+
1375
+ /// Indicates whether a guard region is present before allocations of
1376
+ /// linear memory.
1377
+ ///
1378
+ /// Guard regions before linear memories are never used during normal
1379
+ /// operation of WebAssembly modules, even if they have out-of-bounds
1380
+ /// loads. The only purpose for a preceding guard region in linear memory
1381
+ /// is extra protection against possible bugs in code generators like
1382
+ /// Cranelift. This setting does not affect performance in any way, but will
1383
+ /// result in larger virtual memory reservations for linear memories (it
1384
+ /// won't actually ever use more memory, just use more of the address
1385
+ /// space).
1386
+ ///
1387
+ /// The size of the guard region before linear memory is the same as the
1388
+ /// guard size that comes after linear memory, which is configured by
1389
+ /// [`Config::static_memory_guard_size`] and
1390
+ /// [`Config::dynamic_memory_guard_size`].
1391
+ ///
1392
+ /// ## Default
1393
+ ///
1394
+ /// This value defaults to `true`.
1395
+ pub fn guard_before_linear_memory(&mut self, guard: bool) -> &mut Self {
1396
+ self.tunables.guard_before_linear_memory = guard;
1397
+ self
1398
+ }
1399
+
1400
+ /// Configure the version information used in serialized and deserialzied [`crate::Module`]s.
1401
+ /// This effects the behavior of [`crate::Module::serialize()`], as well as
1402
+ /// [`crate::Module::deserialize()`] and related functions.
1403
+ ///
1404
+ /// The default strategy is to use the wasmtime crate's Cargo package version.
1405
+ pub fn module_version(&mut self, strategy: ModuleVersionStrategy) -> Result<&mut Self> {
1406
+ match strategy {
1407
+ // This case requires special precondition for assertion in SerializedModule::to_bytes
1408
+ ModuleVersionStrategy::Custom(ref v) => {
1409
+ if v.as_bytes().len() > 255 {
1410
+ bail!("custom module version cannot be more than 255 bytes: {}", v);
1411
+ }
1412
+ }
1413
+ _ => {}
1414
+ }
1415
+ self.module_version = strategy;
1416
+ Ok(self)
1417
+ }
1418
+
1419
+ /// Configure wether wasmtime should compile a module using multiple
1420
+ /// threads.
1421
+ ///
1422
+ /// Disabling this will result in a single thread being used to compile
1423
+ /// the wasm bytecode.
1424
+ ///
1425
+ /// By default parallel compilation is enabled.
1426
+ #[cfg(feature = "parallel-compilation")]
1427
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "parallel-compilation")))]
1428
+ pub fn parallel_compilation(&mut self, parallel: bool) -> &mut Self {
1429
+ self.parallel_compilation = parallel;
1430
+ self
1431
+ }
1432
+
1433
+ /// Configures whether compiled artifacts will contain information to map
1434
+ /// native program addresses back to the original wasm module.
1435
+ ///
1436
+ /// This configuration option is `true` by default and, if enabled,
1437
+ /// generates the appropriate tables in compiled modules to map from native
1438
+ /// address back to wasm source addresses. This is used for displaying wasm
1439
+ /// program counters in backtraces as well as generating filenames/line
1440
+ /// numbers if so configured as well (and the original wasm module has DWARF
1441
+ /// debugging information present).
1442
+ pub fn generate_address_map(&mut self, generate: bool) -> &mut Self {
1443
+ self.tunables.generate_address_map = generate;
1444
+ self
1445
+ }
1446
+
1447
+ /// Configures whether copy-on-write memory-mapped data is used to
1448
+ /// initialize a linear memory.
1449
+ ///
1450
+ /// Initializing linear memory via a copy-on-write mapping can drastically
1451
+ /// improve instantiation costs of a WebAssembly module because copying
1452
+ /// memory is deferred. Additionally if a page of memory is only ever read
1453
+ /// from WebAssembly and never written too then the same underlying page of
1454
+ /// data will be reused between all instantiations of a module meaning that
1455
+ /// if a module is instantiated many times this can lower the overall memory
1456
+ /// required needed to run that module.
1457
+ ///
1458
+ /// This feature is only applicable when a WebAssembly module meets specific
1459
+ /// criteria to be initialized in this fashion, such as:
1460
+ ///
1461
+ /// * Only memories defined in the module can be initialized this way.
1462
+ /// * Data segments for memory must use statically known offsets.
1463
+ /// * Data segments for memory must all be in-bounds.
1464
+ ///
1465
+ /// Modules which do not meet these criteria will fall back to
1466
+ /// initialization of linear memory based on copying memory.
1467
+ ///
1468
+ /// This feature of Wasmtime is also platform-specific:
1469
+ ///
1470
+ /// * Linux - this feature is supported for all instances of [`Module`].
1471
+ /// Modules backed by an existing mmap (such as those created by
1472
+ /// [`Module::deserialize_file`]) will reuse that mmap to cow-initialize
1473
+ /// memory. Other instance of [`Module`] may use the `memfd_create`
1474
+ /// syscall to create an initialization image to `mmap`.
1475
+ /// * Unix (not Linux) - this feature is only supported when loading modules
1476
+ /// from a precompiled file via [`Module::deserialize_file`] where there
1477
+ /// is a file descriptor to use to map data into the process. Note that
1478
+ /// the module must have been compiled with this setting enabled as well.
1479
+ /// * Windows - there is no support for this feature at this time. Memory
1480
+ /// initialization will always copy bytes.
1481
+ ///
1482
+ /// By default this option is enabled.
1483
+ ///
1484
+ /// [`Module::deserialize_file`]: crate::Module::deserialize_file
1485
+ /// [`Module`]: crate::Module
1486
+ pub fn memory_init_cow(&mut self, enable: bool) -> &mut Self {
1487
+ self.memory_init_cow = enable;
1488
+ self
1489
+ }
1490
+
1491
+ /// A configuration option to force the usage of `memfd_create` on Linux to
1492
+ /// be used as the backing source for a module's initial memory image.
1493
+ ///
1494
+ /// When [`Config::memory_init_cow`] is enabled, which is enabled by
1495
+ /// default, module memory initialization images are taken from a module's
1496
+ /// original mmap if possible. If a precompiled module was loaded from disk
1497
+ /// this means that the disk's file is used as an mmap source for the
1498
+ /// initial linear memory contents. This option can be used to force, on
1499
+ /// Linux, that instead of using the original file on disk a new in-memory
1500
+ /// file is created with `memfd_create` to hold the contents of the initial
1501
+ /// image.
1502
+ ///
1503
+ /// This option can be used to avoid possibly loading the contents of memory
1504
+ /// from disk through a page fault. Instead with `memfd_create` the contents
1505
+ /// of memory are always in RAM, meaning that even page faults which
1506
+ /// initially populate a wasm linear memory will only work with RAM instead
1507
+ /// of ever hitting the disk that the original precompiled module is stored
1508
+ /// on.
1509
+ ///
1510
+ /// This option is disabled by default.
1511
+ pub fn force_memory_init_memfd(&mut self, enable: bool) -> &mut Self {
1512
+ self.force_memory_init_memfd = enable;
1513
+ self
1514
+ }
1515
+
1516
+ /// Configures whether or not a coredump should be generated and attached to
1517
+ /// the anyhow::Error when a trap is raised.
1518
+ ///
1519
+ /// This option is disabled by default.
1520
+ #[cfg(feature = "coredump")]
1521
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "coredump")))]
1522
+ pub fn coredump_on_trap(&mut self, enable: bool) -> &mut Self {
1523
+ self.coredump_on_trap = enable;
1524
+ self
1525
+ }
1526
+
1527
+ /// Enables memory error checking for wasm programs.
1528
+ ///
1529
+ /// This option is disabled by default.
1530
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1531
+ pub fn wmemcheck(&mut self, enable: bool) -> &mut Self {
1532
+ self.wmemcheck = enable;
1533
+ self.compiler_config.wmemcheck = enable;
1534
+ self
1535
+ }
1536
+
1537
+ /// Configures the "guaranteed dense image size" for copy-on-write
1538
+ /// initialized memories.
1539
+ ///
1540
+ /// When using the [`Config::memory_init_cow`] feature to initialize memory
1541
+ /// efficiently (which is enabled by default), compiled modules contain an
1542
+ /// image of the module's initial heap. If the module has a fairly sparse
1543
+ /// initial heap, with just a few data segments at very different offsets,
1544
+ /// this could result in a large region of zero bytes in the image. In
1545
+ /// other words, it's not very memory-efficient.
1546
+ ///
1547
+ /// We normally use a heuristic to avoid this: if less than half
1548
+ /// of the initialized range (first non-zero to last non-zero
1549
+ /// byte) of any memory in the module has pages with nonzero
1550
+ /// bytes, then we avoid creating a memory image for the entire module.
1551
+ ///
1552
+ /// However, if the embedder always needs the instantiation-time efficiency
1553
+ /// of copy-on-write initialization, and is otherwise carefully controlling
1554
+ /// parameters of the modules (for example, by limiting the maximum heap
1555
+ /// size of the modules), then it may be desirable to ensure a memory image
1556
+ /// is created even if this could go against the heuristic above. Thus, we
1557
+ /// add another condition: there is a size of initialized data region up to
1558
+ /// which we *always* allow a memory image. The embedder can set this to a
1559
+ /// known maximum heap size if they desire to always get the benefits of
1560
+ /// copy-on-write images.
1561
+ ///
1562
+ /// In the future we may implement a "best of both worlds"
1563
+ /// solution where we have a dense image up to some limit, and
1564
+ /// then support a sparse list of initializers beyond that; this
1565
+ /// would get most of the benefit of copy-on-write and pay the incremental
1566
+ /// cost of eager initialization only for those bits of memory
1567
+ /// that are out-of-bounds. However, for now, an embedder desiring
1568
+ /// fast instantiation should ensure that this setting is as large
1569
+ /// as the maximum module initial memory content size.
1570
+ ///
1571
+ /// By default this value is 16 MiB.
1572
+ pub fn memory_guaranteed_dense_image_size(&mut self, size_in_bytes: u64) -> &mut Self {
1573
+ self.memory_guaranteed_dense_image_size = size_in_bytes;
1574
+ self
1575
+ }
1576
+
1577
+ pub(crate) fn validate(&self) -> Result<()> {
1578
+ if self.features.reference_types && !self.features.bulk_memory {
1579
+ bail!("feature 'reference_types' requires 'bulk_memory' to be enabled");
1580
+ }
1581
+ if self.features.threads && !self.features.bulk_memory {
1582
+ bail!("feature 'threads' requires 'bulk_memory' to be enabled");
1583
+ }
1584
+ #[cfg(feature = "async")]
1585
+ if self.async_support && self.max_wasm_stack > self.async_stack_size {
1586
+ bail!("max_wasm_stack size cannot exceed the async_stack_size");
1587
+ }
1588
+ if self.max_wasm_stack == 0 {
1589
+ bail!("max_wasm_stack size cannot be zero");
1590
+ }
1591
+ if self.tunables.static_memory_offset_guard_size
1592
+ < self.tunables.dynamic_memory_offset_guard_size
1593
+ {
1594
+ bail!("static memory guard size cannot be smaller than dynamic memory guard size");
1595
+ }
1596
+ #[cfg(not(feature = "wmemcheck"))]
1597
+ if self.wmemcheck {
1598
+ bail!("wmemcheck (memory checker) was requested but is not enabled in this build");
1599
+ }
1600
+
1601
+ Ok(())
1602
+ }
1603
+
1604
+ pub(crate) fn build_allocator(&self) -> Result<Box<dyn InstanceAllocator + Send + Sync>> {
1605
+ #[cfg(feature = "async")]
1606
+ let stack_size = self.async_stack_size;
1607
+
1608
+ #[cfg(not(feature = "async"))]
1609
+ let stack_size = 0;
1610
+
1611
+ match &self.allocation_strategy {
1612
+ InstanceAllocationStrategy::OnDemand => {
1613
+ #[allow(unused_mut)]
1614
+ let mut allocator = Box::new(OnDemandInstanceAllocator::new(
1615
+ self.mem_creator.clone(),
1616
+ stack_size,
1617
+ ));
1618
+ #[cfg(feature = "async")]
1619
+ if let Some(stack_creator) = &self.stack_creator {
1620
+ allocator.set_stack_creator(stack_creator.clone());
1621
+ }
1622
+ Ok(allocator)
1623
+ }
1624
+ #[cfg(feature = "pooling-allocator")]
1625
+ InstanceAllocationStrategy::Pooling(config) => {
1626
+ let mut config = config.config;
1627
+ config.stack_size = stack_size;
1628
+ Ok(Box::new(wasmtime_runtime::PoolingInstanceAllocator::new(
1629
+ &config,
1630
+ &self.tunables,
1631
+ )?))
1632
+ }
1633
+ }
1634
+ }
1635
+
1636
+ pub(crate) fn build_profiler(&self) -> Result<Box<dyn ProfilingAgent>> {
1637
+ Ok(match self.profiling_strategy {
1638
+ ProfilingStrategy::PerfMap => profiling::new_perfmap()?,
1639
+ ProfilingStrategy::JitDump => profiling::new_jitdump()?,
1640
+ ProfilingStrategy::VTune => profiling::new_vtune()?,
1641
+ ProfilingStrategy::None => profiling::new_null(),
1642
+ })
1643
+ }
1644
+
1645
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1646
+ pub(crate) fn build_compiler(mut self) -> Result<(Self, Box<dyn wasmtime_environ::Compiler>)> {
1647
+ let mut compiler = match self.compiler_config.strategy {
1648
+ #[cfg(feature = "cranelift")]
1649
+ Strategy::Auto => wasmtime_cranelift::builder(),
1650
+ #[cfg(all(feature = "winch", not(feature = "cranelift")))]
1651
+ Strategy::Auto => wasmtime_winch::builder(),
1652
+ #[cfg(feature = "cranelift")]
1653
+ Strategy::Cranelift => wasmtime_cranelift::builder(),
1654
+ #[cfg(not(feature = "cranelift"))]
1655
+ Strategy::Cranelift => bail!("cranelift support not compiled in"),
1656
+ #[cfg(feature = "winch")]
1657
+ Strategy::Winch => wasmtime_winch::builder(),
1658
+ #[cfg(not(feature = "winch"))]
1659
+ Strategy::Winch => bail!("winch support not compiled in"),
1660
+ };
1661
+
1662
+ if let Some(target) = &self.compiler_config.target {
1663
+ compiler.target(target.clone())?;
1664
+ }
1665
+
1666
+ if let Some(path) = &self.compiler_config.clif_dir {
1667
+ compiler.clif_dir(path)?;
1668
+ }
1669
+
1670
+ // If probestack is enabled for a target, Wasmtime will always use the
1671
+ // inline strategy which doesn't require us to define a `__probestack`
1672
+ // function or similar.
1673
+ self.compiler_config
1674
+ .settings
1675
+ .insert("probestack_strategy".into(), "inline".into());
1676
+
1677
+ let host = target_lexicon::Triple::host();
1678
+ let target = self
1679
+ .compiler_config
1680
+ .target
1681
+ .as_ref()
1682
+ .unwrap_or(&host)
1683
+ .clone();
1684
+
1685
+ // On supported targets, we enable stack probing by default.
1686
+ // This is required on Windows because of the way Windows
1687
+ // commits its stacks, but it's also a good idea on other
1688
+ // platforms to ensure guard pages are hit for large frame
1689
+ // sizes.
1690
+ if probestack_supported(target.architecture) {
1691
+ self.compiler_config
1692
+ .flags
1693
+ .insert("enable_probestack".into());
1694
+ }
1695
+
1696
+ if self.features.tail_call {
1697
+ ensure!(
1698
+ target.architecture != Architecture::S390x,
1699
+ "Tail calls are not supported on s390x yet: \
1700
+ https://github.com/bytecodealliance/wasmtime/issues/6530"
1701
+ );
1702
+ }
1703
+
1704
+ if let Some(unwind_requested) = self.native_unwind_info {
1705
+ if !self
1706
+ .compiler_config
1707
+ .ensure_setting_unset_or_given("unwind_info", &unwind_requested.to_string())
1708
+ {
1709
+ bail!("incompatible settings requested for Cranelift and Wasmtime `unwind-info` settings");
1710
+ }
1711
+ }
1712
+
1713
+ if target.operating_system == target_lexicon::OperatingSystem::Windows {
1714
+ if !self
1715
+ .compiler_config
1716
+ .ensure_setting_unset_or_given("unwind_info", "true")
1717
+ {
1718
+ bail!("`native_unwind_info` cannot be disabled on Windows");
1719
+ }
1720
+ }
1721
+
1722
+ // We require frame pointers for correct stack walking, which is safety
1723
+ // critical in the presence of reference types, and otherwise it is just
1724
+ // really bad developer experience to get wrong.
1725
+ self.compiler_config
1726
+ .settings
1727
+ .insert("preserve_frame_pointers".into(), "true".into());
1728
+
1729
+ // check for incompatible compiler options and set required values
1730
+ if self.features.reference_types {
1731
+ if !self
1732
+ .compiler_config
1733
+ .ensure_setting_unset_or_given("enable_safepoints", "true")
1734
+ {
1735
+ bail!("compiler option 'enable_safepoints' must be enabled when 'reference types' is enabled");
1736
+ }
1737
+ }
1738
+
1739
+ if self.features.relaxed_simd && !self.features.simd {
1740
+ bail!("cannot disable the simd proposal but enable the relaxed simd proposal");
1741
+ }
1742
+
1743
+ // Apply compiler settings and flags
1744
+ for (k, v) in self.compiler_config.settings.iter() {
1745
+ compiler.set(k, v)?;
1746
+ }
1747
+ for flag in self.compiler_config.flags.iter() {
1748
+ compiler.enable(flag)?;
1749
+ }
1750
+
1751
+ if let Some(cache_store) = &self.compiler_config.cache_store {
1752
+ compiler.enable_incremental_compilation(cache_store.clone())?;
1753
+ }
1754
+
1755
+ compiler.set_tunables(self.tunables.clone())?;
1756
+ compiler.wmemcheck(self.compiler_config.wmemcheck);
1757
+
1758
+ Ok((self, compiler.build()?))
1759
+ }
1760
+
1761
+ /// Internal setting for whether adapter modules for components will have
1762
+ /// extra WebAssembly instructions inserted performing more debug checks
1763
+ /// then are necessary.
1764
+ #[cfg(feature = "component-model")]
1765
+ pub fn debug_adapter_modules(&mut self, debug: bool) -> &mut Self {
1766
+ self.tunables.debug_adapter_modules = debug;
1767
+ self
1768
+ }
1769
+
1770
+ /// Enables clif output when compiling a WebAssembly module.
1771
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1772
+ pub fn emit_clif(&mut self, path: &Path) -> &mut Self {
1773
+ self.compiler_config.clif_dir = Some(path.to_path_buf());
1774
+ self
1775
+ }
1776
+
1777
+ /// Configures whether, when on macOS, Mach ports are used for exception
1778
+ /// handling instead of traditional Unix-based signal handling.
1779
+ ///
1780
+ /// WebAssembly traps in Wasmtime are implemented with native faults, for
1781
+ /// example a `SIGSEGV` will occur when a WebAssembly guest accesses
1782
+ /// out-of-bounds memory. Handling this can be configured to either use Unix
1783
+ /// signals or Mach ports on macOS. By default Mach ports are used.
1784
+ ///
1785
+ /// Mach ports enable Wasmtime to work by default with foreign
1786
+ /// error-handling systems such as breakpad which also use Mach ports to
1787
+ /// handle signals. In this situation Wasmtime will continue to handle guest
1788
+ /// faults gracefully while any non-guest faults will get forwarded to
1789
+ /// process-level handlers such as breakpad. Some more background on this
1790
+ /// can be found in #2456.
1791
+ ///
1792
+ /// A downside of using mach ports, however, is that they don't interact
1793
+ /// well with `fork()`. Forking a Wasmtime process on macOS will produce a
1794
+ /// child process that cannot successfully run WebAssembly. In this
1795
+ /// situation traditional Unix signal handling should be used as that's
1796
+ /// inherited and works across forks.
1797
+ ///
1798
+ /// If your embedding wants to use a custom error handler which leverages
1799
+ /// Mach ports and you additionally wish to `fork()` the process and use
1800
+ /// Wasmtime in the child process that's not currently possible. Please
1801
+ /// reach out to us if you're in this bucket!
1802
+ ///
1803
+ /// This option defaults to `true`, using Mach ports by default.
1804
+ pub fn macos_use_mach_ports(&mut self, mach_ports: bool) -> &mut Self {
1805
+ self.macos_use_mach_ports = mach_ports;
1806
+ self
1807
+ }
1808
+ }
1809
+
1810
+ fn round_up_to_pages(val: u64) -> u64 {
1811
+ let page_size = wasmtime_runtime::page_size() as u64;
1812
+ debug_assert!(page_size.is_power_of_two());
1813
+ val.checked_add(page_size - 1)
1814
+ .map(|val| val & !(page_size - 1))
1815
+ .unwrap_or(u64::MAX / page_size + 1)
1816
+ }
1817
+
1818
+ impl Default for Config {
1819
+ fn default() -> Config {
1820
+ Config::new()
1821
+ }
1822
+ }
1823
+
1824
+ impl fmt::Debug for Config {
1825
+ fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
1826
+ let mut f = f.debug_struct("Config");
1827
+ f.field("debug_info", &self.tunables.generate_native_debuginfo)
1828
+ .field("parse_wasm_debuginfo", &self.tunables.parse_wasm_debuginfo)
1829
+ .field("wasm_threads", &self.features.threads)
1830
+ .field("wasm_reference_types", &self.features.reference_types)
1831
+ .field(
1832
+ "wasm_function_references",
1833
+ &self.features.function_references,
1834
+ )
1835
+ .field("wasm_bulk_memory", &self.features.bulk_memory)
1836
+ .field("wasm_simd", &self.features.simd)
1837
+ .field("wasm_relaxed_simd", &self.features.relaxed_simd)
1838
+ .field("wasm_multi_value", &self.features.multi_value)
1839
+ .field(
1840
+ "static_memory_maximum_size",
1841
+ &(u64::from(self.tunables.static_memory_bound)
1842
+ * u64::from(wasmtime_environ::WASM_PAGE_SIZE)),
1843
+ )
1844
+ .field(
1845
+ "static_memory_guard_size",
1846
+ &self.tunables.static_memory_offset_guard_size,
1847
+ )
1848
+ .field(
1849
+ "dynamic_memory_guard_size",
1850
+ &self.tunables.dynamic_memory_offset_guard_size,
1851
+ )
1852
+ .field(
1853
+ "guard_before_linear_memory",
1854
+ &self.tunables.guard_before_linear_memory,
1855
+ )
1856
+ .field("parallel_compilation", &self.parallel_compilation);
1857
+ #[cfg(any(feature = "cranelift", feature = "winch"))]
1858
+ {
1859
+ f.field("compiler_config", &self.compiler_config);
1860
+ }
1861
+ f.finish()
1862
+ }
1863
+ }
1864
+
1865
+ /// Possible Compilation strategies for a wasm module.
1866
+ ///
1867
+ /// This is used as an argument to the [`Config::strategy`] method.
1868
+ #[non_exhaustive]
1869
+ #[derive(PartialEq, Eq, Clone, Debug, Copy)]
1870
+ pub enum Strategy {
1871
+ /// An indicator that the compilation strategy should be automatically
1872
+ /// selected.
1873
+ ///
1874
+ /// This is generally what you want for most projects and indicates that the
1875
+ /// `wasmtime` crate itself should make the decision about what the best
1876
+ /// code generator for a wasm module is.
1877
+ ///
1878
+ /// Currently this always defaults to Cranelift, but the default value may
1879
+ /// change over time.
1880
+ Auto,
1881
+
1882
+ /// Currently the default backend, Cranelift aims to be a reasonably fast
1883
+ /// code generator which generates high quality machine code.
1884
+ Cranelift,
1885
+
1886
+ /// A baseline compiler for WebAssembly, currently under active development and not ready for
1887
+ /// production applications.
1888
+ Winch,
1889
+ }
1890
+
1891
+ /// Possible optimization levels for the Cranelift codegen backend.
1892
+ #[non_exhaustive]
1893
+ #[derive(Copy, Clone, Debug, Serialize, Deserialize, Eq, PartialEq)]
1894
+ pub enum OptLevel {
1895
+ /// No optimizations performed, minimizes compilation time by disabling most
1896
+ /// optimizations.
1897
+ None,
1898
+ /// Generates the fastest possible code, but may take longer.
1899
+ Speed,
1900
+ /// Similar to `speed`, but also performs transformations aimed at reducing
1901
+ /// code size.
1902
+ SpeedAndSize,
1903
+ }
1904
+
1905
+ /// Select which profiling technique to support.
1906
+ #[derive(Debug, Clone, Copy, PartialEq)]
1907
+ pub enum ProfilingStrategy {
1908
+ /// No profiler support.
1909
+ None,
1910
+
1911
+ /// Collect function name information as the "perf map" file format, used with `perf` on Linux.
1912
+ PerfMap,
1913
+
1914
+ /// Collect profiling info for "jitdump" file format, used with `perf` on
1915
+ /// Linux.
1916
+ JitDump,
1917
+
1918
+ /// Collect profiling info using the "ittapi", used with `VTune` on Linux.
1919
+ VTune,
1920
+ }
1921
+
1922
+ /// Select how wasm backtrace detailed information is handled.
1923
+ #[derive(Debug, Clone, Copy)]
1924
+ pub enum WasmBacktraceDetails {
1925
+ /// Support is unconditionally enabled and wasmtime will parse and read
1926
+ /// debug information.
1927
+ Enable,
1928
+
1929
+ /// Support is disabled, and wasmtime will not parse debug information for
1930
+ /// backtrace details.
1931
+ Disable,
1932
+
1933
+ /// Support for backtrace details is conditional on the
1934
+ /// `WASMTIME_BACKTRACE_DETAILS` environment variable.
1935
+ Environment,
1936
+ }
1937
+
1938
+ /// Configuration options used with [`InstanceAllocationStrategy::Pooling`] to
1939
+ /// change the behavior of the pooling instance allocator.
1940
+ ///
1941
+ /// This structure has a builder-style API in the same manner as [`Config`] and
1942
+ /// is configured with [`Config::allocation_strategy`].
1943
+ #[cfg(feature = "pooling-allocator")]
1944
+ #[derive(Debug, Clone, Default)]
1945
+ pub struct PoolingAllocationConfig {
1946
+ config: wasmtime_runtime::PoolingInstanceAllocatorConfig,
1947
+ }
1948
+
1949
+ #[cfg(feature = "pooling-allocator")]
1950
+ impl PoolingAllocationConfig {
1951
+ /// Configures the maximum number of "unused warm slots" to retain in the
1952
+ /// pooling allocator.
1953
+ ///
1954
+ /// The pooling allocator operates over slots to allocate from, and each
1955
+ /// slot is considered "cold" if it's never been used before or "warm" if
1956
+ /// it's been used by some module in the past. Slots in the pooling
1957
+ /// allocator additionally track an "affinity" flag to a particular core
1958
+ /// wasm module. When a module is instantiated into a slot then the slot is
1959
+ /// considered affine to that module, even after the instance has been
1960
+ /// deallocated.
1961
+ ///
1962
+ /// When a new instance is created then a slot must be chosen, and the
1963
+ /// current algorithm for selecting a slot is:
1964
+ ///
1965
+ /// * If there are slots that are affine to the module being instantiated,
1966
+ /// then the most recently used slot is selected to be allocated from.
1967
+ /// This is done to improve reuse of resources such as memory mappings and
1968
+ /// additionally try to benefit from temporal locality for things like
1969
+ /// caches.
1970
+ ///
1971
+ /// * Otherwise if there are more than N affine slots to other modules, then
1972
+ /// one of those affine slots is chosen to be allocated. The slot chosen
1973
+ /// is picked on a least-recently-used basis.
1974
+ ///
1975
+ /// * Finally, if there are less than N affine slots to other modules, then
1976
+ /// the non-affine slots are allocated from.
1977
+ ///
1978
+ /// This setting, `max_unused_warm_slots`, is the value for N in the above
1979
+ /// algorithm. The purpose of this setting is to have a knob over the RSS
1980
+ /// impact of "unused slots" for a long-running wasm server.
1981
+ ///
1982
+ /// If this setting is set to 0, for example, then affine slots are
1983
+ /// aggressively reused on a least-recently-used basis. A "cold" slot is
1984
+ /// only used if there are no affine slots available to allocate from. This
1985
+ /// means that the set of slots used over the lifetime of a program is the
1986
+ /// same as the maximum concurrent number of wasm instances.
1987
+ ///
1988
+ /// If this setting is set to infinity, however, then cold slots are
1989
+ /// prioritized to be allocated from. This means that the set of slots used
1990
+ /// over the lifetime of a program will approach
1991
+ /// [`PoolingAllocationConfig::total_memories`], or the maximum number of
1992
+ /// slots in the pooling allocator.
1993
+ ///
1994
+ /// Wasmtime does not aggressively decommit all resources associated with a
1995
+ /// slot when the slot is not in use. For example the
1996
+ /// [`PoolingAllocationConfig::linear_memory_keep_resident`] option can be
1997
+ /// used to keep memory associated with a slot, even when it's not in use.
1998
+ /// This means that the total set of used slots in the pooling instance
1999
+ /// allocator can impact the overall RSS usage of a program.
2000
+ ///
2001
+ /// The default value for this option is `100`.
2002
+ pub fn max_unused_warm_slots(&mut self, max: u32) -> &mut Self {
2003
+ self.config.max_unused_warm_slots = max;
2004
+ self
2005
+ }
2006
+
2007
+ /// Configures whether or not stacks used for async futures are reset to
2008
+ /// zero after usage.
2009
+ ///
2010
+ /// When the [`async_support`](Config::async_support) method is enabled for
2011
+ /// Wasmtime and the [`call_async`] variant
2012
+ /// of calling WebAssembly is used then Wasmtime will create a separate
2013
+ /// runtime execution stack for each future produced by [`call_async`].
2014
+ /// During the deallocation process Wasmtime won't by default reset the
2015
+ /// contents of the stack back to zero.
2016
+ ///
2017
+ /// When this option is enabled it can be seen as a defense-in-depth
2018
+ /// mechanism to reset a stack back to zero. This is not required for
2019
+ /// correctness and can be a costly operation in highly concurrent
2020
+ /// environments due to modifications of the virtual address space requiring
2021
+ /// process-wide synchronization.
2022
+ ///
2023
+ /// This option defaults to `false`.
2024
+ ///
2025
+ /// [`call_async`]: crate::TypedFunc::call_async
2026
+ #[cfg(feature = "async")]
2027
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "async")))]
2028
+ pub fn async_stack_zeroing(&mut self, enable: bool) -> &mut Self {
2029
+ self.config.async_stack_zeroing = enable;
2030
+ self
2031
+ }
2032
+
2033
+ /// How much memory, in bytes, to keep resident for async stacks allocated
2034
+ /// with the pooling allocator.
2035
+ ///
2036
+ /// When [`PoolingAllocationConfig::async_stack_zeroing`] is enabled then
2037
+ /// Wasmtime will reset the contents of async stacks back to zero upon
2038
+ /// deallocation. This option can be used to perform the zeroing operation
2039
+ /// with `memset` up to a certain threshold of bytes instead of using system
2040
+ /// calls to reset the stack to zero.
2041
+ ///
2042
+ /// Note that when using this option the memory with async stacks will
2043
+ /// never be decommitted.
2044
+ #[cfg(feature = "async")]
2045
+ #[cfg_attr(nightlydoc, doc(cfg(feature = "async")))]
2046
+ pub fn async_stack_keep_resident(&mut self, size: usize) -> &mut Self {
2047
+ let size = round_up_to_pages(size as u64) as usize;
2048
+ self.config.async_stack_keep_resident = size;
2049
+ self
2050
+ }
2051
+
2052
+ /// How much memory, in bytes, to keep resident for each linear memory
2053
+ /// after deallocation.
2054
+ ///
2055
+ /// This option is only applicable on Linux and has no effect on other
2056
+ /// platforms.
2057
+ ///
2058
+ /// By default Wasmtime will use `madvise` to reset the entire contents of
2059
+ /// linear memory back to zero when a linear memory is deallocated. This
2060
+ /// option can be used to use `memset` instead to set memory back to zero
2061
+ /// which can, in some configurations, reduce the number of page faults
2062
+ /// taken when a slot is reused.
2063
+ pub fn linear_memory_keep_resident(&mut self, size: usize) -> &mut Self {
2064
+ let size = round_up_to_pages(size as u64) as usize;
2065
+ self.config.linear_memory_keep_resident = size;
2066
+ self
2067
+ }
2068
+
2069
+ /// How much memory, in bytes, to keep resident for each table after
2070
+ /// deallocation.
2071
+ ///
2072
+ /// This option is only applicable on Linux and has no effect on other
2073
+ /// platforms.
2074
+ ///
2075
+ /// This option is the same as
2076
+ /// [`PoolingAllocationConfig::linear_memory_keep_resident`] except that it
2077
+ /// is applicable to tables instead.
2078
+ pub fn table_keep_resident(&mut self, size: usize) -> &mut Self {
2079
+ let size = round_up_to_pages(size as u64) as usize;
2080
+ self.config.table_keep_resident = size;
2081
+ self
2082
+ }
2083
+
2084
+ /// The maximum number of concurrent component instances supported (default
2085
+ /// is `1000`).
2086
+ ///
2087
+ /// This provides an upper-bound on the total size of component
2088
+ /// metadata-related allocations, along with
2089
+ /// [`PoolingAllocationConfig::max_component_instance_size`]. The upper bound is
2090
+ ///
2091
+ /// ```text
2092
+ /// total_component_instances * max_component_instance_size
2093
+ /// ```
2094
+ ///
2095
+ /// where `max_component_instance_size` is rounded up to the size and alignment
2096
+ /// of the internal representation of the metadata.
2097
+ pub fn total_component_instances(&mut self, count: u32) -> &mut Self {
2098
+ self.config.limits.total_component_instances = count;
2099
+ self
2100
+ }
2101
+
2102
+ /// The maximum size, in bytes, allocated for a component instance's
2103
+ /// `VMComponentContext` metadata.
2104
+ ///
2105
+ /// The [`wasmtime::component::Instance`][crate::component::Instance] type
2106
+ /// has a static size but its internal `VMComponentContext` is dynamically
2107
+ /// sized depending on the component being instantiated. This size limit
2108
+ /// loosely correlates to the size of the component, taking into account
2109
+ /// factors such as:
2110
+ ///
2111
+ /// * number of lifted and lowered functions,
2112
+ /// * number of memories
2113
+ /// * number of inner instances
2114
+ /// * number of resources
2115
+ ///
2116
+ /// If the allocated size per instance is too small then instantiation of a
2117
+ /// module will fail at runtime with an error indicating how many bytes were
2118
+ /// needed.
2119
+ ///
2120
+ /// The default value for this is 1MiB.
2121
+ ///
2122
+ /// This provides an upper-bound on the total size of component
2123
+ /// metadata-related allocations, along with
2124
+ /// [`PoolingAllocationConfig::total_component_instances`]. The upper bound is
2125
+ ///
2126
+ /// ```text
2127
+ /// total_component_instances * max_component_instance_size
2128
+ /// ```
2129
+ ///
2130
+ /// where `max_component_instance_size` is rounded up to the size and alignment
2131
+ /// of the internal representation of the metadata.
2132
+ pub fn max_component_instance_size(&mut self, size: usize) -> &mut Self {
2133
+ self.config.limits.component_instance_size = size;
2134
+ self
2135
+ }
2136
+
2137
+ /// The maximum number of core instances a single component may contain
2138
+ /// (default is `20`).
2139
+ ///
2140
+ /// This method (along with
2141
+ /// [`PoolingAllocationConfig::max_memories_per_component`],
2142
+ /// [`PoolingAllocationConfig::max_tables_per_component`], and
2143
+ /// [`PoolingAllocationConfig::max_component_instance_size`]) allows you to cap
2144
+ /// the amount of resources a single component allocation consumes.
2145
+ ///
2146
+ /// If a component will instantiate more core instances than `count`, then
2147
+ /// the component will fail to instantiate.
2148
+ pub fn max_core_instances_per_component(&mut self, count: u32) -> &mut Self {
2149
+ self.config.limits.max_core_instances_per_component = count;
2150
+ self
2151
+ }
2152
+
2153
+ /// The maximum number of Wasm linear memories that a single component may
2154
+ /// transitively contain (default is `20`).
2155
+ ///
2156
+ /// This method (along with
2157
+ /// [`PoolingAllocationConfig::max_core_instances_per_component`],
2158
+ /// [`PoolingAllocationConfig::max_tables_per_component`], and
2159
+ /// [`PoolingAllocationConfig::max_component_instance_size`]) allows you to cap
2160
+ /// the amount of resources a single component allocation consumes.
2161
+ ///
2162
+ /// If a component transitively contains more linear memories than `count`,
2163
+ /// then the component will fail to instantiate.
2164
+ pub fn max_memories_per_component(&mut self, count: u32) -> &mut Self {
2165
+ self.config.limits.max_memories_per_component = count;
2166
+ self
2167
+ }
2168
+
2169
+ /// The maximum number of tables that a single component may transitively
2170
+ /// contain (default is `20`).
2171
+ ///
2172
+ /// This method (along with
2173
+ /// [`PoolingAllocationConfig::max_core_instances_per_component`],
2174
+ /// [`PoolingAllocationConfig::max_memories_per_component`],
2175
+ /// [`PoolingAllocationConfig::max_component_instance_size`]) allows you to cap
2176
+ /// the amount of resources a single component allocation consumes.
2177
+ ///
2178
+ /// If a component will transitively contains more tables than `count`, then
2179
+ /// the component will fail to instantiate.
2180
+ pub fn max_tables_per_component(&mut self, count: u32) -> &mut Self {
2181
+ self.config.limits.max_tables_per_component = count;
2182
+ self
2183
+ }
2184
+
2185
+ /// The maximum number of concurrent Wasm linear memories supported (default
2186
+ /// is `1000`).
2187
+ ///
2188
+ /// This value has a direct impact on the amount of memory allocated by the pooling
2189
+ /// instance allocator.
2190
+ ///
2191
+ /// The pooling instance allocator allocates a memory pool, where each entry
2192
+ /// in the pool contains the reserved address space for each linear memory
2193
+ /// supported by an instance.
2194
+ ///
2195
+ /// The memory pool will reserve a large quantity of host process address
2196
+ /// space to elide the bounds checks required for correct WebAssembly memory
2197
+ /// semantics. Even with 64-bit address spaces, the address space is limited
2198
+ /// when dealing with a large number of linear memories.
2199
+ ///
2200
+ /// For example, on Linux x86_64, the userland address space limit is 128
2201
+ /// TiB. That might seem like a lot, but each linear memory will *reserve* 6
2202
+ /// GiB of space by default.
2203
+ pub fn total_memories(&mut self, count: u32) -> &mut Self {
2204
+ self.config.limits.total_memories = count;
2205
+ self
2206
+ }
2207
+
2208
+ /// The maximum number of concurrent tables supported (default is `1000`).
2209
+ ///
2210
+ /// This value has a direct impact on the amount of memory allocated by the
2211
+ /// pooling instance allocator.
2212
+ ///
2213
+ /// The pooling instance allocator allocates a table pool, where each entry
2214
+ /// in the pool contains the space needed for each WebAssembly table
2215
+ /// supported by an instance (see `table_elements` to control the size of
2216
+ /// each table).
2217
+ pub fn total_tables(&mut self, count: u32) -> &mut Self {
2218
+ self.config.limits.total_tables = count;
2219
+ self
2220
+ }
2221
+
2222
+ /// The maximum number of execution stacks allowed for asynchronous
2223
+ /// execution, when enabled (default is `1000`).
2224
+ ///
2225
+ /// This value has a direct impact on the amount of memory allocated by the
2226
+ /// pooling instance allocator.
2227
+ #[cfg(feature = "async")]
2228
+ pub fn total_stacks(&mut self, count: u32) -> &mut Self {
2229
+ self.config.limits.total_stacks = count;
2230
+ self
2231
+ }
2232
+
2233
+ /// The maximum number of concurrent core instances supported (default is
2234
+ /// `1000`).
2235
+ ///
2236
+ /// This provides an upper-bound on the total size of core instance
2237
+ /// metadata-related allocations, along with
2238
+ /// [`PoolingAllocationConfig::max_core_instance_size`]. The upper bound is
2239
+ ///
2240
+ /// ```text
2241
+ /// total_core_instances * max_core_instance_size
2242
+ /// ```
2243
+ ///
2244
+ /// where `max_core_instance_size` is rounded up to the size and alignment of
2245
+ /// the internal representation of the metadata.
2246
+ pub fn total_core_instances(&mut self, count: u32) -> &mut Self {
2247
+ self.config.limits.total_core_instances = count;
2248
+ self
2249
+ }
2250
+
2251
+ /// The maximum size, in bytes, allocated for a core instance's `VMContext`
2252
+ /// metadata.
2253
+ ///
2254
+ /// The [`Instance`][crate::Instance] type has a static size but its
2255
+ /// `VMContext` metadata is dynamically sized depending on the module being
2256
+ /// instantiated. This size limit loosely correlates to the size of the Wasm
2257
+ /// module, taking into account factors such as:
2258
+ ///
2259
+ /// * number of functions
2260
+ /// * number of globals
2261
+ /// * number of memories
2262
+ /// * number of tables
2263
+ /// * number of function types
2264
+ ///
2265
+ /// If the allocated size per instance is too small then instantiation of a
2266
+ /// module will fail at runtime with an error indicating how many bytes were
2267
+ /// needed.
2268
+ ///
2269
+ /// The default value for this is 1MiB.
2270
+ ///
2271
+ /// This provides an upper-bound on the total size of core instance
2272
+ /// metadata-related allocations, along with
2273
+ /// [`PoolingAllocationConfig::total_core_instances`]. The upper bound is
2274
+ ///
2275
+ /// ```text
2276
+ /// total_core_instances * max_core_instance_size
2277
+ /// ```
2278
+ ///
2279
+ /// where `max_core_instance_size` is rounded up to the size and alignment of
2280
+ /// the internal representation of the metadata.
2281
+ pub fn max_core_instance_size(&mut self, size: usize) -> &mut Self {
2282
+ self.config.limits.core_instance_size = size;
2283
+ self
2284
+ }
2285
+
2286
+ /// The maximum number of defined tables for a core module (default is `1`).
2287
+ ///
2288
+ /// This value controls the capacity of the `VMTableDefinition` table in
2289
+ /// each instance's `VMContext` structure.
2290
+ ///
2291
+ /// The allocated size of the table will be `tables *
2292
+ /// sizeof(VMTableDefinition)` for each instance regardless of how many
2293
+ /// tables are defined by an instance's module.
2294
+ pub fn max_tables_per_module(&mut self, tables: u32) -> &mut Self {
2295
+ self.config.limits.max_tables_per_module = tables;
2296
+ self
2297
+ }
2298
+
2299
+ /// The maximum table elements for any table defined in a module (default is
2300
+ /// `10000`).
2301
+ ///
2302
+ /// If a table's minimum element limit is greater than this value, the
2303
+ /// module will fail to instantiate.
2304
+ ///
2305
+ /// If a table's maximum element limit is unbounded or greater than this
2306
+ /// value, the maximum will be `table_elements` for the purpose of any
2307
+ /// `table.grow` instruction.
2308
+ ///
2309
+ /// This value is used to reserve the maximum space for each supported
2310
+ /// table; table elements are pointer-sized in the Wasmtime runtime.
2311
+ /// Therefore, the space reserved for each instance is `tables *
2312
+ /// table_elements * sizeof::<*const ()>`.
2313
+ pub fn table_elements(&mut self, elements: u32) -> &mut Self {
2314
+ self.config.limits.table_elements = elements;
2315
+ self
2316
+ }
2317
+
2318
+ /// The maximum number of defined linear memories for a module (default is
2319
+ /// `1`).
2320
+ ///
2321
+ /// This value controls the capacity of the `VMMemoryDefinition` table in
2322
+ /// each core instance's `VMContext` structure.
2323
+ ///
2324
+ /// The allocated size of the table will be `memories *
2325
+ /// sizeof(VMMemoryDefinition)` for each core instance regardless of how
2326
+ /// many memories are defined by the core instance's module.
2327
+ pub fn max_memories_per_module(&mut self, memories: u32) -> &mut Self {
2328
+ self.config.limits.max_memories_per_module = memories;
2329
+ self
2330
+ }
2331
+
2332
+ /// The maximum number of Wasm pages for any linear memory defined in a
2333
+ /// module (default is `160`).
2334
+ ///
2335
+ /// The default of `160` means at most 10 MiB of host memory may be
2336
+ /// committed for each instance.
2337
+ ///
2338
+ /// If a memory's minimum page limit is greater than this value, the module
2339
+ /// will fail to instantiate.
2340
+ ///
2341
+ /// If a memory's maximum page limit is unbounded or greater than this
2342
+ /// value, the maximum will be `memory_pages` for the purpose of any
2343
+ /// `memory.grow` instruction.
2344
+ ///
2345
+ /// This value is used to control the maximum accessible space for each
2346
+ /// linear memory of a core instance.
2347
+ ///
2348
+ /// The reservation size of each linear memory is controlled by the
2349
+ /// `static_memory_maximum_size` setting and this value cannot exceed the
2350
+ /// configured static memory maximum size.
2351
+ pub fn memory_pages(&mut self, pages: u64) -> &mut Self {
2352
+ self.config.limits.memory_pages = pages;
2353
+ self
2354
+ }
2355
+
2356
+ /// Configures whether memory protection keys (MPK) should be used for more
2357
+ /// efficient layout of pool-allocated memories.
2358
+ ///
2359
+ /// When using the pooling allocator (see [`Config::allocation_strategy`],
2360
+ /// [`InstanceAllocationStrategy::Pooling`]), memory protection keys can
2361
+ /// reduce the total amount of allocated virtual memory by eliminating guard
2362
+ /// regions between WebAssembly memories in the pool. It does so by
2363
+ /// "coloring" memory regions with different memory keys and setting which
2364
+ /// regions are accessible each time executions switches from host to guest
2365
+ /// (or vice versa).
2366
+ ///
2367
+ /// MPK is only available on Linux (called `pku` there) and recent x86
2368
+ /// systems; we check for MPK support at runtime by examining the `CPUID`
2369
+ /// register. This configuration setting can be in three states:
2370
+ ///
2371
+ /// - `auto`: if MPK support is available the guard regions are removed; if
2372
+ /// not, the guard regions remain
2373
+ /// - `enable`: use MPK to eliminate guard regions; fail if MPK is not
2374
+ /// supported
2375
+ /// - `disable`: never use MPK
2376
+ ///
2377
+ /// By default this value is `disabled`, but may become `auto` in future
2378
+ /// releases.
2379
+ ///
2380
+ /// __WARNING__: this configuration options is still experimental--use at
2381
+ /// your own risk! MPK uses kernel and CPU features to protect memory
2382
+ /// regions; you may observe segmentation faults if anything is
2383
+ /// misconfigured.
2384
+ pub fn memory_protection_keys(&mut self, enable: MpkEnabled) -> &mut Self {
2385
+ self.config.memory_protection_keys = enable;
2386
+ self
2387
+ }
2388
+
2389
+ /// Sets an upper limit on how many memory protection keys (MPK) Wasmtime
2390
+ /// will use.
2391
+ ///
2392
+ /// This setting is only applicable when
2393
+ /// [`PoolingAllocationConfig::memory_protection_keys`] is set to `enable`
2394
+ /// or `auto`. Configuring this above the HW and OS limits (typically 15)
2395
+ /// has no effect.
2396
+ ///
2397
+ /// If multiple Wasmtime engines are used in the same process, note that all
2398
+ /// engines will share the same set of allocated keys; this setting will
2399
+ /// limit how many keys are allocated initially and thus available to all
2400
+ /// other engines.
2401
+ pub fn max_memory_protection_keys(&mut self, max: usize) -> &mut Self {
2402
+ self.config.max_memory_protection_keys = max;
2403
+ self
2404
+ }
2405
+
2406
+ /// Check if memory protection keys (MPK) are available on the current host.
2407
+ ///
2408
+ /// This is a convenience method for determining MPK availability using the
2409
+ /// same method that [`MpkEnabled::Auto`] does. See
2410
+ /// [`PoolingAllocationConfig::memory_protection_keys`] for more
2411
+ /// information.
2412
+ pub fn are_memory_protection_keys_available() -> bool {
2413
+ mpk::is_supported()
2414
+ }
2415
+ }
2416
+
2417
+ pub(crate) fn probestack_supported(arch: Architecture) -> bool {
2418
+ matches!(
2419
+ arch,
2420
+ Architecture::X86_64 | Architecture::Aarch64(_) | Architecture::Riscv64(_)
2421
+ )
2422
+ }