Repository navigation
Record clangd 22.1.8 modules re-canary: consolidation blocker narrowed to one failure class - #39
Merged
Merged
Conversation
Consolidation precondition 2 re-tested with clangd --check across the representative cases. The blocker is much narrower than first recorded: - Module interface units lint clean, including the heavyweight folly/protobuf GMF units; the only diagnostics are misc-unused-using-decls false positives on export-using re-export blocks (suppressible, and gone at consolidation anyway). - Import-using consumers lint clean via the build tree's BMIs (-fmodule-file from the compile command); no experimental flag. - The one remaining failure class: preamble/BMI std-type unification when a std type crosses the module boundary in an API (Branded<std::string>) — the still-excluded toEthereumAddressOrENSNameTest.cpp. This is what still blocks consolidation, with a one-command re-canary recipe recorded. Docs-only. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Bugbot is not enabled for this team, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Docs-only. With preconditions 1 (Android) and 3 (header DAG) resolved, I re-ran the clangd modules canary against the current toolchain (clangd 22.1.8) to get a precise reading on the last gate — precondition 2, "clangd can lint purview code". The verdict is much narrower than the memo's 2.1-era wording:
What now works (tested with
clangd --check+ each package's compile database):streamr.dht-all.cppm. The only diagnostics aremisc-unused-using-declsfalse positives on theexport usingre-export blocks: suppressible, and moot after consolidation (consolidated code lives in purview; there are no re-export blocks).-fmodule-file=flags. No--experimental-modules-supportneeded.The one remaining failure class: preamble/BMI std-type unification. When a std type crosses the module boundary in an API — e.g.
EthereumAddress=Branded<std::string>— clangd treats the preamble's textualstd::string(from<string>/gtest includes) and the BMI'sstd::stringas distinct types, producing spurious "no matching constructor/function" diagnostics. This is exactly the still-excludedtoEthereumAddressOrENSNameTest.cpp, and post-consolidation it would hit any consumer passing std types to imported APIs. This class alone is what still blocks consolidation.The memo now records a one-command re-canary recipe to run on each LLVM release; the moment that single case reports clean, all three consolidation preconditions are green and the go/no-go is purely an owner decision.
🤖 Generated with Claude Code