From 1a5807752eea4bec46d91106bd16c141089168ba Mon Sep 17 00:00:00 2001 From: localai-org-maint-bot <306269227+localai-org-maint-bot@users.noreply.github.com> Date: Sun, 16 Aug 2026 20:04:14 +0000 Subject: [PATCH] fix(qwen3.5): drop redundant AppleClang capture Apple Clang rejects the namespace-scope capture as unused when warnings are errors. The lambda can read that name without a capture. FOLLOWING_AGENTS_PROTOCOL Assisted-by: Codex:gpt-5 [test-driven-development] --- docs/BENCHMARKS.md | 5 +++++ docs/FEATURES.md | 4 ++++ docs/STATUS.md | 6 ++++++ src/vllm/model_executor/models/qwen3_5_weights.cpp | 2 +- 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/docs/BENCHMARKS.md b/docs/BENCHMARKS.md index 85839309f..a0429ca17 100644 --- a/docs/BENCHMARKS.md +++ b/docs/BENCHMARKS.md @@ -435,6 +435,11 @@ built on it rather than keeping the flattering one. **CPU elementwise GEMM, transpose-free `[K,N]` path (2026-08-07).** On dgx aarch64 the `[K,N]` path beats `[N,K]` by 1.16x to 1.30x, byte-identically. The x86 arm is INDICATIVE ONLY, not binding: that box is VOID for timing per `CLAIM-KERNEL-CPU-ELEM-GEMM-1`. `VT_CPU_MATMUL_STEAL` ships default OFF and is NOT measured; it must justify itself by measurement and may measure neutral. +**Darwin Qwen3.5 build repair (2026-08-16).** Benchmarking is NOT APPLICABLE. +The change removes a redundant namespace-scope lambda capture that Apple Clang +rejects under `-Werror`; it does not change generated refusal text, model math, +or any runtime path. The binding gate is the Apple Clang build. + ## Open gaps | Track | Status | Next gate | diff --git a/docs/FEATURES.md b/docs/FEATURES.md index 1163a0764..1fda8b3b9 100644 --- a/docs/FEATURES.md +++ b/docs/FEATURES.md @@ -148,6 +148,10 @@ speed-pending, which [BENCHMARKS.md](BENCHMARKS.md) tracks. | `CohereForCausalLM` | Command-R / Cohere (and Cohere2) | scaffold: W0 tiny-random oracle run-verified; real-checkpoint gate blocked | no run | +The Qwen3.5 MoE loader also builds under Apple Clang with project warnings +promoted to errors. Its layout-refusal path uses the same messages and behavior +on every platform. + ### Standalone and non-registered lanes These run through dedicated forwards, not the `REGISTER_VLLM_MODEL` registry, so diff --git a/docs/STATUS.md b/docs/STATUS.md index 483224c56..a24d96bf4 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -2529,6 +2529,12 @@ The next run also guarded Voxtral's GCC-only `-Wstringop-overflow` suppression out of Clang, where it was fatal. Its Go `go-m1cpu` diagnostics were nonfatal and outside this repo. +**Darwin Qwen3.5 build repair (2026-08-16).** The MoE layout refusal lambda no +longer captures its namespace-scope help string. Apple Clang diagnosed that +redundant capture as `-Wunused-lambda-capture`, and the project promotes the +warning to an error. The lambda can still read the namespace-scope name +directly. Runtime behavior and the Qwen3.5 lifecycle state are unchanged. + **Agent onboarding:** [session](../.agents/specs/session-onboarding.md) + [entry](../.agents/specs/developer-agent-protocol-entrypoint.md) implemented; documentation-only. diff --git a/src/vllm/model_executor/models/qwen3_5_weights.cpp b/src/vllm/model_executor/models/qwen3_5_weights.cpp index 715044386..7de1b9da8 100644 --- a/src/vllm/model_executor/models/qwen3_5_weights.cpp +++ b/src/vllm/model_executor/models/qwen3_5_weights.cpp @@ -950,7 +950,7 @@ void CheckMoeQuantLayoutSupported(const std::vector& names, // ...and the three NON-routed components, refused by the dtype the probe // RESOLVED rather than discovered as a complaint from inside a reader (#490). // Each of these already failed before #864; naming it is the whole change. - const auto refuse = [&kRequired](const char* what, MoeProjDtype got, + const auto refuse = [](const char* what, MoeProjDtype got, const char* supported) { VT_CHECK(false, std::string("qwen3_5 weights: a ") + MoeProjDtypeName(got) + " " + what +