Upstream defects register (clangd, mcpp)
维护者通常 1 天内回复
还没有人认领这个 Issue。
评估
- 难度
- 3/5
- 预计耗时
- 1-2 天
- 新手友好度
- 48/100
- Issue 类型
- 文档
- 描述清晰度
- 基本清楚
- 活跃度
- 活跃
- 技术栈
- cpp
调研方向
Start with this issue's register, then read src/engine/clangd/workarounds.cpp and .agents/docs/design.md §7. Check the relevant comment and upstream status before changing a row; done means the index, problem comment, workaround reference, and upstream link or status agree.
由索引模型根据 Issue 内容生成。
描述
Register of upstream defects mcppls depends on. This body is the index; each comment below is one problem.
Bundled: clangd 23.1.0 (clangd/clangd release). Code workarounds: src/engine/clangd/workarounds.cpp (WA-CLANGD-<n>, listed by mcppls report); deliberate limits: .agents/docs/design.md §7.
Rules: a new problem gets a comment and a row here; adding or removing a workaround updates its comment; link upstream issues/fixes when they exist; walk this list before bumping the bundled clangd.
clangd / LLVM
| ID | Problem | Upstream | mcppls |
|---|---|---|---|
| UP-01 | Module name ending in . hangs the preprocessor (crashes on Windows) |
unfiled; fixed on main? (deferred) | WA-CLANGD-001; disk check (0.0.5) |
| UP-02 | Unresolved import can deadlock the unit's build | unfiled | WA-CLANGD-002; disk check (0.0.5) |
| UP-03 | Modules a file needs are built one at a time | unfiled (perf) | WA-CLANGD-003 |
| UP-04 | Finding a module's unit scans the whole database | unfiled (perf) | WA-CLANGD-004 |
| UP-05 | MSVC STL aligned allocation rejected (align_val_t ambiguous) |
fixed in 23.1.1 (llvm-project#218152) | WA-CLANGD-005 |
| UP-06 | Stops answering one file while answering others | unfiled | quarantine |
| UP-07 | Stuck with no CPU after rapid module edits | unfiled | StuckWatch restart |
| UP-08 | Background index does not build module imports (definitions indexed apart from their declarations) | unfiled (gap); cf. clangd/clangd#2569 | WA-CLANGD-008: implementation units built in the foreground; search by name (0.0.6) |
| UP-09 | No textDocument/semanticTokens/range |
unfiled (gap) | capability gated |
| UP-10 | import std; then an unprovided export import never finishes |
unfiled | known limit |
| UP-11 | Module scanning fails on link-phase driver errors | unfiled | fixed in mcppls 0.0.5 (-c) |
| UP-12 | Windows: Build AST crash on a module unit with unresolved imports | unfiled; needs stack | avoided by -c; crash file set aside (0.0.5) |
| UP-13 | Windows: Build AST crash on some units even with correct commands | unfiled; needs stack (Windows release prints none) | contained (0.0.5); crash records carry clangd's SHA-256 (0.0.8) |
| UP-14 | Imports added in an unsaved buffer are not built until save | unfiled | WA-CLANGD-007; disk check (0.0.5) |
| UP-15 | Missing ; after import is reported on the next line |
unfiled | WA-CLANGD-006 (0.0.5) |
| UP-16 | C++26 contracts and reflection are not implemented | gap (upstream work in progress) | documented; VS Code colors contract keywords |
| UP-17 | A function defined in an open unit is missing from the index (prepare_build) |
unfiled; not reduced yet | definition found by name (0.0.6) |
| UP-18 | A module lock left by a killed clangd is never released (Windows waits forever) | unfiled | locks cleared at start and on a wait (0.0.7) |
| UP-19 | One BMI directory per command, never removed | unfiled (gap) | two newest kept, mcppls cache --prune (0.0.7) |
| UP-20 | Crash loop on a fan-out save of mcpp.manifest.types |
unfiled; needs a stack | backed off, bundle written (0.0.7); crash records carry LLVM's stack dump and clangd's SHA-256 (0.0.8, K-3) |
| UP-21 | A unit closed while its build runs can keep a worker spinning | unfiled | K-8 restart (0.0.8); K-7 |
| UP-22 | clang-tidy: misc-const-correctness says a filter/drop_while/chunk_by/split view can be const (issue #37) |
unfiled; reduced case ready | WA-CLANGD-010 drops it (0.0.9) |
| UP-23 | --experimental-modules-support rescans module dependencies on every completion (~3x slower on heavy headers, issue #37) |
unfiled (perf) | WA-CLANGD-009: off for projects without modules (0.0.9) |
| UP-25 | Every completion on a file that imports modules costs ~1 s, even unchanged (the module context is re-loaded per request; a file without imports in the same project: 60 ms) | unfiled (perf) | WA-CLANGD-012: the file's budget extends past the flat one when the engine's answers keep landing just past it (0.0.11, PR #41) |
| UP-26 | Preamble trace filename metadata can outlive borrowed storage and corrupt trace JSON | unfiled; pinned 23.1.0 source-backed | proposed maintained patch0051 owns metadata; delayed-context/native canaries pending |
| UP-27 | Default OverlayCDB invokes a null command mangler during module scanning | unfiled; 23.1.0 source/API control confirmed | maintained engine0058 pending; no product workaround |
| UP-28 | Header-import PCH visibility guard reparses heavy textual prefixes | llvm-project#181770; mitigation#189284 | conservative handling retained; verified import-free prefix candidate0066 pending |
| UP-29 | GNU std producer flags enable Clang implicit builtin maps during scanning | unfiled; pinned23.1.0/GNU16.1 source evidence | scoped same-install standard-producer adapter candidate0067 pending |
| UP-30 | One prerequisite module that does not compile leaves its importers with no module at all | unfiled | WA-CLANGD-014 (importers to mcppls's engine); mcppls-clangd 0.0.13 0028 (partial-prerequisite-modules) retires it |
| UP-31 | Completion in a module importer waits without bound for its first preamble and new imports | unfiled | mcppls-clangd 0.0.13 0027 (bounded-module-wait): 600 ms / 250 ms, answers marked incomplete |
| UP-32 | Why a module is rebuilt, and what a file's prerequisites cost, is not logged at the default level | unfiled (observability) | mcppls-clangd 0.0.13 0026 (module-rebuild-reasons); mcppls 0.0.13 startup line |
mcpp
| ID | Problem | Upstream | mcppls |
|---|---|---|---|
| UP-M1 | mcpp: macOS deployment target ignored when cross-compiling | fixed (mcpp#685, 2026.9.24.1) | done in 0.0.5 |
| UP-M2 | mcpp: emit build-database fails whole on one member's failure |
fixed (mcpp#699, 2026.9.26.2) | partial answer used; download offer for a missing member (0.0.6) |
| UP-M3 | mcpp: build programs cannot tell a plan/emit pass | filed: mcpp#699 | none |
| UP-M4 | mcpp: a rule's inputs are translation units; generated output points at an empty directory | filed: mcpp#724 | inputs left out; project's target/ read; missing reported (0.0.6) |
| UP-M5 | mcpp 2026.9.27.1: workspace = true in a path-dependency member fails |
filed: mcpp#725 | CI pins 2026.9.26.1 |
| UP-M6 | mcpp: emit build-database takes about a minute on a large workspace |
unfiled (perf) | deadline follows the producer; reruns only on structure changes (0.0.7) |
| UP-M7 | mcpp: a module source two packages include is reported as provided twice; the member is left out | unfiled | partial answer used; stand-ins together (0.0.8, P-1) |
xmake
| ID | Problem | Upstream | mcppls |
|---|---|---|---|
| UP-X1 | GCC module mapper files are keyed by the source's relative path only: another build of the same path (a second build directory, another checkout) overwrites them and breaks the next incremental build | unfiled; reproduced on 3.1.1 and 3.1.2 | 0.0.16 triggered it (#69); fixed in 0.0.17: XMAKE_TMPDIR for the private run (fixture xmake-shared-tmp) |
| UP-X2 | xmake project -k compile_commands trusts a module scan cache only a build updates; a missing dependfile then fails every describe until a build |
unfiled; reproduced on 3.1.1 and 3.1.2 | 0.0.16 fell back to inference (#68); fixed in 0.0.17: private state as a disposable cache, redone once on this error (fixtures xmake-target-then-mode, xmake-stale-state) |
mcpplibs
| ID | Problem | Upstream | mcppls |
|---|---|---|---|
| UP-L1 | tinyhttps 0.3 fails a request whose answer has a header line over 8 KB; GitHub's release-download redirect now has a 9.2 KB one | unfiled | packaging falls back to curl (#70, 0.0.17); the server is not affected |
PRoot (Termux)
| ID | Problem | Upstream | mcppls |
|---|---|---|---|
| UP-P1 | termux/proot: execveat with a directory descriptor fails with ENOSYS |
to be filed | openkal-linux 0.15.1 falls back to execve (0.0.7) |
| UP-P2 | seccomp mode returns with rewritten argument registers (termux, proot-me) | to be filed | argument registers declared in/out (0.0.7) |
| UP-24 | clangd leaves a copy-on-read BMI behind whenever it dies before releasing it; the only GC waits 3 days and reads atime (unreliable on Windows, and it removes published BMIs too) | 23.1.0 (bundled) | unfiled (recorded here) |
openkal
| ID | Problem | Upstream | mcppls |
|---|---|---|---|
| UP-O1 | openkal-macos 0.12.0 terminates a closed-pipe writer with SIGPIPE | unfiled | WA-PLATFORM-001: per-input-pipe protection; native fix validation pending |
VS Code / languageclient
| ID | Problem | Upstream | mcppls |
|---|---|---|---|
| UP-V1 | vscode-languageclient 10.1.1 loses startup ownership when the server exits during initialize; unhandled start/stop rejections | unfiled; standalone reproducer TODO | WA-VSCODE-003; queued fresh-client recovery; native macOS SIGPIPE cause remains unverified (0.0.12, PR #46) |
| UP-V2 | vscode-jsonrpc 9.0.2 throws from a discarded async request executor after a failed stream write | unfiled; deterministic Linux reproduction | WA-VSCODE-004; failed protocol writes close their connection; native Intel macOS revalidation pending (0.0.12, PR #46) |
- 主要语言
- C++
- 星标
- 25
- 派生
- 2
- 平均合并
- 21 小时 5 分钟
- 30 天内合并 PR
- 13
环境准备
- 没有 Dockerfile 或 Docker Compose 文件
- 有 Pull Request 模板
- 阅读贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
Sunrisepeak/mcpp-language-server 的其他 Issue
-
Extraneous quote in include completion可能已有人在做 @Sunrisepeak 于 1 天前认领。 未关闭bug
难度 2/5 1-3 小时 新手友好度 72/100
Sunrisepeak/mcpp-language-server#80 · 已指派 1 人 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 68/100
Sunrisepeak/mcpp-language-server#66 ·
维护者通常 1 天内回复
-
难度 3/5 1-2 天 新手友好度 70/100
Sunrisepeak/mcpp-language-server#81 ·
维护者通常 1 天内回复
-
难度 5/5 一周以上 新手友好度 1/100
Sunrisepeak/mcpp-language-server#77 · 3 条评论 ·
维护者通常 1 天内回复
-
难度 4/5 3-5 天 新手友好度 45/100
Sunrisepeak/mcpp-language-server#71 ·
维护者通常 1 天内回复
查看 Sunrisepeak/mcpp-language-server 的全部 Issue
相似的 Issue
-
status:needs-triage
难度 2/5 1-3 小时 新手友好度 74/100
PX4/PX4-Autopilot#29698 ·
维护者通常 1 天内回复
-
go perft exits when EvalFile is unavailable可能已有人在做 @Muawiya-contact 今天认领。 未关闭
难度 2/5 1-3 小时 新手友好度 68/100
official-stockfish/Stockfish#7292 · 2 条评论 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 77/100
arvidn/libtorrent#9149 ·
维护者通常 1 天内回复
-
难度 2/5 1-3 小时 新手友好度 75/100
rhalbersma/tabula#72 ·
-
难度 2/5 1-3 小时 新手友好度 76/100
esp8266/Arduino#9342 · 2 条评论 ·
维护者通常 1 天内回复