Upstream defects register (clangd, mcpp)

Aperta
#24 47 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
48/100
Tipo di issue
Documentazione
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
cpp

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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)
Lingua principale
C++
Stelle
25
Fork
2
Merge medio
21h 5m
PR unite (30g)
13

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Sunrisepeak/mcpp-language-server

Tutte le issue di Sunrisepeak/mcpp-language-server

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.