Skip to content

mcppls-clangd 0.0.12: 25 steady topic patches, linux-arm64 at the Ubuntu 20.04 floor - #2

Merged
Sunrisepeak merged 5 commits into
mainfrom
release/0.0.12-joint
Oct 9, 2026
Merged

Sunrisepeak merged 5 commits into
mainfrom
release/0.0.12-joint

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

The engine mcpp-language-server 0.0.12 ships: llvm-project 23.1.0 plus 25 topic patches, built for linux-x64, linux-arm64, darwin-arm64 and win32-x64.

What changed

  • 25 topic patches instead of 74 incremental ones. The incremental series was regrouped by topic. The patched tree is byte-identical (a2e92ba00e6666eaa5d1f975a4bd65b80537dbab, checked by applying both series). Each multi-change patch lists the changes it combines. patches/HISTORY.md maps the old numbers.
  • Every patch is steady. The ledger defines steady as: the series builds on every release platform, the patch's mapped tests pass, and the Ubuntu 20.04 floor package passes its runtime controls. verify-series now runs check_ledger.py --release, so a draft patch cannot reach a tag. A ledger row may list several register rows; the filename names the first one.
  • linux-arm64 is back, built at the same Ubuntu 20.04 / Clang 12 floor as linux-x64 (pinned arm64 rootfs fcd7f696…). It runs in build-test and in the release, and the Linux e2e controls run on both architectures.
  • Raw evidence lives outside the tree. 3,212 evidence files and the 74 incremental patches move to the evidence-0.0.12 release archive (tests/evidence/README.md). ci/check_tree.py refuses tracked files above 1 MiB, generated .pcm/.pch/.o files and home-directory paths.
  • The engine version stays 23.1.0-mcppls.0. Changing LLVM_VERSION_SUFFIX would rebuild nearly all of LLVM on every platform. mcpp-language-server pins the engine by binary SHA-256 and by the engine.json source identity, not by the version string.

Review guide

  • patches/PATCHES.md: ledger and the definition of steady.
  • patches/0001…0025: the series.
  • ci/check_ledger.py, ci/check_tree.py, ci/test_release_gates.py: release gates.
  • .github/workflows/{build-test,release,verify-series}.yml and .github/actions/linux-floor: platforms.

The full incremental history is kept in the archive/0.0.12-joint branch. Companion product PR: Sunrisepeak/mcpp-language-server#46

…guage-server 0.0.12 ships

The 0.0.12 engine was developed as 74 incremental patches. They are regrouped
into 25 topic patches (module validation memo, prerequisite DAG, dependency scan
memo, compiler workers, owned payloads, preamble policy, selective completion
loading, ...) whose patched tree is byte-identical to the incremental series
(a2e92ba00e6666eaa5d1f975a4bd65b80537dbab, checked by applying both). Every
multi-change patch lists the changes it combines; patches/HISTORY.md maps the
incremental numbers older notes use.

The ledger gives every patch its register rows (the filename's row first),
an executable test map and a drop condition, and defines steady: the series
builds on every release platform, its mapped tests pass, the Ubuntu 20.04
floor package passes its runtime controls. verify-series now runs the release
ledger check, so a draft patch cannot reach a tag.

linux-arm64 is built again, at the same Ubuntu 20.04 / Clang 12 floor as
linux-x64 (pinned arm64 rootfs), in build-test and in the release; the Linux
e2e controls run on both architectures.

Raw evidence (3212 files) and the incremental patches move to the
evidence-0.0.12 release archive; ci/check_tree.py refuses tracked files above
1 MiB, generated module/object files and home-directory paths. The full
incremental history is kept in the archive/0.0.12-joint branch.
@Sunrisepeak
Sunrisepeak force-pushed the release/0.0.12-joint branch from 61ea393 to e261bbe Compare October 9, 2026 06:52
@Sunrisepeak Sunrisepeak changed the title release: 0.0.12 joint maintained engine implementation mcppls-clangd 0.0.12: 25 steady topic patches, linux-arm64 at the Ubuntu 20.04 floor Oct 9, 2026
…ot target macro tables

On x86_64-pc-windows-msvc the empty-prefix comparison differed in macros only
visible from a preamble (__STDC__). Macros and keywords come from the
preprocessor and language options, not from the external name lookup the
selective loading changes; the test now compares every declaration result
and nothing else. No non-test file changes.
The empty pattern selects no names, so it runs the ordinary external lookup,
and on x86_64-pc-windows-msvc a textual TU then also lists the target's
predeclared size_t and type_info and macros a preamble does not offer. That
is upstream behavior the selective loading does not touch; the comparison is
restricted to the header's declarations there. Every non-empty pattern keeps
the full comparison.
@Sunrisepeak
Sunrisepeak marked this pull request as ready for review October 9, 2026 10:08
@Sunrisepeak
Sunrisepeak merged commit 3ee4773 into main Oct 9, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant