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