From 8edd602ac6f20aa3a6ceca810d1dc080a5427976 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 15 Mar 2026 03:44:10 +0000 Subject: [PATCH] fix: resolve compilation errors across workspace - Add PiQ3/PiQ2 match arms in ruvllm-cli quantize memory estimation - Add main() stub to mincut-gated-transformer-wasm web_scorer example - Gate scipix OCR examples behind required-features = ["ocr"] - Fix usize/u64 type mismatch in ruvector-cnn kernel_equivalence test https://claude.ai/code/session_01UWE22wnsZRSHKhT4h4Axby --- crates/ruvector-cnn/tests/kernel_equivalence.rs | 4 ++-- .../examples/web_scorer.rs | 6 ++++++ crates/ruvllm-cli/src/commands/quantize.rs | 14 ++++++-------- examples/scipix/Cargo.toml | 5 +++++ 4 files changed, 19 insertions(+), 10 deletions(-) diff --git a/crates/ruvector-cnn/tests/kernel_equivalence.rs b/crates/ruvector-cnn/tests/kernel_equivalence.rs index d61af9b6f..5ce73abbe 100644 --- a/crates/ruvector-cnn/tests/kernel_equivalence.rs +++ b/crates/ruvector-cnn/tests/kernel_equivalence.rs @@ -468,7 +468,7 @@ mod kernel_equivalence { }; // Test matmul with various sizes (aligned and unaligned) - let sizes = vec![ + let sizes: Vec<(usize, usize, usize)> = vec![ (15, 15, 15), // Unaligned (16, 16, 16), // Aligned to 16 (17, 17, 17), // Unaligned @@ -478,7 +478,7 @@ mod kernel_equivalence { ]; for (m, n, k) in sizes { - let mut rng = fastrand::Rng::with_seed(42 + m); + let mut rng = fastrand::Rng::with_seed(42 + m as u64); let a: Vec = (0..m * k).map(|_| rng.i8(..)).collect(); let b: Vec = (0..k * n).map(|_| rng.i8(..)).collect(); diff --git a/crates/ruvector-mincut-gated-transformer-wasm/examples/web_scorer.rs b/crates/ruvector-mincut-gated-transformer-wasm/examples/web_scorer.rs index 40054ce7e..728f921ff 100644 --- a/crates/ruvector-mincut-gated-transformer-wasm/examples/web_scorer.rs +++ b/crates/ruvector-mincut-gated-transformer-wasm/examples/web_scorer.rs @@ -156,3 +156,9 @@ pub fn run_custom_config_example() -> Result { Ok(output.into()) } + +// Required for cargo test/check; this example is meant to be built with wasm-pack. +#[cfg(not(target_arch = "wasm32"))] +fn main() { + eprintln!("This example requires wasm-pack: wasm-pack build --target web"); +} diff --git a/crates/ruvllm-cli/src/commands/quantize.rs b/crates/ruvllm-cli/src/commands/quantize.rs index fc6251cf2..04909f307 100644 --- a/crates/ruvllm-cli/src/commands/quantize.rs +++ b/crates/ruvllm-cli/src/commands/quantize.rs @@ -236,20 +236,18 @@ fn print_memory_estimates(format: TargetFormat) { e.total_mb *= 2.0; e }, - // PiQ3: 3.0625 bits/weight (~75% of Q4_K_M storage) + // PiQ3: 3.0625 bits/weight vs Q4's ~4.5, so ~68% of Q4 size TargetFormat::PiQ3 => |p, v, h, l| { let mut e = estimate_memory_q4(p, v, h, l); - e.total_bytes = (e.total_bytes as f64 * 0.75) as usize; - e.total_mb *= 0.75; - e.compression_ratio *= 1.33; + e.total_bytes = (e.total_bytes as f64 * 3.0625 / 4.5) as usize; + e.total_mb = e.total_bytes as f64 / (1024.0 * 1024.0); e }, - // PiQ2: 2.0625 bits/weight (~50% of Q4_K_M storage) + // PiQ2: 2.0625 bits/weight vs Q4's ~4.5, so ~46% of Q4 size TargetFormat::PiQ2 => |p, v, h, l| { let mut e = estimate_memory_q4(p, v, h, l); - e.total_bytes = (e.total_bytes as f64 * 0.5) as usize; - e.total_mb *= 0.5; - e.compression_ratio *= 2.0; + e.total_bytes = (e.total_bytes as f64 * 2.0625 / 4.5) as usize; + e.total_mb = e.total_bytes as f64 / (1024.0 * 1024.0); e }, }; diff --git a/examples/scipix/Cargo.toml b/examples/scipix/Cargo.toml index 541db99ff..719f5ab08 100644 --- a/examples/scipix/Cargo.toml +++ b/examples/scipix/Cargo.toml @@ -162,6 +162,7 @@ crate-type = ["cdylib", "rlib"] [[example]] name = "simple_ocr" path = "examples/simple_ocr.rs" +required-features = ["ocr"] [[example]] name = "batch_processing" @@ -171,6 +172,7 @@ required-features = ["ocr"] [[example]] name = "api_server" path = "examples/api_server.rs" +required-features = ["ocr"] [[example]] name = "streaming" @@ -180,14 +182,17 @@ required-features = ["ocr"] [[example]] name = "custom_pipeline" path = "examples/custom_pipeline.rs" +required-features = ["ocr"] [[example]] name = "lean_agentic" path = "examples/lean_agentic.rs" +required-features = ["ocr"] [[example]] name = "accuracy_test" path = "examples/accuracy_test.rs" +required-features = ["ocr"] # Benchmark configurations [[bench]]