wasmtime 15.0.1 → 16.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1212) hide show
  1. checksums.yaml +4 -4
  2. data/Cargo.lock +83 -103
  3. data/ext/Cargo.toml +6 -6
  4. data/ext/cargo-vendor/cranelift-bforest-0.103.0/.cargo-checksum.json +1 -0
  5. data/ext/cargo-vendor/cranelift-bforest-0.103.0/Cargo.toml +40 -0
  6. data/ext/cargo-vendor/cranelift-bforest-0.103.0/src/lib.rs +183 -0
  7. data/ext/cargo-vendor/cranelift-codegen-0.103.0/.cargo-checksum.json +1 -0
  8. data/ext/cargo-vendor/cranelift-codegen-0.103.0/Cargo.toml +175 -0
  9. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/binemit/mod.rs +171 -0
  10. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/cost.rs +171 -0
  11. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph/elaborate.rs +750 -0
  12. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/egraph.rs +703 -0
  13. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/dfg.rs +1735 -0
  14. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/ir/pcc.rs +1682 -0
  15. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/aarch64/lower/isle.rs +874 -0
  16. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst/mod.rs +2041 -0
  17. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/inst.isle +2928 -0
  18. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/riscv64/lower.isle +2864 -0
  19. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/s390x/lower/isle.rs +1029 -0
  20. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/lower/isle.rs +1064 -0
  21. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isa/x64/pcc.rs +916 -0
  22. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/isle_prelude.rs +977 -0
  23. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/lib.rs +106 -0
  24. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/machinst/isle.rs +896 -0
  25. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/arithmetic.isle +152 -0
  26. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/cprop.isle +237 -0
  27. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/icmp.isle +199 -0
  28. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts/selects.isle +76 -0
  29. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/opts.rs +172 -0
  30. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/prelude.isle +649 -0
  31. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/timing.rs +297 -0
  32. data/ext/cargo-vendor/cranelift-codegen-0.103.0/src/unionfind.rs +75 -0
  33. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/.cargo-checksum.json +1 -0
  34. data/ext/cargo-vendor/cranelift-codegen-meta-0.103.0/Cargo.toml +35 -0
  35. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/.cargo-checksum.json +1 -0
  36. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/Cargo.toml +22 -0
  37. data/ext/cargo-vendor/cranelift-codegen-shared-0.103.0/src/lib.rs +10 -0
  38. data/ext/cargo-vendor/cranelift-control-0.103.0/.cargo-checksum.json +1 -0
  39. data/ext/cargo-vendor/cranelift-control-0.103.0/Cargo.toml +30 -0
  40. data/ext/cargo-vendor/cranelift-entity-0.103.0/.cargo-checksum.json +1 -0
  41. data/ext/cargo-vendor/cranelift-entity-0.103.0/Cargo.toml +50 -0
  42. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/lib.rs +317 -0
  43. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/primary.rs +516 -0
  44. data/ext/cargo-vendor/cranelift-entity-0.103.0/src/unsigned.rs +71 -0
  45. data/ext/cargo-vendor/cranelift-frontend-0.103.0/.cargo-checksum.json +1 -0
  46. data/ext/cargo-vendor/cranelift-frontend-0.103.0/Cargo.toml +68 -0
  47. data/ext/cargo-vendor/cranelift-frontend-0.103.0/src/lib.rs +189 -0
  48. data/ext/cargo-vendor/cranelift-isle-0.103.0/.cargo-checksum.json +1 -0
  49. data/ext/cargo-vendor/cranelift-isle-0.103.0/Cargo.toml +46 -0
  50. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_constructor_main.rs +88 -0
  51. data/ext/cargo-vendor/cranelift-isle-0.103.0/isle_examples/link/multi_extractor_main.rs +63 -0
  52. data/ext/cargo-vendor/cranelift-isle-0.103.0/src/codegen.rs +886 -0
  53. data/ext/cargo-vendor/cranelift-native-0.103.0/.cargo-checksum.json +1 -0
  54. data/ext/cargo-vendor/cranelift-native-0.103.0/Cargo.toml +43 -0
  55. data/ext/cargo-vendor/cranelift-native-0.103.0/src/lib.rs +184 -0
  56. data/ext/cargo-vendor/cranelift-wasm-0.103.0/.cargo-checksum.json +1 -0
  57. data/ext/cargo-vendor/cranelift-wasm-0.103.0/Cargo.toml +106 -0
  58. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/environ/dummy.rs +953 -0
  59. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/lib.rs +62 -0
  60. data/ext/cargo-vendor/cranelift-wasm-0.103.0/src/translation_utils.rs +89 -0
  61. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/.cargo-checksum.json +1 -0
  62. data/ext/cargo-vendor/wasi-cap-std-sync-16.0.0/Cargo.toml +102 -0
  63. data/ext/cargo-vendor/wasi-common-16.0.0/.cargo-checksum.json +1 -0
  64. data/ext/cargo-vendor/wasi-common-16.0.0/Cargo.toml +131 -0
  65. data/ext/cargo-vendor/wasi-common-16.0.0/src/lib.rs +76 -0
  66. data/ext/cargo-vendor/wasi-common-16.0.0/src/snapshots/preview_1.rs +1492 -0
  67. data/ext/cargo-vendor/wasmtime-16.0.0/.cargo-checksum.json +1 -0
  68. data/ext/cargo-vendor/wasmtime-16.0.0/Cargo.toml +211 -0
  69. data/ext/cargo-vendor/wasmtime-16.0.0/src/compiler.rs +682 -0
  70. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/component.rs +505 -0
  71. data/ext/cargo-vendor/wasmtime-16.0.0/src/component/func/typed.rs +2400 -0
  72. data/ext/cargo-vendor/wasmtime-16.0.0/src/config.rs +2422 -0
  73. data/ext/cargo-vendor/wasmtime-16.0.0/src/func.rs +2391 -0
  74. data/ext/cargo-vendor/wasmtime-16.0.0/src/lib.rs +520 -0
  75. data/ext/cargo-vendor/wasmtime-16.0.0/src/memory.rs +998 -0
  76. data/ext/cargo-vendor/wasmtime-16.0.0/src/module.rs +1370 -0
  77. data/ext/cargo-vendor/wasmtime-16.0.0/src/stack.rs +73 -0
  78. data/ext/cargo-vendor/wasmtime-16.0.0/src/v128.rs +122 -0
  79. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/.cargo-checksum.json +1 -0
  80. data/ext/cargo-vendor/wasmtime-asm-macros-16.0.0/Cargo.toml +22 -0
  81. data/ext/cargo-vendor/wasmtime-cache-16.0.0/.cargo-checksum.json +1 -0
  82. data/ext/cargo-vendor/wasmtime-cache-16.0.0/Cargo.toml +81 -0
  83. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/lib.rs +235 -0
  84. data/ext/cargo-vendor/wasmtime-cache-16.0.0/src/worker.rs +890 -0
  85. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/.cargo-checksum.json +1 -0
  86. data/ext/cargo-vendor/wasmtime-component-macro-16.0.0/Cargo.toml +67 -0
  87. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/.cargo-checksum.json +1 -0
  88. data/ext/cargo-vendor/wasmtime-component-util-16.0.0/Cargo.toml +25 -0
  89. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/.cargo-checksum.json +1 -0
  90. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/Cargo.toml +112 -0
  91. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler/component.rs +959 -0
  92. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/compiler.rs +1317 -0
  93. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/expression.rs +1252 -0
  94. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug/transform/simulate.rs +410 -0
  95. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/debug.rs +18 -0
  96. data/ext/cargo-vendor/wasmtime-cranelift-16.0.0/src/func_environ.rs +2750 -0
  97. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/.cargo-checksum.json +1 -0
  98. data/ext/cargo-vendor/wasmtime-cranelift-shared-16.0.0/Cargo.toml +71 -0
  99. data/ext/cargo-vendor/wasmtime-environ-16.0.0/.cargo-checksum.json +1 -0
  100. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.lock +660 -0
  101. data/ext/cargo-vendor/wasmtime-environ-16.0.0/Cargo.toml +125 -0
  102. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/compilation.rs +402 -0
  103. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/compiler.rs +47 -0
  104. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/translate.rs +951 -0
  105. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/component/types.rs +1876 -0
  106. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/lib.rs +59 -0
  107. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module.rs +1075 -0
  108. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_environ.rs +892 -0
  109. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/module_types.rs +120 -0
  110. data/ext/cargo-vendor/wasmtime-environ-16.0.0/src/scopevec.rs +78 -0
  111. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/.cargo-checksum.json +1 -0
  112. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/Cargo.toml +63 -0
  113. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/lib.rs +328 -0
  114. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/unix.rs +265 -0
  115. data/ext/cargo-vendor/wasmtime-fiber-16.0.0/src/windows.c +9 -0
  116. data/ext/cargo-vendor/wasmtime-jit-16.0.0/.cargo-checksum.json +1 -0
  117. data/ext/cargo-vendor/wasmtime-jit-16.0.0/Cargo.toml +125 -0
  118. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/code_memory.rs +319 -0
  119. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/instantiate.rs +772 -0
  120. data/ext/cargo-vendor/wasmtime-jit-16.0.0/src/lib.rs +21 -0
  121. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/.cargo-checksum.json +1 -0
  122. data/ext/cargo-vendor/wasmtime-jit-debug-16.0.0/Cargo.toml +67 -0
  123. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/.cargo-checksum.json +1 -0
  124. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-16.0.0/Cargo.toml +46 -0
  125. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/.cargo-checksum.json +1 -0
  126. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/Cargo.toml +139 -0
  127. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/build.rs +28 -0
  128. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/proptest-regressions/instance/allocator/pooling/memory_pool.txt +9 -0
  129. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/aarch64.rs +120 -0
  130. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/mod.rs +32 -0
  131. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/riscv64.rs +88 -0
  132. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/s390x.rs +61 -0
  133. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/arch/x86_64.rs +106 -0
  134. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/cow.rs +888 -0
  135. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/helpers.c +113 -0
  136. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/memory_pool.rs +1005 -0
  137. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/stack_pool.rs +242 -0
  138. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling/table_pool.rs +227 -0
  139. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/instance/allocator/pooling.rs +698 -0
  140. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/lib.rs +264 -0
  141. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/libcalls.rs +776 -0
  142. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mmap.rs +214 -0
  143. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/enabled.rs +204 -0
  144. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/mpk/pkru.rs +102 -0
  145. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/mod.rs +10 -0
  146. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/traphandlers.rs +42 -0
  147. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/unwind.rs +17 -0
  148. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/miri/vm.rs +63 -0
  149. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/mod.rs +30 -0
  150. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/machports.rs +487 -0
  151. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/macos_traphandlers.rs +28 -0
  152. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/mod.rs +21 -0
  153. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/signals.rs +402 -0
  154. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/unwind.rs +91 -0
  155. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/unix/vm.rs +208 -0
  156. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/mod.rs +6 -0
  157. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/traphandlers.rs +105 -0
  158. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/unwind.rs +46 -0
  159. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/sys/windows/vm.rs +79 -0
  160. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers/backtrace.rs +265 -0
  161. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/traphandlers.rs +733 -0
  162. data/ext/cargo-vendor/wasmtime-runtime-16.0.0/src/vmcontext.rs +1197 -0
  163. data/ext/cargo-vendor/wasmtime-types-16.0.0/.cargo-checksum.json +1 -0
  164. data/ext/cargo-vendor/wasmtime-types-16.0.0/Cargo.toml +36 -0
  165. data/ext/cargo-vendor/wasmtime-types-16.0.0/src/lib.rs +504 -0
  166. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/.cargo-checksum.json +1 -0
  167. data/ext/cargo-vendor/wasmtime-versioned-export-macros-16.0.0/Cargo.toml +32 -0
  168. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/.cargo-checksum.json +1 -0
  169. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/Cargo.toml +261 -0
  170. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/lib.rs +137 -0
  171. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/io.rs +368 -0
  172. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/network.rs +570 -0
  173. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/tcp.rs +632 -0
  174. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/host/udp.rs +550 -0
  175. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/mod.rs +328 -0
  176. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview0.rs +870 -0
  177. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/preview1.rs +2348 -0
  178. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stdio.rs +259 -0
  179. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/stream.rs +182 -0
  180. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/src/preview2/table.rs +337 -0
  181. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/api.rs +218 -0
  182. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/async_.rs +360 -0
  183. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/main.rs +113 -0
  184. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/preview1.rs +239 -0
  185. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/all/sync.rs +299 -0
  186. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/tests/process_stdin.rs +165 -0
  187. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/command-extended.wit +6 -0
  188. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/command.wit +7 -0
  189. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/cli/imports.wit +20 -0
  190. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/proxy.wit +32 -0
  191. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/deps/http/types.wit +570 -0
  192. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/wit/test.wit +22 -0
  193. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/typenames.witx +746 -0
  194. data/ext/cargo-vendor/wasmtime-wasi-16.0.0/witx/preview0/wasi_unstable.witx +513 -0
  195. data/ext/cargo-vendor/wasmtime-winch-16.0.0/.cargo-checksum.json +1 -0
  196. data/ext/cargo-vendor/wasmtime-winch-16.0.0/Cargo.toml +77 -0
  197. data/ext/cargo-vendor/wasmtime-winch-16.0.0/src/compiler.rs +243 -0
  198. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/.cargo-checksum.json +1 -0
  199. data/ext/cargo-vendor/wasmtime-wit-bindgen-16.0.0/Cargo.toml +41 -0
  200. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/.cargo-checksum.json +1 -0
  201. data/ext/cargo-vendor/wasmtime-wmemcheck-16.0.0/Cargo.toml +29 -0
  202. data/ext/cargo-vendor/wiggle-16.0.0/.cargo-checksum.json +1 -0
  203. data/ext/cargo-vendor/wiggle-16.0.0/Cargo.toml +115 -0
  204. data/ext/cargo-vendor/wiggle-16.0.0/src/lib.rs +1198 -0
  205. data/ext/cargo-vendor/wiggle-generate-16.0.0/.cargo-checksum.json +1 -0
  206. data/ext/cargo-vendor/wiggle-generate-16.0.0/Cargo.toml +65 -0
  207. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/handle.rs +84 -0
  208. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/record.rs +132 -0
  209. data/ext/cargo-vendor/wiggle-generate-16.0.0/src/types/variant.rs +191 -0
  210. data/ext/cargo-vendor/wiggle-macro-16.0.0/.cargo-checksum.json +1 -0
  211. data/ext/cargo-vendor/wiggle-macro-16.0.0/Cargo.toml +55 -0
  212. data/ext/cargo-vendor/winch-codegen-0.14.0/.cargo-checksum.json +1 -0
  213. data/ext/cargo-vendor/winch-codegen-0.14.0/Cargo.toml +76 -0
  214. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/local.rs +81 -0
  215. data/ext/cargo-vendor/winch-codegen-0.14.0/src/abi/mod.rs +614 -0
  216. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/call.rs +345 -0
  217. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/context.rs +545 -0
  218. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/control.rs +497 -0
  219. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/env.rs +251 -0
  220. data/ext/cargo-vendor/winch-codegen-0.14.0/src/codegen/mod.rs +428 -0
  221. data/ext/cargo-vendor/winch-codegen-0.14.0/src/frame/mod.rs +221 -0
  222. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/abi.rs +313 -0
  223. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/masm.rs +444 -0
  224. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/aarch64/mod.rs +137 -0
  225. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/mod.rs +225 -0
  226. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/abi.rs +524 -0
  227. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/asm.rs +1117 -0
  228. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/masm.rs +994 -0
  229. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/mod.rs +172 -0
  230. data/ext/cargo-vendor/winch-codegen-0.14.0/src/isa/x64/regs.rs +247 -0
  231. data/ext/cargo-vendor/winch-codegen-0.14.0/src/masm.rs +679 -0
  232. data/ext/cargo-vendor/winch-codegen-0.14.0/src/stack.rs +436 -0
  233. data/ext/cargo-vendor/winch-codegen-0.14.0/src/trampoline.rs +734 -0
  234. data/ext/cargo-vendor/winch-codegen-0.14.0/src/visitor.rs +1383 -0
  235. data/lib/wasmtime/version.rb +1 -1
  236. metadata +903 -977
  237. data/ext/cargo-vendor/cranelift-bforest-0.102.1/.cargo-checksum.json +0 -1
  238. data/ext/cargo-vendor/cranelift-bforest-0.102.1/Cargo.toml +0 -31
  239. data/ext/cargo-vendor/cranelift-bforest-0.102.1/src/lib.rs +0 -184
  240. data/ext/cargo-vendor/cranelift-codegen-0.102.1/.cargo-checksum.json +0 -1
  241. data/ext/cargo-vendor/cranelift-codegen-0.102.1/Cargo.toml +0 -164
  242. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/binemit/mod.rs +0 -171
  243. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/cost.rs +0 -91
  244. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph/elaborate.rs +0 -731
  245. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/egraph.rs +0 -678
  246. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/dfg.rs +0 -1730
  247. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/ir/pcc.rs +0 -1682
  248. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/aarch64/lower/isle.rs +0 -875
  249. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst/mod.rs +0 -2041
  250. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/inst.isle +0 -2909
  251. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/riscv64/lower.isle +0 -2860
  252. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/s390x/lower/isle.rs +0 -1029
  253. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/lower/isle.rs +0 -1070
  254. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isa/x64/pcc.rs +0 -884
  255. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/isle_prelude.rs +0 -972
  256. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/lib.rs +0 -108
  257. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/machinst/isle.rs +0 -897
  258. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/arithmetic.isle +0 -128
  259. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/cprop.isle +0 -210
  260. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/icmp.isle +0 -177
  261. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts/selects.isle +0 -59
  262. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/opts.rs +0 -138
  263. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/prelude.isle +0 -646
  264. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/timing.rs +0 -271
  265. data/ext/cargo-vendor/cranelift-codegen-0.102.1/src/unionfind.rs +0 -74
  266. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/.cargo-checksum.json +0 -1
  267. data/ext/cargo-vendor/cranelift-codegen-meta-0.102.1/Cargo.toml +0 -26
  268. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/.cargo-checksum.json +0 -1
  269. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/Cargo.toml +0 -22
  270. data/ext/cargo-vendor/cranelift-codegen-shared-0.102.1/src/lib.rs +0 -12
  271. data/ext/cargo-vendor/cranelift-control-0.102.1/.cargo-checksum.json +0 -1
  272. data/ext/cargo-vendor/cranelift-control-0.102.1/Cargo.toml +0 -30
  273. data/ext/cargo-vendor/cranelift-entity-0.102.1/.cargo-checksum.json +0 -1
  274. data/ext/cargo-vendor/cranelift-entity-0.102.1/Cargo.toml +0 -41
  275. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/lib.rs +0 -316
  276. data/ext/cargo-vendor/cranelift-entity-0.102.1/src/primary.rs +0 -456
  277. data/ext/cargo-vendor/cranelift-frontend-0.102.1/.cargo-checksum.json +0 -1
  278. data/ext/cargo-vendor/cranelift-frontend-0.102.1/Cargo.toml +0 -59
  279. data/ext/cargo-vendor/cranelift-frontend-0.102.1/src/lib.rs +0 -191
  280. data/ext/cargo-vendor/cranelift-isle-0.102.1/.cargo-checksum.json +0 -1
  281. data/ext/cargo-vendor/cranelift-isle-0.102.1/Cargo.toml +0 -37
  282. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_constructor_main.rs +0 -71
  283. data/ext/cargo-vendor/cranelift-isle-0.102.1/isle_examples/link/multi_extractor_main.rs +0 -50
  284. data/ext/cargo-vendor/cranelift-isle-0.102.1/src/codegen.rs +0 -763
  285. data/ext/cargo-vendor/cranelift-native-0.102.1/.cargo-checksum.json +0 -1
  286. data/ext/cargo-vendor/cranelift-native-0.102.1/Cargo.toml +0 -43
  287. data/ext/cargo-vendor/cranelift-native-0.102.1/src/lib.rs +0 -190
  288. data/ext/cargo-vendor/cranelift-wasm-0.102.1/.cargo-checksum.json +0 -1
  289. data/ext/cargo-vendor/cranelift-wasm-0.102.1/Cargo.toml +0 -97
  290. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/environ/dummy.rs +0 -953
  291. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/lib.rs +0 -64
  292. data/ext/cargo-vendor/cranelift-wasm-0.102.1/src/translation_utils.rs +0 -97
  293. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/.cargo-checksum.json +0 -1
  294. data/ext/cargo-vendor/wasi-cap-std-sync-15.0.1/Cargo.toml +0 -93
  295. data/ext/cargo-vendor/wasi-common-15.0.1/.cargo-checksum.json +0 -1
  296. data/ext/cargo-vendor/wasi-common-15.0.1/Cargo.toml +0 -122
  297. data/ext/cargo-vendor/wasi-common-15.0.1/src/lib.rs +0 -73
  298. data/ext/cargo-vendor/wasi-common-15.0.1/src/snapshots/preview_1.rs +0 -1490
  299. data/ext/cargo-vendor/wasm-encoder-0.36.2/.cargo-checksum.json +0 -1
  300. data/ext/cargo-vendor/wasm-encoder-0.36.2/Cargo.toml +0 -37
  301. data/ext/cargo-vendor/wasm-encoder-0.36.2/README.md +0 -80
  302. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/aliases.rs +0 -160
  303. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/builder.rs +0 -455
  304. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/canonicals.rs +0 -159
  305. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/components.rs +0 -29
  306. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/exports.rs +0 -124
  307. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/imports.rs +0 -175
  308. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/instances.rs +0 -200
  309. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/modules.rs +0 -29
  310. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/names.rs +0 -149
  311. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/start.rs +0 -52
  312. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component/types.rs +0 -771
  313. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/component.rs +0 -168
  314. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/code.rs +0 -2989
  315. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/custom.rs +0 -73
  316. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/data.rs +0 -185
  317. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/dump.rs +0 -627
  318. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/elements.rs +0 -220
  319. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/exports.rs +0 -98
  320. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/functions.rs +0 -63
  321. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/globals.rs +0 -100
  322. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/imports.rs +0 -155
  323. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/linking.rs +0 -263
  324. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/memories.rs +0 -111
  325. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/names.rs +0 -265
  326. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/producers.rs +0 -180
  327. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/start.rs +0 -39
  328. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tables.rs +0 -115
  329. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/tags.rs +0 -104
  330. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core/types.rs +0 -584
  331. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/core.rs +0 -168
  332. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/lib.rs +0 -215
  333. data/ext/cargo-vendor/wasm-encoder-0.36.2/src/raw.rs +0 -30
  334. data/ext/cargo-vendor/wasmparser-0.116.1/.cargo-checksum.json +0 -1
  335. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.lock +0 -674
  336. data/ext/cargo-vendor/wasmparser-0.116.1/Cargo.toml +0 -60
  337. data/ext/cargo-vendor/wasmparser-0.116.1/README.md +0 -36
  338. data/ext/cargo-vendor/wasmparser-0.116.1/benches/benchmark.rs +0 -370
  339. data/ext/cargo-vendor/wasmparser-0.116.1/examples/simple.rs +0 -37
  340. data/ext/cargo-vendor/wasmparser-0.116.1/src/binary_reader.rs +0 -1706
  341. data/ext/cargo-vendor/wasmparser-0.116.1/src/define_types.rs +0 -782
  342. data/ext/cargo-vendor/wasmparser-0.116.1/src/lib.rs +0 -729
  343. data/ext/cargo-vendor/wasmparser-0.116.1/src/limits.rs +0 -58
  344. data/ext/cargo-vendor/wasmparser-0.116.1/src/parser.rs +0 -1612
  345. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/aliases.rs +0 -119
  346. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/canonicals.rs +0 -120
  347. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/exports.rs +0 -135
  348. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/imports.rs +0 -129
  349. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/instances.rs +0 -163
  350. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/names.rs +0 -102
  351. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/start.rs +0 -30
  352. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component/types.rs +0 -549
  353. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/component.rs +0 -17
  354. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/code.rs +0 -146
  355. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/coredumps.rs +0 -243
  356. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/custom.rs +0 -63
  357. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/data.rs +0 -96
  358. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/dylink0.rs +0 -132
  359. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/elements.rs +0 -152
  360. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/exports.rs +0 -65
  361. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/functions.rs +0 -17
  362. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/globals.rs +0 -49
  363. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/imports.rs +0 -76
  364. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/init.rs +0 -51
  365. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/memories.rs +0 -56
  366. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/names.rs +0 -153
  367. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/operators.rs +0 -354
  368. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/producers.rs +0 -83
  369. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tables.rs +0 -87
  370. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/tags.rs +0 -32
  371. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core/types.rs +0 -544
  372. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers/core.rs +0 -37
  373. data/ext/cargo-vendor/wasmparser-0.116.1/src/readers.rs +0 -316
  374. data/ext/cargo-vendor/wasmparser-0.116.1/src/resources.rs +0 -398
  375. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/component.rs +0 -3203
  376. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/core.rs +0 -1341
  377. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/func.rs +0 -348
  378. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/names.rs +0 -859
  379. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/operators.rs +0 -3466
  380. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator/types.rs +0 -4011
  381. data/ext/cargo-vendor/wasmparser-0.116.1/src/validator.rs +0 -1603
  382. data/ext/cargo-vendor/wasmparser-0.116.1/tests/big-module.rs +0 -33
  383. data/ext/cargo-vendor/wasmtime-15.0.1/.cargo-checksum.json +0 -1
  384. data/ext/cargo-vendor/wasmtime-15.0.1/Cargo.toml +0 -202
  385. data/ext/cargo-vendor/wasmtime-15.0.1/src/compiler.rs +0 -682
  386. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/component.rs +0 -505
  387. data/ext/cargo-vendor/wasmtime-15.0.1/src/component/func/typed.rs +0 -2398
  388. data/ext/cargo-vendor/wasmtime-15.0.1/src/config.rs +0 -2422
  389. data/ext/cargo-vendor/wasmtime-15.0.1/src/func.rs +0 -2428
  390. data/ext/cargo-vendor/wasmtime-15.0.1/src/lib.rs +0 -518
  391. data/ext/cargo-vendor/wasmtime-15.0.1/src/memory.rs +0 -996
  392. data/ext/cargo-vendor/wasmtime-15.0.1/src/module.rs +0 -1370
  393. data/ext/cargo-vendor/wasmtime-15.0.1/src/stack.rs +0 -73
  394. data/ext/cargo-vendor/wasmtime-15.0.1/src/v128.rs +0 -151
  395. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/.cargo-checksum.json +0 -1
  396. data/ext/cargo-vendor/wasmtime-asm-macros-15.0.1/Cargo.toml +0 -22
  397. data/ext/cargo-vendor/wasmtime-cache-15.0.1/.cargo-checksum.json +0 -1
  398. data/ext/cargo-vendor/wasmtime-cache-15.0.1/Cargo.toml +0 -72
  399. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/lib.rs +0 -238
  400. data/ext/cargo-vendor/wasmtime-cache-15.0.1/src/worker.rs +0 -894
  401. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/.cargo-checksum.json +0 -1
  402. data/ext/cargo-vendor/wasmtime-component-macro-15.0.1/Cargo.toml +0 -58
  403. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/.cargo-checksum.json +0 -1
  404. data/ext/cargo-vendor/wasmtime-component-util-15.0.1/Cargo.toml +0 -25
  405. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/.cargo-checksum.json +0 -1
  406. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/Cargo.toml +0 -103
  407. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler/component.rs +0 -959
  408. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/compiler.rs +0 -1317
  409. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/expression.rs +0 -1250
  410. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug/transform/simulate.rs +0 -410
  411. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/debug.rs +0 -18
  412. data/ext/cargo-vendor/wasmtime-cranelift-15.0.1/src/func_environ.rs +0 -2746
  413. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/.cargo-checksum.json +0 -1
  414. data/ext/cargo-vendor/wasmtime-cranelift-shared-15.0.1/Cargo.toml +0 -62
  415. data/ext/cargo-vendor/wasmtime-environ-15.0.1/.cargo-checksum.json +0 -1
  416. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.lock +0 -677
  417. data/ext/cargo-vendor/wasmtime-environ-15.0.1/Cargo.toml +0 -116
  418. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/compilation.rs +0 -402
  419. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/compiler.rs +0 -47
  420. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/translate.rs +0 -951
  421. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/component/types.rs +0 -1870
  422. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/lib.rs +0 -59
  423. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module.rs +0 -1083
  424. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_environ.rs +0 -876
  425. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/module_types.rs +0 -78
  426. data/ext/cargo-vendor/wasmtime-environ-15.0.1/src/scopevec.rs +0 -57
  427. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/.cargo-checksum.json +0 -1
  428. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/Cargo.toml +0 -54
  429. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/lib.rs +0 -327
  430. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/unix.rs +0 -265
  431. data/ext/cargo-vendor/wasmtime-fiber-15.0.1/src/windows.c +0 -9
  432. data/ext/cargo-vendor/wasmtime-jit-15.0.1/.cargo-checksum.json +0 -1
  433. data/ext/cargo-vendor/wasmtime-jit-15.0.1/Cargo.toml +0 -115
  434. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/code_memory.rs +0 -321
  435. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/instantiate.rs +0 -766
  436. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/lib.rs +0 -22
  437. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/miri.rs +0 -15
  438. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/systemv.rs +0 -90
  439. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind/winx64.rs +0 -44
  440. data/ext/cargo-vendor/wasmtime-jit-15.0.1/src/unwind.rs +0 -14
  441. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/.cargo-checksum.json +0 -1
  442. data/ext/cargo-vendor/wasmtime-jit-debug-15.0.1/Cargo.toml +0 -58
  443. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/.cargo-checksum.json +0 -1
  444. data/ext/cargo-vendor/wasmtime-jit-icache-coherence-15.0.1/Cargo.toml +0 -37
  445. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/.cargo-checksum.json +0 -1
  446. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/Cargo.toml +0 -126
  447. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/build.rs +0 -19
  448. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/proptest-regressions/instance/allocator/pooling/memory_pool.txt +0 -8
  449. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/cow.rs +0 -1060
  450. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/helpers.c +0 -108
  451. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/memory_pool.rs +0 -999
  452. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/stack_pool.rs +0 -242
  453. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/table_pool.rs +0 -225
  454. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/unix.rs +0 -56
  455. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling/windows.rs +0 -38
  456. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/instance/allocator/pooling.rs +0 -708
  457. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/lib.rs +0 -279
  458. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/libcalls.rs +0 -775
  459. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mmap.rs +0 -226
  460. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/enabled.rs +0 -201
  461. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/mpk/pkru.rs +0 -93
  462. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/aarch64.rs +0 -42
  463. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/riscv64.rs +0 -45
  464. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/s390x.rs +0 -25
  465. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines/x86_64.rs +0 -64
  466. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/trampolines.rs +0 -19
  467. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/aarch64.rs +0 -55
  468. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/riscv64.rs +0 -18
  469. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/s390x.rs +0 -22
  470. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace/x86_64.rs +0 -20
  471. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/backtrace.rs +0 -291
  472. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/macos.rs +0 -492
  473. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/unix.rs +0 -402
  474. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers/windows.rs +0 -89
  475. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/traphandlers.rs +0 -815
  476. data/ext/cargo-vendor/wasmtime-runtime-15.0.1/src/vmcontext.rs +0 -1197
  477. data/ext/cargo-vendor/wasmtime-types-15.0.1/.cargo-checksum.json +0 -1
  478. data/ext/cargo-vendor/wasmtime-types-15.0.1/Cargo.toml +0 -36
  479. data/ext/cargo-vendor/wasmtime-types-15.0.1/src/lib.rs +0 -504
  480. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/.cargo-checksum.json +0 -1
  481. data/ext/cargo-vendor/wasmtime-versioned-export-macros-15.0.1/Cargo.toml +0 -32
  482. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/.cargo-checksum.json +0 -1
  483. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/Cargo.toml +0 -248
  484. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/lib.rs +0 -135
  485. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/io.rs +0 -368
  486. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/network.rs +0 -515
  487. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/tcp.rs +0 -630
  488. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/host/udp.rs +0 -543
  489. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/mod.rs +0 -326
  490. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/preview1.rs +0 -2342
  491. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stdio.rs +0 -450
  492. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/stream.rs +0 -182
  493. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/src/preview2/table.rs +0 -258
  494. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/command-extended.wit +0 -6
  495. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/command.wit +0 -7
  496. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/cli/reactor.wit +0 -31
  497. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/proxy.wit +0 -33
  498. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/deps/http/types.wit +0 -559
  499. data/ext/cargo-vendor/wasmtime-wasi-15.0.1/wit/test.wit +0 -22
  500. data/ext/cargo-vendor/wasmtime-winch-15.0.1/.cargo-checksum.json +0 -1
  501. data/ext/cargo-vendor/wasmtime-winch-15.0.1/Cargo.toml +0 -68
  502. data/ext/cargo-vendor/wasmtime-winch-15.0.1/src/compiler.rs +0 -242
  503. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/.cargo-checksum.json +0 -1
  504. data/ext/cargo-vendor/wasmtime-wit-bindgen-15.0.1/Cargo.toml +0 -32
  505. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/.cargo-checksum.json +0 -1
  506. data/ext/cargo-vendor/wasmtime-wmemcheck-15.0.1/Cargo.toml +0 -22
  507. data/ext/cargo-vendor/wiggle-15.0.1/.cargo-checksum.json +0 -1
  508. data/ext/cargo-vendor/wiggle-15.0.1/Cargo.toml +0 -106
  509. data/ext/cargo-vendor/wiggle-15.0.1/src/lib.rs +0 -1198
  510. data/ext/cargo-vendor/wiggle-generate-15.0.1/.cargo-checksum.json +0 -1
  511. data/ext/cargo-vendor/wiggle-generate-15.0.1/Cargo.toml +0 -58
  512. data/ext/cargo-vendor/wiggle-generate-15.0.1/LICENSE +0 -220
  513. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/handle.rs +0 -84
  514. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/record.rs +0 -132
  515. data/ext/cargo-vendor/wiggle-generate-15.0.1/src/types/variant.rs +0 -191
  516. data/ext/cargo-vendor/wiggle-macro-15.0.1/.cargo-checksum.json +0 -1
  517. data/ext/cargo-vendor/wiggle-macro-15.0.1/Cargo.toml +0 -55
  518. data/ext/cargo-vendor/wiggle-macro-15.0.1/LICENSE +0 -220
  519. data/ext/cargo-vendor/winch-codegen-0.13.1/.cargo-checksum.json +0 -1
  520. data/ext/cargo-vendor/winch-codegen-0.13.1/Cargo.toml +0 -67
  521. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/local.rs +0 -70
  522. data/ext/cargo-vendor/winch-codegen-0.13.1/src/abi/mod.rs +0 -304
  523. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/call.rs +0 -353
  524. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/context.rs +0 -465
  525. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/control.rs +0 -456
  526. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/env.rs +0 -181
  527. data/ext/cargo-vendor/winch-codegen-0.13.1/src/codegen/mod.rs +0 -436
  528. data/ext/cargo-vendor/winch-codegen-0.13.1/src/frame/mod.rs +0 -189
  529. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/abi.rs +0 -267
  530. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/masm.rs +0 -436
  531. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/aarch64/mod.rs +0 -136
  532. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/mod.rs +0 -218
  533. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/abi.rs +0 -410
  534. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/asm.rs +0 -1106
  535. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/masm.rs +0 -953
  536. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/mod.rs +0 -172
  537. data/ext/cargo-vendor/winch-codegen-0.13.1/src/isa/x64/regs.rs +0 -247
  538. data/ext/cargo-vendor/winch-codegen-0.13.1/src/masm.rs +0 -592
  539. data/ext/cargo-vendor/winch-codegen-0.13.1/src/stack.rs +0 -366
  540. data/ext/cargo-vendor/winch-codegen-0.13.1/src/trampoline.rs +0 -489
  541. data/ext/cargo-vendor/winch-codegen-0.13.1/src/visitor.rs +0 -1339
  542. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/LICENSE +0 -0
  543. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/README.md +0 -0
  544. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/map.rs +0 -0
  545. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/node.rs +0 -0
  546. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/path.rs +0 -0
  547. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/pool.rs +0 -0
  548. /data/ext/cargo-vendor/{cranelift-bforest-0.102.1 → cranelift-bforest-0.103.0}/src/set.rs +0 -0
  549. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/LICENSE +0 -0
  550. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/README.md +0 -0
  551. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/benches/x64-evex-encoding.rs +0 -0
  552. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/build.rs +0 -0
  553. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/alias_analysis.rs +0 -0
  554. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/binemit/stack_map.rs +0 -0
  555. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/bitset.rs +0 -0
  556. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cfg_printer.rs +0 -0
  557. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/constant_hash.rs +0 -0
  558. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/context.rs +0 -0
  559. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ctxhash.rs +0 -0
  560. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/cursor.rs +0 -0
  561. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/data_value.rs +0 -0
  562. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dbg.rs +0 -0
  563. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dce.rs +0 -0
  564. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/dominator_tree.rs +0 -0
  565. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/egraph/domtree.rs +0 -0
  566. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/flowgraph.rs +0 -0
  567. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/fx.rs +0 -0
  568. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/incremental_cache.rs +0 -0
  569. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/inst_predicates.rs +0 -0
  570. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/atomic_rmw_op.rs +0 -0
  571. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/builder.rs +0 -0
  572. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/condcodes.rs +0 -0
  573. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/constant.rs +0 -0
  574. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/dynamic_type.rs +0 -0
  575. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/entities.rs +0 -0
  576. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extfunc.rs +0 -0
  577. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/extname.rs +0 -0
  578. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/function.rs +0 -0
  579. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/globalvalue.rs +0 -0
  580. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/immediates.rs +0 -0
  581. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/instructions.rs +0 -0
  582. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/jumptable.rs +0 -0
  583. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/known_symbol.rs +0 -0
  584. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/layout.rs +0 -0
  585. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/libcall.rs +0 -0
  586. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memflags.rs +0 -0
  587. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/memtype.rs +0 -0
  588. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/mod.rs +0 -0
  589. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/progpoint.rs +0 -0
  590. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/sourceloc.rs +0 -0
  591. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/stackslot.rs +0 -0
  592. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/table.rs +0 -0
  593. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/trapcode.rs +0 -0
  594. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/ir/types.rs +0 -0
  595. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/abi.rs +0 -0
  596. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/args.rs +0 -0
  597. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit.rs +0 -0
  598. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/emit_tests.rs +0 -0
  599. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/imms.rs +0 -0
  600. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/mod.rs +0 -0
  601. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/regs.rs +0 -0
  602. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind/systemv.rs +0 -0
  603. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst/unwind.rs +0 -0
  604. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst.isle +0 -0
  605. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/inst_neon.isle +0 -0
  606. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower/isle/generated_code.rs +0 -0
  607. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.isle +0 -0
  608. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower.rs +0 -0
  609. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/lower_dynamic_neon.isle +0 -0
  610. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/mod.rs +0 -0
  611. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/pcc.rs +0 -0
  612. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/aarch64/settings.rs +0 -0
  613. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/call_conv.rs +0 -0
  614. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/mod.rs +0 -0
  615. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/abi.rs +0 -0
  616. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/args.rs +0 -0
  617. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit.rs +0 -0
  618. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/emit_tests.rs +0 -0
  619. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/encode.rs +0 -0
  620. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/imms.rs +0 -0
  621. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/regs.rs +0 -0
  622. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind/systemv.rs +0 -0
  623. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/unwind.rs +0 -0
  624. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst/vector.rs +0 -0
  625. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/inst_vector.isle +0 -0
  626. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle/generated_code.rs +0 -0
  627. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower/isle.rs +0 -0
  628. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/lower.rs +0 -0
  629. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/mod.rs +0 -0
  630. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/riscv64/settings.rs +0 -0
  631. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/abi.rs +0 -0
  632. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/args.rs +0 -0
  633. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit.rs +0 -0
  634. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/emit_tests.rs +0 -0
  635. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/imms.rs +0 -0
  636. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/mod.rs +0 -0
  637. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/regs.rs +0 -0
  638. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind/systemv.rs +0 -0
  639. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst/unwind.rs +0 -0
  640. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/inst.isle +0 -0
  641. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower/isle/generated_code.rs +0 -0
  642. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.isle +0 -0
  643. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/lower.rs +0 -0
  644. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/mod.rs +0 -0
  645. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/s390x/settings.rs +0 -0
  646. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/systemv.rs +0 -0
  647. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind/winx64.rs +0 -0
  648. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/unwind.rs +0 -0
  649. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/abi.rs +0 -0
  650. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/evex.rs +0 -0
  651. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/mod.rs +0 -0
  652. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/rex.rs +0 -0
  653. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/encoding/vex.rs +0 -0
  654. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/args.rs +0 -0
  655. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit.rs +0 -0
  656. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_state.rs +0 -0
  657. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/emit_tests.rs +0 -0
  658. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/mod.rs +0 -0
  659. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/regs.rs +0 -0
  660. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/systemv.rs +0 -0
  661. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind/winx64.rs +0 -0
  662. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst/unwind.rs +0 -0
  663. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/inst.isle +0 -0
  664. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower/isle/generated_code.rs +0 -0
  665. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.isle +0 -0
  666. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/lower.rs +0 -0
  667. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/mod.rs +0 -0
  668. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/isa/x64/settings.rs +0 -0
  669. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/iterators.rs +0 -0
  670. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/globalvalue.rs +0 -0
  671. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/mod.rs +0 -0
  672. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/legalizer/table.rs +0 -0
  673. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/loop_analysis.rs +0 -0
  674. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/abi.rs +0 -0
  675. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/blockorder.rs +0 -0
  676. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/buffer.rs +0 -0
  677. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/compile.rs +0 -0
  678. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/helpers.rs +0 -0
  679. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/inst_common.rs +0 -0
  680. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/lower.rs +0 -0
  681. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/mod.rs +0 -0
  682. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/pcc.rs +0 -0
  683. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/reg.rs +0 -0
  684. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/valueregs.rs +0 -0
  685. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/machinst/vcode.rs +0 -0
  686. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/nan_canonicalization.rs +0 -0
  687. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/README.md +0 -0
  688. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/bitops.isle +0 -0
  689. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/extends.isle +0 -0
  690. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/generated_code.rs +0 -0
  691. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/remat.isle +0 -0
  692. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/shifts.isle +0 -0
  693. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/opts/vector.isle +0 -0
  694. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_lower.isle +0 -0
  695. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/prelude_opt.isle +0 -0
  696. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/print_errors.rs +0 -0
  697. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/remove_constant_phis.rs +0 -0
  698. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/result.rs +0 -0
  699. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/scoped_hash_map.rs +0 -0
  700. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/settings.rs +0 -0
  701. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/souper_harvest.rs +0 -0
  702. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/unreachable_code.rs +0 -0
  703. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/value_label.rs +0 -0
  704. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/verifier/mod.rs +0 -0
  705. /data/ext/cargo-vendor/{cranelift-codegen-0.102.1 → cranelift-codegen-0.103.0}/src/write.rs +0 -0
  706. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/LICENSE +0 -0
  707. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/README.md +0 -0
  708. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/formats.rs +0 -0
  709. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/instructions.rs +0 -0
  710. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/isa.rs +0 -0
  711. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/mod.rs +0 -0
  712. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/operands.rs +0 -0
  713. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/settings.rs +0 -0
  714. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/types.rs +0 -0
  715. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/cdsl/typevar.rs +0 -0
  716. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/constant_hash.rs +0 -0
  717. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/error.rs +0 -0
  718. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_inst.rs +0 -0
  719. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_settings.rs +0 -0
  720. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/gen_types.rs +0 -0
  721. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/arm64.rs +0 -0
  722. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/mod.rs +0 -0
  723. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/riscv64.rs +0 -0
  724. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/s390x.rs +0 -0
  725. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/isa/x86.rs +0 -0
  726. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/lib.rs +0 -0
  727. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/entities.rs +0 -0
  728. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/formats.rs +0 -0
  729. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/immediates.rs +0 -0
  730. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/instructions.rs +0 -0
  731. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/mod.rs +0 -0
  732. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/settings.rs +0 -0
  733. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/shared/types.rs +0 -0
  734. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/srcgen.rs +0 -0
  735. /data/ext/cargo-vendor/{cranelift-codegen-meta-0.102.1 → cranelift-codegen-meta-0.103.0}/src/unique_table.rs +0 -0
  736. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/LICENSE +0 -0
  737. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/README.md +0 -0
  738. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constant_hash.rs +0 -0
  739. /data/ext/cargo-vendor/{cranelift-codegen-shared-0.102.1 → cranelift-codegen-shared-0.103.0}/src/constants.rs +0 -0
  740. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/LICENSE +0 -0
  741. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/README.md +0 -0
  742. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/chaos.rs +0 -0
  743. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/lib.rs +0 -0
  744. /data/ext/cargo-vendor/{cranelift-control-0.102.1 → cranelift-control-0.103.0}/src/zero_sized.rs +0 -0
  745. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/LICENSE +0 -0
  746. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/README.md +0 -0
  747. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/boxed_slice.rs +0 -0
  748. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/iter.rs +0 -0
  749. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/keys.rs +0 -0
  750. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/list.rs +0 -0
  751. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/map.rs +0 -0
  752. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/packed_option.rs +0 -0
  753. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/set.rs +0 -0
  754. /data/ext/cargo-vendor/{cranelift-entity-0.102.1 → cranelift-entity-0.103.0}/src/sparse.rs +0 -0
  755. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/LICENSE +0 -0
  756. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/README.md +0 -0
  757. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/frontend.rs +0 -0
  758. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/ssa.rs +0 -0
  759. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/switch.rs +0 -0
  760. /data/ext/cargo-vendor/{cranelift-frontend-0.102.1 → cranelift-frontend-0.103.0}/src/variable.rs +0 -0
  761. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/README.md +0 -0
  762. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/build.rs +0 -0
  763. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bad_converters.isle +0 -0
  764. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/bound_var_type_mismatch.isle +0 -0
  765. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/converter_extractor_constructor.isle +0 -0
  766. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/error1.isle +0 -0
  767. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/extra_parens.isle +0 -0
  768. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_expression.isle +0 -0
  769. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/impure_rhs.isle +0 -0
  770. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_internal_etor.isle +0 -0
  771. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/fail/multi_prio.isle +0 -0
  772. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows.isle +0 -0
  773. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/borrows_main.rs +0 -0
  774. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets.isle +0 -0
  775. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/iflets_main.rs +0 -0
  776. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_constructor.isle +0 -0
  777. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/multi_extractor.isle +0 -0
  778. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test.isle +0 -0
  779. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/link/test_main.rs +0 -0
  780. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/bound_var.isle +0 -0
  781. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/construct_and_extract.isle +0 -0
  782. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions.isle +0 -0
  783. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/conversions_extern.isle +0 -0
  784. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/let.isle +0 -0
  785. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/nodebug.isle +0 -0
  786. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/prio_trie_bug.isle +0 -0
  787. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test2.isle +0 -0
  788. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test3.isle +0 -0
  789. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/test4.isle +0 -0
  790. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/pass/tutorial.isle +0 -0
  791. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst.isle +0 -0
  792. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/iconst_main.rs +0 -0
  793. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing.isle +0 -0
  794. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/isle_examples/run/let_shadowing_main.rs +0 -0
  795. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/ast.rs +0 -0
  796. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/compile.rs +0 -0
  797. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/error.rs +0 -0
  798. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lexer.rs +0 -0
  799. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/lib.rs +0 -0
  800. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/log.rs +0 -0
  801. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/overlap.rs +0 -0
  802. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/parser.rs +0 -0
  803. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/sema.rs +0 -0
  804. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/serialize.rs +0 -0
  805. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/src/trie_again.rs +0 -0
  806. /data/ext/cargo-vendor/{cranelift-isle-0.102.1 → cranelift-isle-0.103.0}/tests/run_tests.rs +0 -0
  807. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/LICENSE +0 -0
  808. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/README.md +0 -0
  809. /data/ext/cargo-vendor/{cranelift-native-0.102.1 → cranelift-native-0.103.0}/src/riscv.rs +0 -0
  810. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/LICENSE +0 -0
  811. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/README.md +0 -0
  812. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator/bounds_checks.rs +0 -0
  813. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/code_translator.rs +0 -0
  814. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/mod.rs +0 -0
  815. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/environ/spec.rs +0 -0
  816. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/func_translator.rs +0 -0
  817. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/heap.rs +0 -0
  818. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/module_translator.rs +0 -0
  819. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/sections_translator.rs +0 -0
  820. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/src/state.rs +0 -0
  821. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/tests/wasm_testsuite.rs +0 -0
  822. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/arith.wat +0 -0
  823. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/br_table.wat +0 -0
  824. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call-simd.wat +0 -0
  825. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/call.wat +0 -0
  826. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fannkuch.wat +0 -0
  827. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_fasta.wat +0 -0
  828. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_ifs.wat +0 -0
  829. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/embenchen_primes.wat +0 -0
  830. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fac-multi-value.wat +0 -0
  831. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/fibonacci.wat +0 -0
  832. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/globals.wat +0 -0
  833. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall-simd.wat +0 -0
  834. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/icall.wat +0 -0
  835. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-0.wat +0 -0
  836. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-1.wat +0 -0
  837. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-2.wat +0 -0
  838. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-3.wat +0 -0
  839. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-4.wat +0 -0
  840. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-5.wat +0 -0
  841. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-reachability-translation-6.wat +0 -0
  842. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params-2.wat +0 -0
  843. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/if-unreachable-else-params.wat +0 -0
  844. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/issue-1306-name-section-with-u32-max-function-index.wasm +0 -0
  845. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/memory.wat +0 -0
  846. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-0.wat +0 -0
  847. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-1.wat +0 -0
  848. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-10.wat +0 -0
  849. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-11.wat +0 -0
  850. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-12.wat +0 -0
  851. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-13.wat +0 -0
  852. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-14.wat +0 -0
  853. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-15.wat +0 -0
  854. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-16.wat +0 -0
  855. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-17.wat +0 -0
  856. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-2.wat +0 -0
  857. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-3.wat +0 -0
  858. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-4.wat +0 -0
  859. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-5.wat +0 -0
  860. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-6.wat +0 -0
  861. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-7.wat +0 -0
  862. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-8.wat +0 -0
  863. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/multi-9.wat +0 -0
  864. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/nullref.wat +0 -0
  865. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/passive-data.wat +0 -0
  866. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2303.wat +0 -0
  867. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/pr2559.wat +0 -0
  868. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/ref-func-0.wat +0 -0
  869. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/rust_fannkuch.wat +0 -0
  870. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/select.wat +0 -0
  871. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd-store.wat +0 -0
  872. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/simd.wat +0 -0
  873. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/table-copy.wat +0 -0
  874. /data/ext/cargo-vendor/{cranelift-wasm-0.102.1 → cranelift-wasm-0.103.0}/wasmtests/unreachable_code.wat +0 -0
  875. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/LICENSE +0 -0
  876. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/README.md +0 -0
  877. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/clocks.rs +0 -0
  878. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/dir.rs +0 -0
  879. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/file.rs +0 -0
  880. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/lib.rs +0 -0
  881. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/net.rs +0 -0
  882. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/unix.rs +0 -0
  883. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched/windows.rs +0 -0
  884. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/sched.rs +0 -0
  885. /data/ext/cargo-vendor/{wasi-cap-std-sync-15.0.1 → wasi-cap-std-sync-16.0.0}/src/stdio.rs +0 -0
  886. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/LICENSE +0 -0
  887. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/README.md +0 -0
  888. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/README.md +0 -0
  889. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/docs/README.md +0 -0
  890. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/README.md +0 -0
  891. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/docs.md +0 -0
  892. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/typenames.witx +0 -0
  893. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_args.witx +0 -0
  894. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_clock.witx +0 -0
  895. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_environ.witx +0 -0
  896. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_fd.witx +0 -0
  897. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_path.witx +0 -0
  898. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_poll.witx +0 -0
  899. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_proc.witx +0 -0
  900. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_random.witx +0 -0
  901. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sched.witx +0 -0
  902. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/ephemeral/witx/wasi_ephemeral_sock.witx +0 -0
  903. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/docs.md +0 -0
  904. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/typenames.witx +0 -0
  905. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/old/snapshot_0/witx/wasi_unstable.witx +0 -0
  906. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.html +0 -0
  907. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/docs.md +0 -0
  908. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/typenames.witx +0 -0
  909. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/phases/snapshot/witx/wasi_snapshot_preview1.witx +0 -0
  910. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposal-template/README.md +0 -0
  911. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/proposals/README.md +0 -0
  912. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/snapshots/README.md +0 -0
  913. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/WASI/standard/README.md +0 -0
  914. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/build.rs +0 -0
  915. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/clocks.rs +0 -0
  916. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/ctx.rs +0 -0
  917. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/dir.rs +0 -0
  918. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/error.rs +0 -0
  919. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/file.rs +0 -0
  920. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/pipe.rs +0 -0
  921. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/random.rs +0 -0
  922. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched/subscription.rs +0 -0
  923. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/sched.rs +0 -0
  924. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/mod.rs +0 -0
  925. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_0.rs +0 -0
  926. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/snapshots/preview_1/error.rs +0 -0
  927. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/string_array.rs +0 -0
  928. /data/ext/cargo-vendor/{wasi-common-15.0.1 → wasi-common-16.0.0}/src/table.rs +0 -0
  929. /data/ext/cargo-vendor/{wasm-encoder-0.36.2 → wasmtime-16.0.0}/LICENSE +0 -0
  930. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/README.md +0 -0
  931. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/code.rs +0 -0
  932. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/host.rs +0 -0
  933. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func/options.rs +0 -0
  934. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/func.rs +0 -0
  935. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/instance.rs +0 -0
  936. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/linker.rs +0 -0
  937. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/matching.rs +0 -0
  938. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/mod.rs +0 -0
  939. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/resources.rs +0 -0
  940. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/storage.rs +0 -0
  941. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/store.rs +0 -0
  942. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/types.rs +0 -0
  943. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/component/values.rs +0 -0
  944. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/coredump.rs +0 -0
  945. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine/serialization.rs +0 -0
  946. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/engine.rs +0 -0
  947. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/global.rs +0 -0
  948. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals/table.rs +0 -0
  949. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/externals.rs +0 -0
  950. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/func/typed.rs +0 -0
  951. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/instance.rs +0 -0
  952. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/limits.rs +0 -0
  953. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/linker.rs +0 -0
  954. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/module/registry.rs +0 -0
  955. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/profiling.rs +0 -0
  956. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/ref.rs +0 -0
  957. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/resources.rs +0 -0
  958. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/signatures.rs +0 -0
  959. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/context.rs +0 -0
  960. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/data.rs +0 -0
  961. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store/func_refs.rs +0 -0
  962. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/store.rs +0 -0
  963. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/func.rs +0 -0
  964. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/global.rs +0 -0
  965. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/memory.rs +0 -0
  966. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline/table.rs +0 -0
  967. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trampoline.rs +0 -0
  968. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/trap.rs +0 -0
  969. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types/matching.rs +0 -0
  970. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/types.rs +0 -0
  971. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/unix.rs +0 -0
  972. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/values.rs +0 -0
  973. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-16.0.0}/src/windows.rs +0 -0
  974. /data/ext/cargo-vendor/{wasmtime-asm-macros-15.0.1 → wasmtime-asm-macros-16.0.0}/src/lib.rs +0 -0
  975. /data/ext/cargo-vendor/{wasmparser-0.116.1 → wasmtime-cache-16.0.0}/LICENSE +0 -0
  976. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/build.rs +0 -0
  977. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config/tests.rs +0 -0
  978. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/config.rs +0 -0
  979. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/tests.rs +0 -0
  980. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests/system_time_stub.rs +0 -0
  981. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/src/worker/tests.rs +0 -0
  982. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-cache-16.0.0}/tests/cache_write_default_config.rs +0 -0
  983. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/bindgen.rs +0 -0
  984. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/component.rs +0 -0
  985. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/src/lib.rs +0 -0
  986. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/char.wit +0 -0
  987. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/conventions.wit +0 -0
  988. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/direct-import.wit +0 -0
  989. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/empty.wit +0 -0
  990. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/flags.wit +0 -0
  991. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/floats.wit +0 -0
  992. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/function-new.wit +0 -0
  993. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/integers.wit +0 -0
  994. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/lists.wit +0 -0
  995. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/many-arguments.wit +0 -0
  996. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multi-return.wit +0 -0
  997. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v1/root.wit +0 -0
  998. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/deps/v2/root.wit +0 -0
  999. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/multiversion/root.wit +0 -0
  1000. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/records.wit +0 -0
  1001. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/rename.wit +0 -0
  1002. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-export.wit +0 -0
  1003. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/resources-import.wit +0 -0
  1004. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/share-types.wit +0 -0
  1005. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-functions.wit +0 -0
  1006. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-lists.wit +0 -0
  1007. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/simple-wasi.wit +0 -0
  1008. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/small-anonymous.wit +0 -0
  1009. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-default.wit +0 -0
  1010. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke-export.wit +0 -0
  1011. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/smoke.wit +0 -0
  1012. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/strings.wit +0 -0
  1013. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/use-paths.wit +0 -0
  1014. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/variants.wit +0 -0
  1015. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen/worlds-with-types.wit +0 -0
  1016. /data/ext/cargo-vendor/{wasmtime-component-macro-15.0.1 → wasmtime-component-macro-16.0.0}/tests/codegen.rs +0 -0
  1017. /data/ext/cargo-vendor/{wasmtime-component-util-15.0.1 → wasmtime-component-util-16.0.0}/src/lib.rs +0 -0
  1018. /data/ext/cargo-vendor/{wasmtime-15.0.1 → wasmtime-cranelift-16.0.0}/LICENSE +0 -0
  1019. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/SECURITY.md +0 -0
  1020. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/builder.rs +0 -0
  1021. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/gc.rs +0 -0
  1022. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/address_transform.rs +0 -0
  1023. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/attr.rs +0 -0
  1024. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/line_program.rs +0 -0
  1025. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/mod.rs +0 -0
  1026. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/range_info_builder.rs +0 -0
  1027. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/refs.rs +0 -0
  1028. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/unit.rs +0 -0
  1029. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/transform/utils.rs +0 -0
  1030. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/debug/write_debuginfo.rs +0 -0
  1031. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-cranelift-16.0.0}/src/lib.rs +0 -0
  1032. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/compiled_function.rs +0 -0
  1033. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/isa_builder.rs +0 -0
  1034. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/lib.rs +0 -0
  1035. /data/ext/cargo-vendor/{wasmtime-cranelift-shared-15.0.1 → wasmtime-cranelift-shared-16.0.0}/src/obj.rs +0 -0
  1036. /data/ext/cargo-vendor/{wasmtime-cache-15.0.1 → wasmtime-environ-16.0.0}/LICENSE +0 -0
  1037. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/examples/factc.rs +0 -0
  1038. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/address_map.rs +0 -0
  1039. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/builtin.rs +0 -0
  1040. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/dfg.rs +0 -0
  1041. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/info.rs +0 -0
  1042. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/adapt.rs +0 -0
  1043. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/translate/inline.rs +0 -0
  1044. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/types/resources.rs +0 -0
  1045. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component/vmcomponent_offsets.rs +0 -0
  1046. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/component.rs +0 -0
  1047. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/core_types.rs +0 -0
  1048. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/signature.rs +0 -0
  1049. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/trampoline.rs +0 -0
  1050. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/transcode.rs +0 -0
  1051. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact/traps.rs +0 -0
  1052. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/fact.rs +0 -0
  1053. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/obj.rs +0 -0
  1054. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/ref_bits.rs +0 -0
  1055. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/stack_map.rs +0 -0
  1056. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/trap_encoding.rs +0 -0
  1057. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/tunables.rs +0 -0
  1058. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-environ-16.0.0}/src/vmoffsets.rs +0 -0
  1059. /data/ext/cargo-vendor/{wasmtime-cranelift-15.0.1 → wasmtime-fiber-16.0.0}/LICENSE +0 -0
  1060. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/build.rs +0 -0
  1061. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/aarch64.rs +0 -0
  1062. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/arm.rs +0 -0
  1063. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/riscv64.rs +0 -0
  1064. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/s390x.S +0 -0
  1065. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86.rs +0 -0
  1066. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/unix/x86_64.rs +0 -0
  1067. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-fiber-16.0.0}/src/windows.rs +0 -0
  1068. /data/ext/cargo-vendor/{wasmtime-environ-15.0.1 → wasmtime-jit-16.0.0}/LICENSE +0 -0
  1069. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/debug.rs +0 -0
  1070. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/demangling.rs +0 -0
  1071. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/jitdump.rs +0 -0
  1072. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/perfmap.rs +0 -0
  1073. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling/vtune.rs +0 -0
  1074. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-jit-16.0.0}/src/profiling.rs +0 -0
  1075. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/README.md +0 -0
  1076. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/gdb_jit_int.rs +0 -0
  1077. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/lib.rs +0 -0
  1078. /data/ext/cargo-vendor/{wasmtime-jit-debug-15.0.1 → wasmtime-jit-debug-16.0.0}/src/perf_jitdump.rs +0 -0
  1079. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/lib.rs +0 -0
  1080. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/libc.rs +0 -0
  1081. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/miri.rs +0 -0
  1082. /data/ext/cargo-vendor/{wasmtime-jit-icache-coherence-15.0.1 → wasmtime-jit-icache-coherence-16.0.0}/src/win.rs +0 -0
  1083. /data/ext/cargo-vendor/{wasmtime-fiber-15.0.1 → wasmtime-runtime-16.0.0}/LICENSE +0 -0
  1084. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/trampolines → wasmtime-runtime-16.0.0/src/arch}/s390x.S +0 -0
  1085. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/libcalls.rs +0 -0
  1086. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component/resources.rs +0 -0
  1087. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/component.rs +0 -0
  1088. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/debug_builtins.rs +0 -0
  1089. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/export.rs +0 -0
  1090. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/externref.rs +0 -0
  1091. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/imports.rs +0 -0
  1092. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/on_demand.rs +0 -0
  1093. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator/pooling/index_allocator.rs +0 -0
  1094. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance/allocator.rs +0 -0
  1095. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/instance.rs +0 -0
  1096. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/memory.rs +0 -0
  1097. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mmap_vec.rs +0 -0
  1098. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/module_id.rs +0 -0
  1099. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/disabled.rs +0 -0
  1100. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/mod.rs +0 -0
  1101. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/mpk/sys.rs +0 -0
  1102. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/parking_spot.rs +0 -0
  1103. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/send_sync_ptr.rs +0 -0
  1104. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/store_box.rs +0 -0
  1105. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/miri.rs → wasmtime-runtime-16.0.0/src/sys/miri/mmap.rs} +0 -0
  1106. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/unix.rs → wasmtime-runtime-16.0.0/src/sys/unix/mmap.rs} +0 -0
  1107. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1/src/mmap/windows.rs → wasmtime-runtime-16.0.0/src/sys/windows/mmap.rs} +0 -0
  1108. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/table.rs +0 -0
  1109. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/traphandlers/coredump.rs +0 -0
  1110. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-runtime-16.0.0}/src/vmcontext/vm_host_func_context.rs +0 -0
  1111. /data/ext/cargo-vendor/{wasmtime-jit-15.0.1 → wasmtime-types-16.0.0}/LICENSE +0 -0
  1112. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wasmtime-types-16.0.0}/src/error.rs +0 -0
  1113. /data/ext/cargo-vendor/{wasmtime-versioned-export-macros-15.0.1 → wasmtime-versioned-export-macros-16.0.0}/src/lib.rs +0 -0
  1114. /data/ext/cargo-vendor/{wasmtime-runtime-15.0.1 → wasmtime-wasi-16.0.0}/LICENSE +0 -0
  1115. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/README.md +0 -0
  1116. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/build.rs +0 -0
  1117. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks/host.rs +0 -0
  1118. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/clocks.rs +0 -0
  1119. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/command.rs +0 -0
  1120. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ctx.rs +0 -0
  1121. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/error.rs +0 -0
  1122. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/filesystem.rs +0 -0
  1123. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/clocks.rs +0 -0
  1124. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/env.rs +0 -0
  1125. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/exit.rs +0 -0
  1126. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem/sync.rs +0 -0
  1127. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/filesystem.rs +0 -0
  1128. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/instance_network.rs +0 -0
  1129. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/mod.rs +0 -0
  1130. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/random.rs +0 -0
  1131. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/tcp_create_socket.rs +0 -0
  1132. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/host/udp_create_socket.rs +0 -0
  1133. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/ip_name_lookup.rs +0 -0
  1134. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/network.rs +0 -0
  1135. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/pipe.rs +0 -0
  1136. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/poll.rs +0 -0
  1137. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/random.rs +0 -0
  1138. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/stdio/worker_thread_stdin.rs +0 -0
  1139. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/tcp.rs +0 -0
  1140. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/udp.rs +0 -0
  1141. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/src/preview2/write_stream.rs +0 -0
  1142. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/environment.wit +0 -0
  1143. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/exit.wit +0 -0
  1144. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/run.wit +0 -0
  1145. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/stdio.wit +0 -0
  1146. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/cli/terminal.wit +0 -0
  1147. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/monotonic-clock.wit +0 -0
  1148. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/wall-clock.wit +0 -0
  1149. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/clocks/world.wit +0 -0
  1150. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/preopens.wit +0 -0
  1151. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/types.wit +0 -0
  1152. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/filesystem/world.wit +0 -0
  1153. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/http/handler.wit +0 -0
  1154. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/error.wit +0 -0
  1155. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/poll.wit +0 -0
  1156. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/streams.wit +0 -0
  1157. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/io/world.wit +0 -0
  1158. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure-seed.wit +0 -0
  1159. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/insecure.wit +0 -0
  1160. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/random.wit +0 -0
  1161. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/random/world.wit +0 -0
  1162. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/instance-network.wit +0 -0
  1163. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/ip-name-lookup.wit +0 -0
  1164. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/network.wit +0 -0
  1165. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp-create-socket.wit +0 -0
  1166. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/tcp.wit +0 -0
  1167. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp-create-socket.wit +0 -0
  1168. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/udp.wit +0 -0
  1169. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wasmtime-wasi-16.0.0}/wit/deps/sockets/world.wit +0 -0
  1170. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/typenames.witx +0 -0
  1171. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1/witx → wasmtime-wasi-16.0.0/witx/preview1}/wasi_snapshot_preview1.witx +0 -0
  1172. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/LICENSE +0 -0
  1173. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/builder.rs +0 -0
  1174. /data/ext/cargo-vendor/{wasmtime-winch-15.0.1 → wasmtime-winch-16.0.0}/src/lib.rs +0 -0
  1175. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/lib.rs +0 -0
  1176. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/rust.rs +0 -0
  1177. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/source.rs +0 -0
  1178. /data/ext/cargo-vendor/{wasmtime-wit-bindgen-15.0.1 → wasmtime-wit-bindgen-16.0.0}/src/types.rs +0 -0
  1179. /data/ext/cargo-vendor/{wasmtime-wmemcheck-15.0.1 → wasmtime-wmemcheck-16.0.0}/src/lib.rs +0 -0
  1180. /data/ext/cargo-vendor/{wasmtime-types-15.0.1 → wiggle-16.0.0}/LICENSE +0 -0
  1181. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/README.md +0 -0
  1182. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/borrow.rs +0 -0
  1183. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/error.rs +0 -0
  1184. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/guest_type.rs +0 -0
  1185. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/region.rs +0 -0
  1186. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-16.0.0}/src/wasmtime.rs +0 -0
  1187. /data/ext/cargo-vendor/{wasmtime-wasi-15.0.1 → wiggle-generate-16.0.0}/LICENSE +0 -0
  1188. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/README.md +0 -0
  1189. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/codegen_settings.rs +0 -0
  1190. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/config.rs +0 -0
  1191. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/funcs.rs +0 -0
  1192. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lib.rs +0 -0
  1193. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/lifetimes.rs +0 -0
  1194. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/module_trait.rs +0 -0
  1195. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/names.rs +0 -0
  1196. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/error.rs +0 -0
  1197. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/flags.rs +0 -0
  1198. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/types/mod.rs +0 -0
  1199. /data/ext/cargo-vendor/{wiggle-generate-15.0.1 → wiggle-generate-16.0.0}/src/wasmtime.rs +0 -0
  1200. /data/ext/cargo-vendor/{wiggle-15.0.1 → wiggle-macro-16.0.0}/LICENSE +0 -0
  1201. /data/ext/cargo-vendor/{wiggle-macro-15.0.1 → wiggle-macro-16.0.0}/src/lib.rs +0 -0
  1202. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/LICENSE +0 -0
  1203. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/build.rs +0 -0
  1204. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/codegen/builtin.rs +0 -0
  1205. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/address.rs +0 -0
  1206. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/asm.rs +0 -0
  1207. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/aarch64/regs.rs +0 -0
  1208. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/reg.rs +0 -0
  1209. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/isa/x64/address.rs +0 -0
  1210. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/lib.rs +0 -0
  1211. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regalloc.rs +0 -0
  1212. /data/ext/cargo-vendor/{winch-codegen-0.13.1 → winch-codegen-0.14.0}/src/regset.rs +0 -0
@@ -1,2422 +0,0 @@
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(&self) -> 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
- }