wasmtime 16.0.0 → 17.0.0

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