Skip to content

Commit 653eb1f

Browse files
committed
docs(design): the execution record of #636
What landed in each repository, the five findings made while implementing, and the measurements taken so far, including lsp-mcpp's validator and its conformance runner against this mcpp. Refs #636
1 parent 1aaad45 commit 653eb1f

1 file changed

Lines changed: 46 additions & 0 deletions

File tree

‎.agents/docs/2026-09-14-636-build-database-and-the-latest-xlings.md‎

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -480,3 +480,49 @@ on another repository, and it is small.
480480
| consistency | One envelope builder, one selector parser, one unit record, one std command source | none |
481481
| seamless upgrade | A pin move reaches an existing Windows home only through B's fix; swept stores keep working and are repaired on request | B and M7 ship in one pull request; `self doctor --fix` |
482482
| test coverage | Each criterion has a leg that fails on the released binary; the schema validator refuses keywords it does not implement, so a schema change cannot pass unvalidated | M2 and M5 |
483+
484+
## 9. Execution record
485+
486+
### 9.1 What landed, by repository
487+
488+
| repository | vehicle | content |
489+
|---|---|---|
490+
| openxlings/xlings | #596, squash `3cd8061`, version 2026.9.14.1 | 2.3 to 2.6: the §6 sentence, private extraction, the strip branch removed, `self doctor` finding `SweptPayload` with remove-then-reinstall, e2e for the rule and the doctor |
491+
| mcpp-community/mcpp | #639, version 2026.9.15.1 | B, C, the pin of §4, and the findings of 9.2 |
492+
493+
### 9.2 Found during implementation
494+
495+
1. **A digest string that GCC accepted and clang refused.** The selector digest
496+
joined values with `"\x1f"` followed by a letter (`"\x1ffeatures"`), which
497+
is one out-of-range hex escape. GCC truncated it; clang on macOS and Windows
498+
refused the file. The separator is now a newline.
499+
2. **The four S1 SHOULD fields.** lsp-mcpp's validator (`specs/tools/validate.py`,
500+
`s1_semantics`) requires `config-files`, `baseline-arguments`,
501+
`local-arguments` and `private`, which the first rendering omitted. Each is
502+
now derived from the plan (5.4).
503+
3. **An entry source read by a second parser.** Validating lsp-mcpp's own
504+
database found a scanner test planned as importing `also.fake`, `in.raw` and
505+
`real`, which are text inside its raw string literal. The entry of a target
506+
that no `sources` glob matched was read by line-leading `import`, in two
507+
places. Both now call `scan_entry_file` (5.4). A test source placed in
508+
`src/` did not reproduce it, which is why the fixtures had never shown it.
509+
4. **A precondition met by one runner's configuration.** e2e 687 inherited
510+
the developer configuration, and the macOS runner's configuration names its
511+
`~/.xlings` shim as the xlings binary: nothing was vendored and the test
512+
stopped before either criterion. It now plans in a home with its own
513+
configuration.
514+
5. **The swept-payload fingerprint.** The first xlings rendering flagged any
515+
top-level file with a download extension or a `.meta` name, so a package
516+
shipping `setup.exe` would be reinstalled on every `--fix`. The fingerprint
517+
is now a zero-length `<name>.lock` whose `<name>` is a sibling, has a download
518+
extension, or has a `<name>.meta` sibling.
519+
520+
### 9.3 Measurements
521+
522+
| run | reading |
523+
|---|---|
524+
| lsp-mcpp `s1_semantics` and `mcpp_contract`, schema, argument decomposition | 0 failures on a GCC 16 project, an LLVM 22 project, and the lsp-mcpp repository (11 sets, `std` from openkal-llvm-runtime 0.9.6) |
525+
| lsp-mcpp conformance runner with this mcpp in place of `lsp-mcpp-mock-mcpp` | `mcpp-emit` 12/12, `mcpp-emit-package-std` 13/13; a watch scenario on the real manifest 10/10 (an edit reloads; a broken manifest leaves the model stale with `MCPP_BUILD_DATABASE_PLAN_FAILED`; the repair makes it fresh) |
526+
| `mcpp emit build-database` on the lsp-mcpp repository | 0.84 s; `git status` unchanged |
527+
| e2e 687 on windows-2022 (39053b9a) | A and B pass: the second command prints no path error, and an older vendored xlings is replaced |
528+
| e2e subset touching `mcpp test` and entry mains, Linux | 60 pass, 6 skipped for capability, 0 fail |

0 commit comments

Comments
 (0)