on master help sign in
knot-legacy/Cargo.toml
46 lines 1.8 kB history raw
1[workspace]
2members = ["crates/*"]
3resolver = "3"
5[workspace.package]
6version = "0.1.0"
7edition = "2024"
9# panic = "unwind" (the default) is load-bearing: the runtime's catch_unwind
10# recovery sites (HTTP worker 500 responses, race-loser cancellation, atomic
11# rollback on handler panic) depend on it. Unwinding across the FFI boundary
12# into Cranelift-generated code is sound because (a) every runtime function
13# callable from generated code is `extern "C-unwind"`, and (b) the compiler
14# emits .eh_frame unwind info for every generated function (knot-compiler's
15# unwind.rs), so the system unwinder can walk those frames.
17[workspace.dependencies]
18libc = "0.2"
19knot = { path = "crates/knot" }
20knot-descriptor = { path = "crates/knot-descriptor" }
21knot-compiler = { path = "crates/knot-compiler" }
22knot-runtime = { path = "crates/knot-runtime" }
23knot-jit = { path = "crates/knot-jit" }
24knot-compile-rt = { path = "crates/knot-compile-rt" }
25cranelift-codegen = "0.131"
26cranelift-frontend = "0.131"
27cranelift-module = "0.131"
28cranelift-object = "0.131"
29cranelift-jit = "0.131"
30cranelift-native = "0.131"
31target-lexicon = "0.13"
32rusqlite = { version = "0.39", features = ["bundled", "collation"] }
33tiny_http = "0.12"
34ureq = "3"
35serde_json = "1"
36ariadne = "0.6"
38# Strip DEBUG INFO (not symbols) from release binaries, incl. the released
39# `knot` compiler. Debug info is the dominant size cost and is useless in a
40# shipped compiler. Symbols are KEPT so panic backtraces stay readable — the
41# runtime recovers from panics via catch_unwind (see the panic=unwind note
42# above), and a stripped-of-symbols compiler would make those backtraces
43# opaque. This is independent of the `-s` the linker adds to PRODUCED knot
44# binaries (those need --export-dynamic/.dynsym for JIT; this is the compiler).
45[profile.release]
46strip = "debuginfo"