diff --git a/.cargo/config.toml b/.cargo/config.toml index 3e0fa98c..b4bf23c2 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -1,5 +1,4 @@ [build] -rustflags = ["-D", "warnings"] # sccache 编译缓存:重复构建(切分支、profile 变动、clean 后重编)命中缓存直接 # 复用产物,跳过 rustc。缓存目录默认 ~/.cache/sccache(上限 10G)。 rustc-wrapper = "sccache" diff --git a/Cargo.toml b/Cargo.toml index 716c418e..b318e328 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -64,9 +64,14 @@ tracing = { version = "0.1.44", features = ["max_level_trace", "release_max_leve tracing-subscriber = { version = "0.3.23", features = ["env-filter", "registry"] } tracing-appender = "0.2.5" +# 工作区 lint:各 crate 需在自身 Cargo.toml 写 `[lints] workspace = true` 才继承。 +# rust 表把 rustc 告警升为错误(只作用于 workspace crate,依赖不受影响);clippy +# 表在 clippy 下生效。 +[workspace.lints.rust] +warnings = "deny" + [workspace.lints.clippy] all = { level = "deny", priority = -1 } -warnings = { level = "deny", priority = -1 } [profile.release] # 快速 release:日常墙时间 A/B 与 test262 release 回测用。opt-level 2 与 3 的 diff --git a/crates/oxide_builtins/Cargo.toml b/crates/oxide_builtins/Cargo.toml index b05ec73a..960bec0f 100644 --- a/crates/oxide_builtins/Cargo.toml +++ b/crates/oxide_builtins/Cargo.toml @@ -28,3 +28,6 @@ num-traits = "0.2" oxide_vm = { path = "../oxide_vm" } oxide_compiler = { path = "../oxide_compiler" } oxide_parser = { path = "../oxide_parser" } + +[lints] +workspace = true diff --git a/crates/oxide_bytecode/Cargo.toml b/crates/oxide_bytecode/Cargo.toml index 3f641159..ae04a844 100644 --- a/crates/oxide_bytecode/Cargo.toml +++ b/crates/oxide_bytecode/Cargo.toml @@ -9,3 +9,6 @@ description = "OxideJS - Shared bytecode protocol and compiled module ABI" [dependencies] oxide_log = { path = "../oxide_log" } num-bigint = "0.4" + +[lints] +workspace = true diff --git a/crates/oxide_cfg/Cargo.toml b/crates/oxide_cfg/Cargo.toml index 671c19af..3c8a5b73 100644 --- a/crates/oxide_cfg/Cargo.toml +++ b/crates/oxide_cfg/Cargo.toml @@ -14,3 +14,6 @@ oxide_log = { path = "../oxide_log" } [dev-dependencies] oxide_parser = { path = "../oxide_parser" } oxide_emit = { path = "../oxide_emit" } + +[lints] +workspace = true diff --git a/crates/oxide_cli/Cargo.toml b/crates/oxide_cli/Cargo.toml index aa046d6e..b04b5ec4 100644 --- a/crates/oxide_cli/Cargo.toml +++ b/crates/oxide_cli/Cargo.toml @@ -28,3 +28,6 @@ rustyline.workspace = true ansi_term.workspace = true serde_json.workspace = true serde = { workspace = true, features = ["derive"] } + +[lints] +workspace = true diff --git a/crates/oxide_code_cache/Cargo.toml b/crates/oxide_code_cache/Cargo.toml index bd297768..5c972448 100644 --- a/crates/oxide_code_cache/Cargo.toml +++ b/crates/oxide_code_cache/Cargo.toml @@ -10,3 +10,6 @@ description = "OxideJS - Compiler-independent compiled module cache" oxide_bytecode = { path = "../oxide_bytecode" } oxide_log = { path = "../oxide_log" } lru.workspace = true + +[lints] +workspace = true diff --git a/crates/oxide_compiler/Cargo.toml b/crates/oxide_compiler/Cargo.toml index fdbc5971..e024c082 100644 --- a/crates/oxide_compiler/Cargo.toml +++ b/crates/oxide_compiler/Cargo.toml @@ -23,3 +23,6 @@ rustc-hash.workspace = true [dev-dependencies] oxide_code_cache = { path = "../oxide_code_cache" } + +[lints] +workspace = true diff --git a/crates/oxide_dce/Cargo.toml b/crates/oxide_dce/Cargo.toml index 400104a6..77bf73af 100644 --- a/crates/oxide_dce/Cargo.toml +++ b/crates/oxide_dce/Cargo.toml @@ -17,3 +17,6 @@ oxide_log = { path = "../oxide_log" } oxide_parser = { path = "../oxide_parser" } oxide_emit = { path = "../oxide_emit" } oxide_vm = { path = "../oxide_vm" } + +[lints] +workspace = true diff --git a/crates/oxide_emit/Cargo.toml b/crates/oxide_emit/Cargo.toml index 9a3f98f1..7064d75b 100644 --- a/crates/oxide_emit/Cargo.toml +++ b/crates/oxide_emit/Cargo.toml @@ -17,3 +17,6 @@ regex.workspace = true regress.workspace = true num-bigint = "0.4" + +[lints] +workspace = true diff --git a/crates/oxide_engine/Cargo.toml b/crates/oxide_engine/Cargo.toml index 0b01d9fd..0ed098be 100644 --- a/crates/oxide_engine/Cargo.toml +++ b/crates/oxide_engine/Cargo.toml @@ -13,3 +13,6 @@ oxide_compiler = { path = "../oxide_compiler" } oxide_kernel = { path = "../oxide_kernel" } oxide_vm = { path = "../oxide_vm" } oxide_types = { path = "../oxide_types" } + +[lints] +workspace = true diff --git a/crates/oxide_ir/Cargo.toml b/crates/oxide_ir/Cargo.toml index e2160f73..38a26cbf 100644 --- a/crates/oxide_ir/Cargo.toml +++ b/crates/oxide_ir/Cargo.toml @@ -10,3 +10,6 @@ description = "OxideJS - IR intermediate representation and lowering to bytecode oxide_bytecode = { path = "../oxide_bytecode" } oxide_log = { path = "../oxide_log" } smallvec.workspace = true + +[lints] +workspace = true diff --git a/crates/oxide_kernel/Cargo.toml b/crates/oxide_kernel/Cargo.toml index fda2f9e9..94f35bac 100644 --- a/crates/oxide_kernel/Cargo.toml +++ b/crates/oxide_kernel/Cargo.toml @@ -15,3 +15,6 @@ bumpalo.workspace = true hashbrown.workspace = true dashmap.workspace = true rustc-hash.workspace = true + +[lints] +workspace = true diff --git a/crates/oxide_liveness/Cargo.toml b/crates/oxide_liveness/Cargo.toml index 1f491614..df9b15e1 100644 --- a/crates/oxide_liveness/Cargo.toml +++ b/crates/oxide_liveness/Cargo.toml @@ -15,3 +15,6 @@ oxide_log = { path = "../oxide_log" } oxide_parser = { path = "../oxide_parser" } oxide_emit = { path = "../oxide_emit" } oxide_bytecode = { path = "../oxide_bytecode" } + +[lints] +workspace = true diff --git a/crates/oxide_log/Cargo.toml b/crates/oxide_log/Cargo.toml index 4c6fc6da..6717b69a 100644 --- a/crates/oxide_log/Cargo.toml +++ b/crates/oxide_log/Cargo.toml @@ -10,3 +10,6 @@ description = "OxideJS - Structured logging subsystem (tracing-based)" tracing = { workspace = true, features = ["max_level_trace", "release_max_level_debug"] } tracing-subscriber = { workspace = true, features = ["env-filter", "registry"] } tracing-appender = "0.2.5" + +[lints] +workspace = true diff --git a/crates/oxide_parser/Cargo.toml b/crates/oxide_parser/Cargo.toml index 75e94e6a..60799919 100644 --- a/crates/oxide_parser/Cargo.toml +++ b/crates/oxide_parser/Cargo.toml @@ -16,3 +16,6 @@ oxc_span.workspace = true oxc_diagnostics.workspace = true oxc_syntax.workspace = true oxc_semantic = "0.134.0" + +[lints] +workspace = true diff --git a/crates/oxide_regalloc/Cargo.toml b/crates/oxide_regalloc/Cargo.toml index b0d1e2f5..c3424fdc 100644 --- a/crates/oxide_regalloc/Cargo.toml +++ b/crates/oxide_regalloc/Cargo.toml @@ -19,3 +19,6 @@ oxide_emit = { path = "../oxide_emit" } oxide_vm = { path = "../oxide_vm" } oxide_dce = { path = "../oxide_dce" } oxide_compiler = { path = "../oxide_compiler" } + +[lints] +workspace = true diff --git a/crates/oxide_runtime_api/Cargo.toml b/crates/oxide_runtime_api/Cargo.toml index 941253b6..4be60b2b 100644 --- a/crates/oxide_runtime_api/Cargo.toml +++ b/crates/oxide_runtime_api/Cargo.toml @@ -14,3 +14,6 @@ num-bigint = "0.4" num-traits = "0.2" oxide_log = { path = "../oxide_log" } ryu.workspace = true + +[lints] +workspace = true diff --git a/crates/oxide_test262/Cargo.toml b/crates/oxide_test262/Cargo.toml index 300b2a50..872ac9de 100644 --- a/crates/oxide_test262/Cargo.toml +++ b/crates/oxide_test262/Cargo.toml @@ -23,3 +23,6 @@ oxide_log = { path = "../oxide_log" } serde = { version = "1", features = ["derive"] } serde_yaml = "0.9" walkdir = "2" + +[lints] +workspace = true diff --git a/crates/oxide_types/Cargo.toml b/crates/oxide_types/Cargo.toml index 46026ef3..74b63289 100644 --- a/crates/oxide_types/Cargo.toml +++ b/crates/oxide_types/Cargo.toml @@ -16,3 +16,6 @@ num-bigint = "0.4" [dev-dependencies] proptest.workspace = true + +[lints] +workspace = true diff --git a/crates/oxide_vm/Cargo.toml b/crates/oxide_vm/Cargo.toml index 2f29cfae..5b08992f 100644 --- a/crates/oxide_vm/Cargo.toml +++ b/crates/oxide_vm/Cargo.toml @@ -55,3 +55,6 @@ harness = false [[bench]] name = "call" harness = false + +[lints] +workspace = true