You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
English commits and release notes; no downstream project named in the repository; the #734 sections of the published-release verification
- CHANGELOG entries, and so the release notes, are written in English from
2026.9.28.3 on; the 2026.9.28.3 entry is rewritten in English. The
contributing and release skills and docs/92 state the rule for commits, pull
requests, CHANGELOG entries and release notes.
- The downstream validation project is no longer named: the design records
refer to it as the validation project, and the canary-list test states the
list of ecosystem repositories instead.
- tests/release/verify-published.sh gains the #734 sections: mcpp.core and the
build information, the package floor both ways, the fast path resuming after
an edit, pack -p with W3's workspace exception, and a consumer of the
published mcpp.plugins (PVER).
Copy file name to clipboardExpand all lines: .agents/docs/2026-09-26-compile-database-and-issue-699-design.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ status: landed
12
12
only; every verdict below is taken against a specification.
13
13
-mcpp-community/mcpp#699 (2026-09-25), *emit build-database for IDEs: one failing member
14
14
loses the whole database, and build programs cannot tell a plan pass*, from
15
-
Sunrisepeak/mcpp-language-server#23 and #24 on the GalTranslPP workspace.
15
+
Sunrisepeak/mcpp-language-server#23 and #24 on the validation project workspace.
16
16
-mcpp-community/mcpp#701 and pull request #702 (2026-09-25, head `c57c12f2`): a build
17
17
program declares a runtime library directory, and a passing check moves its stamp. Their
18
18
consumer is mcpp-plugins 0.13.0 (`deps-vcpkg`, `deps-cmake`, `rules-qt`), whose design
@@ -72,7 +72,7 @@ status: landed
72
72
|**O1**| deps-cmake and deps-vcpkg run installation as `check` actions | the plugin record | design gap: no action role describes construction whose file names are unknown | §5.4 P: the `prepare` role (D9) |
73
73
|**O2**| on Windows, a program started by hand does not find DLLs from a runtime search directory | this review | framework gap | §5.4 W: placement after the link (D11) |
74
74
|**S7**| a contract for build plugins | this review | new specification | SPEC-007, draft 0.1 (§5.6, D12) |
75
-
|| xmake's database; GalTranslPP's incomplete Qt and its environment checks inside build programs | report §3.4; #699| not mcpp | §3.7, §4.8 |
75
+
|| xmake's database; the validation project's incomplete Qt and its environment checks inside build programs | report §3.4; #699| not mcpp | §3.7, §4.8 |
76
76
77
77
Three statements:
78
78
@@ -342,7 +342,7 @@ redirect, and §3.2's rule.
342
342
### 4.1 The report
343
343
344
344
mcppls builds its model from `mcpp emit build-database --format json`. On the five-member
345
-
GalTranslPP workspace, the member GPPGUI requests the host tool `Updater` of `gpp.updater`, whose
345
+
The validation project workspace, the member gui requests the host tool `Updater` of `updater`, whose
346
346
build runs a `lupdate` check that failed because the machine's Qt lacked qtdeclarative. `emit`
347
347
answered `MCPP_BUILD_DATABASE_PLAN_FAILED` without `data`, the four members that planned lost
348
348
their sets, and mcppls fell back to a guessed model on which clangd crashed. The issue asks for
Copy file name to clipboardExpand all lines: .agents/docs/2026-09-27-eight-reports-by-home-and-one-optimisation-plan.md
+6-6Lines changed: 6 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -95,7 +95,7 @@ of the same round (§9.3), and the whole round lands in #727.
95
95
|#724 §2.3 | Run side-effect-free generators under `emit`| feature | not the engine | decline | none |
96
96
| review | An index that requires a newer mcpp prints `error: ... [E0006]` at the start of a run that then succeeds | defect (measured) | engine | a closing tip at most, and only when the run refreshed an index | W12 |
97
97
| review | Library, git and index acquisitions show no progress, while toolchains do | gap | engine; xlings if its `update_packages` emits no events | one renderer, more producers; non-terminal output without `\r`| W11 |
98
-
|#726| On Windows an xlings invocation left the registry's shim directory in front of the process `PATH`, kept `XLINGS_HOME` set for the rest of the run, and started xlings in the project's directory | defect (measured on GalTranslPP's Windows CI) | engine | fix, as pull request #727 proposes (§9.3) | W13 |
98
+
|#726| On Windows an xlings invocation left the registry's shim directory in front of the process `PATH`, kept `XLINGS_HOME` set for the rest of the run, and started xlings in the project's directory | defect (measured on the validation project's Windows CI) | engine | fix, as pull request #727 proposes (§9.3) | W13 |
99
99
|#721| GCC 16.1 ICE | upstream | not in scope for this round | excluded | none |
100
100
101
101
Everything is one round and one release, in one pull request (#727), in three
@@ -711,7 +711,7 @@ The reasons are structural, not a matter of taste:
711
711
-**Every object in an image must agree.** Every object and prebuilt library linked
712
712
into one image must use the same CRT: the `RuntimeLibrary` mismatch check fails
713
713
the link with LNK2038. The prebuilt ecosystem ships `/MD`, which is the case of
714
-
GalTranslPP with Qt and vcpkg.
714
+
the validation project with Qt and vcpkg.
715
715
-**Each `/MT` image has its own CRT state.** Under `/MT`, each DLL carries its own
716
716
heap, `FILE*` table, `errno` and locale. Memory or CRT objects that cross a DLL
717
717
boundary are therefore unsound. A program made of several images needs one
@@ -822,7 +822,7 @@ second key would be a second spelling of one fact.
822
822
`/MDd`, `/MTd`) is always a second statement. The engine never lets the last
823
823
word win.
824
824
- A word that agrees with the resolved model is warned as redundant.
Copy file name to clipboardExpand all lines: .agents/docs/2026-09-28-build-cost-foreign-toolsets-and-library-surface-design.md
+13-13Lines changed: 13 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,7 +40,7 @@ records their implementation.
40
40
so revision 2's compatibility argument is corrected. `[lib]` accepts an
41
41
unknown key without any warning, which is a defect (E12).
42
42
43
-
**Input.** The Windows CI of Sunrisepeak/GalTranslPP#3 (runs 36324593343,
43
+
**Input.** The Windows CI of the validation project's pull request (runs 36324593343,
44
44
36378870254 and 36396398845; windows-2025, 4 vCPU, mcpp 2026.9.28.2, mcpp:plugins
45
45
0.16.0), the sources of mcpp at `dbf71941`, of mcpp-plugins at `8e0362d`, of
46
46
vcpkg-tool and of mcpp-index at `e9b80c5`, vcpkg's documentation of triplets and
@@ -49,7 +49,7 @@ of §2.2.
49
49
50
50
## 0. Scope and the rule that selects the items
51
51
52
-
GalTranslPP is a validation project: a five-member workspace on Windows with a core
52
+
The validation project is a five-member workspace on Windows with a core
53
53
library of 76 translation units, a Qt GUI, 22 vcpkg ports and one CMake project.
54
54
It is evidence, not a requirement.
55
55
@@ -92,14 +92,14 @@ Project-specific items are listed in §9 with the reason they stay with the proj
92
92
| Reading | Value | Source |
93
93
|---|---|---|
94
94
|`mcpp build --workspace`, vcpkg binaries cached | 1726 s | run 36378870254 |
95
-
| of which: member `GalTranslPP` (core)| 285 s | same |
96
-
| of which: `GPPCLI`, including a second compilation of core | 315 s | same |
97
-
| of which: `GPPGUI`, including a third compilation of core | 1039 s | same |
95
+
| of which: the core member| 285 s | same |
96
+
| of which: `cli`, including a second compilation of core | 315 s | same |
97
+
| of which: `gui`, including a third compilation of core | 1039 s | same |
98
98
| core's 76 compile commands in the three positions | identical except the output directory (76/76) |`mcpp emit build-database`, same run |
99
99
|`mcpp build --workspace`, no vcpkg cache | 69.7 min, of which about 43 min are the 22 ports | run 36324593343 |
100
100
|`mcpp pack --format release`, two members | 168 s, of which about 70 s are 2675 single-file copy actions | run 36378870254 |
101
101
| files deployed beside each program by `mcpp build`| about 1270 per program, each one `stage_file` edge |`release-files.txt`, run 36396398845; `ninja_backend.cppm`|
102
-
| a no-op `mcpp run -p GPPCLI` on Windows | about 3 s; the project fast path is not taken | run 36378870254 |
102
+
| a no-op `mcpp run -p cli` on Windows | about 3 s; the project fast path is not taken | run 36378870254 |
103
103
| build systems of the 22 ports at baseline `ee6a47d`| 18 CMake, 3 header-only, 1 make under msys (icu); none MSBuild | the ports' `portfile.cmake`|
104
104
|`mcpp pack` of a library exporting `Alpha` and `Beta`, no lib root | exit 0, "Interface (headers only)", "Withheld (nothing)", `sources = []`| local, mcpp 2026.9.28.2 |
105
105
| mcpp-plugins with `deps-*` among its default features | its own build fails: `deps/deps.cppm: module 'mcpp' not found` (and the same for `src/declare.cppm`) | local copy of mcpp-plugins `8e0362d`, mcpp 2026.9.28.2 |
@@ -351,7 +351,7 @@ workspace in which several members share a library.
351
351
across projects.
352
352
-**The tool store** keys a path package by `tree_stamp`, which covers the files
353
353
under the package root. A library's inputs are not confined to its root:
354
-
GalTranslPP's core compiles `../3rdParty/3rdModule/*.ixx` and includes headers
354
+
the validation project's core compiles `../3rdParty/3rdModule/*.ixx` and includes headers
355
355
from `../3rdParty/...`. A key that sees only the root would serve stale objects.
356
356
357
357
**Design.**
@@ -740,7 +740,7 @@ package whose author can act on it.
740
740
| Report |`mcpp pack`| always | "Interface" lists the shipped closure, and "Withheld" lists every other unit. This replaces the "(nothing)" that the local reading of §2 shows |
741
741
742
742
W3 fires only for dependencies that declare a root, so libraries without a root,
743
-
such as GalTranslPP's core, cause none.
743
+
such as the validation project's core, cause none.
744
744
745
745
### 5.5 Phase 2 (conditions, no design)
746
746
@@ -982,7 +982,7 @@ The existing Linux libc++ row covers `resolve({resolved, row})`.
982
982
| E1 | mcpp | none; can ship alone | V or a following release |
983
983
| P0 to P4, P6 | mcpp-plugins | V released; `[package] mcpp = ">=V"` | plugins 0.17.0 |
984
984
| I1 | mcpp-index | E10 released (the engine and the index state one rule) | none |
985
-
| Validation | Sunrisepeak/GalTranslPP | plugins 0.17.0 | `resolved` on the masked row; `pack -p` |
985
+
| Validation | The validation project | plugins 0.17.0 | `resolved` on the masked row; `pack -p` |
986
986
| I2 | mcpp-index | E6 phase 1 released | input to E6 phase 2 |
987
987
988
988
## 9. Outside this design, and why
@@ -993,7 +993,7 @@ The existing Linux libc++ row covers `resolve({resolved, row})`.
993
993
| Two `-p` invocations instead of `--workspace`; Updater as an `artifacts` dependency; hoisting repeated `[target.windows.build]` values to the root | the project's manifests; each is available today |
994
994
| A CI job for the `release` profile | the project's CI |
995
995
| Re-running build programs under `mcpp pack` | by design: the pack context (`pack_format`) is an input of the build program; the recompilation it prints costs about 1 s |
996
-
| Flat module names (`Tool`, `Dictionary`) in GalTranslPP's core | the project's naming; I3 and the facade form of I2 are the remedy when the library is published |
996
+
| Flat module names (`Tool`, `Dictionary`) in the validation project's core | the project's naming; I3 and the facade form of I2 are the remedy when the library is published |
997
997
| Deriving `host-module` from a build program's imports (a consumer writes no `host-module = true` when `build.mcpp` imports the module) | a usability improvement, independent of every item here; it has its own evaluation, with its own criterion, so that it is not lost by being folded into another item |
998
998
| Payloads provisioned when a build program uses them | unnecessary once families are enabled by feature (§3.4) |
999
999
| An index resolver that skips versions above the engine's floor | a follow-up of E9 in mcpp-index and xlings |
@@ -1041,7 +1041,7 @@ states them together, so that one slow build is not read as a regression.
| Windows with Visual Studio; mcpp resolves `msvc@system` (the usual machine, and GalTranslPP's CI) | vcpkg picks an instance itself | the same instance, named; **no rebuild**; MSBuild ports build | M1, M2a |
1044
+
| Windows with Visual Studio; mcpp resolves `msvc@system` (the usual machine, and the validation project's CI) | vcpkg picks an instance itself | the same instance, named; **no rebuild**; MSBuild ports build | M1, M2a |
1045
1045
| the same, but the machine has several instances or toolsets and mcpp resolves another one than vcpkg would | ports built by a toolset other than the program's | ports built by the program's toolset; **one rebuild** | M1 (mechanism), vcpkg `get_toolset` |
1046
1046
| Windows without Visual Studio; managed toolset | deps-vcpkg fails: no instance | CMake and make ports build; MSBuild ports fail with the named error | M3a, M3c, M2c |
1047
1047
| Windows with Visual Studio, and the project pins a managed toolset | ports built by Visual Studio's toolset, the program by the managed one (inconsistent) | CMake and make ports rebuilt once by the managed toolset; **an MSBuild port now stops with the named error** | M2c |
@@ -1120,7 +1120,7 @@ Items checked and found in order:
1120
1120
- no item makes the engine learn a foreign tool;
1121
1121
- every warning has a reader;
1122
1122
- every criterion names its denominator or its reading;
1123
-
- no item is justified by GalTranslPP alone;
1123
+
- no item is justified by the validation project alone;
1124
1124
- every changed generated command line has a stated one-time cost;
1125
1125
- every decision in §11 has a state.
1126
1126
@@ -1166,7 +1166,7 @@ green with V.
1166
1166
- **Sandbox.** A fresh xlings sandbox with the CN mirror configured for mcpp and
1167
1167
xlings. It checks that the released V and plugins 0.17.0 install, build and run
1168
1168
the index members and the examples of this design.
1169
-
- **GalTranslPP.** PR #3 is rebased onto the latest upstream and adopts the
1169
+
- **The validation project.** PR #3 is rebased onto the latest upstream and adopts the
1170
1170
results: `plugins-core` through the family features, `mcpp pack -p` from the
1171
1171
root, and `resolved` in its CI. Its Windows CI measures the build again against
0 commit comments