GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — 2026.11.10.1: base packages, Windows GNU-ABI from every host, FreeBSD rows, foreign packing, test records for any framework; mcpp#911 N1–N8, #913, #902, #917 by Sunrisepeak · Pull Request #916 · mcpp-community/mcpp

Conversation

@Sunrisepeak

@Sunrisepeak Sunrisepeak commented Nov 9, 2026 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Member

Summary

mcpp 2026.11.10.1. The engine changes of the cross-platform design record (.agents/docs/2026-11-10-cross-platform-ecosystem-design.md, fourth version) and of its supplement on tests and dependency resolution (.agents/docs/2026-11-10-test-and-resolution-supplement-design.md, third version); each records its implementation. The engine stays free of system names: every new identity and provider is data.

Item Change e2e
E1 A platform-defined row, and a built-in row no built-in provider serves, is read as a built-in row: march/link-emulation reach the compile and an ld.lld link; nothing the payload built for its own host (libc++ headers, runtime directories, host -L/RPATH) reaches it; host-loader checks apply only to rows that run here (mcpp#911 N2, N3, N4, N7) 1057
E2 Programs that share an entry compile it once per program whose flags differ (N1) 1054
E3 A GNU-ABI Windows row finds its resource compiler in the paired payload or uses llvm-rc 1058
E4 FreeBSD's identities are built-in rows; clang-triple is row data unit
E5 Base packages: a sysroot whose root carries a package manifest is read as any package is (provides, [build] include_dirs/ldflags/std-module*, new compiler_runtime_dir); the package root is the sysroot; a provider's sysroot is its identity's base (SPEC-002 §2.5) 1059
E6 patches on a git workspace member apply in a copy of the whole repository (N5) 1060
E7 A foreign artifact is packed from its DT_NEEDED; --mode static links and checks a static program (N8) 1061
E8 [platform.link] flags on a compiler link are named in a warning (N6) 1062
E9 mingw-llvm provider and aarch64-windows-gnu: Windows GNU-ABI from every host over xim:mingw-w64-sysroot (mcpp#913); the unserved-target remedy names a parseable spelling 1063
E10 A scan_overrides glob whose files exist but are excluded from this build is kept (mcpp#902) 1064
E11 i686-linux-musl, i686-linux-gnu, i686-openkal are planned rows unit
E13 MCPP_KERNEL_ABI_INTERFACES / mcpp::kernel_abi_interfaces() for build programs 1056
E14 Layer suppliers that require one another in a circle are refused (layer-cycle) 1055
mcpp#917 mcpp test states what its programs report as they report it, for any framework that implements the test protocol: parts/part_of (test-parts), case records as cases begin and end (test-case-stream), cases' kind/tags/metrics/bounds and the program's usage in the records and in the kept run (test-metrics, protocol P6, P10.2, P12). New SPEC-017 states the runner. Kept as mcpp's contract: --list's main keeps its meaning (a field never changes meaning); the end record carries a case exactly as cases does (duration_ms); build_started_ms is not written (every test program is built in one build) 1065
mcpp#914 override = true on a dependency entry of the root decides that package for the whole graph; the lock records it and --locked names a drift (override); a library's override is ignored with a warning, a platform group member's is warned; an irreconcilable request names the override spelling; an exact pin of a shared package is noted (dependency/exact-pin) and refused by mcpp publish for a library. A version a merge replaces withdraws its requests (T1) 1066, 1071
mcpp#915 mcpp test releases the build directory's lock before tests run; each invocation's protocol files are its own (test-protocol/<pid>-<started_ns>/) 1068
Test fast path The test graph is test.ninja, sharing .ninja_log/.ninja_deps with build.ninja (one dyndep rule text); the package's programs are built through the build fast path; an unchanged project's tests run from test-plan.json without planning; Compiling lines only for real work 1069
mcpp test spec docs/specs/test.md (SPEC-017 v2.0): base B1–B6, optional O1–O9, protocol P1–P12. A built, unrun program's record carries its launch (B5, test-launch-records); a framework states its capabilities and session in its entry target (test-capabilities, test-session; B6, test-frameworks); a case's checks (O3, test-checks) and output (O8, test-output) 1070
Registry A home that borrows another's registry ([xlings] home) leaves the registry's index places as their owner recorded them 1067
Platform openkal-platform 0.25.0; the ok-image launcher depends on mcpplibs.os 0.4.4 (the openkal 0.24 and 0.25 families); a toolchain's C++ archives built for another target are not linked (degraded diagnostic) 1025, unit

Fixes from this PR's first CI run (42704688606): a provider's default base yields to a dependency graph that supplies the system (a carrier for windows-aarch64 had been linked over the MinGW base beneath openkal-windows); a carrier that names no hosts is built only where the platform's runner exists (runner.hosts), so --systems all leaves windows-aarch64 out with the reason. The other failures of that run were index fetches (install path missing after fetch from a mirror) and a temporary-directory race, unrelated to the change.

Specs: SPEC-002 v1.6, SPEC-006 v0.11, SPEC-013 v1.7, SPEC-014 v2.2, SPEC-016 v1.1, SPEC-017 v2.0 (new: the mcpp test spec). Usage docs 04, 05, 08, 10, 21, 22, 25, 30, 35, 50 and the READMEs, in English and Chinese. CHANGELOG, version 2026.11.10.1; CI bootstraps from 2026.11.9.1. New AGENTS.md: the repository's rules in their shortest form, linked to the documents that state them.

The base packages this release names are in xim-pkgindex (openxlings/xim-pkgindex#1132, #1133): mingw-w64-sysroot@20261104-1, [email protected], [email protected].

Refs mcpp#911, mcpp#913, mcpp#902, mcpp#917, mcpp#914, mcpp#915.

Test plan

  • Local (Linux x86_64): mcpp test 166/166; e2e 1054–1065 pass, 1063 against the published base; the windows-gnu, pack and target-side regression sets pass (669 fails identically on 2026.11.9.1: an environment limit of this host).
  • FreeBSD 14.5 VM: import std + exceptions, dynamic and static, on the per-identity base packages; wine: import std on x86_64-windows-gnu over the MinGW base.
  • CI on the existing suites: run 42763700279 (6350768), and run 42771952446 after the last functional commit (a02607a).
  • Then the e2e/bench migration onto mtest and the CI use of mtest's store, shards and reports (design §16), green again: run 42784172603 (5b1d024). mtest is installed into the global subos, so the report step runs it outside the repository.
  • The cross-platform validation (Linux gnu and musl, aarch64 musl under qemu, Windows GNU under wine, FreeBSD over its base packages in the VM, the ok image under okrun, packing) found two resource defects, fixed here with e2e: a cross gcc's "winres.h" taken for a project file (1058), and an include nothing provides failing in ninja (1072).

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

All reactions
Sunrisepeak added 20 commits November 10, 2026 03:37
@Sunrisepeak
E2, E13, E14: an entry per program's flags; the kernel-abi provider's…
c2176db
… interfaces for build programs; layer suppliers may not require one another in a circle
@Sunrisepeak
E1: rows a platform defines are read as the built-in ones are; nothin…
b02d61b
…g of the payload's host side reaches a row whose C library a platform describes
@Sunrisepeak
E3: a GNU-ABI Windows row finds its resource compiler in the paired p…
36ed687
…ayload or uses llvm-rc; a quoted toolchain header is the toolchain's
@Sunrisepeak
E4: FreeBSD's identities are built-in data with their compiler triple…
42ce1cc
…; the rows' systems are words of the language; a platform-served row names the platform as its remedy
@Sunrisepeak
E5: a base package states the C++ run-time and compiler run-time it h…
d7a9ea1
…olds beside its C library; its headers, libraries and std module stand where the payload's would
@Sunrisepeak
E6: a patched member of a git repository is patched in a copy of the …
2954085
…repository, so its edges to sibling members hold
@Sunrisepeak
E7: a foreign artifact's closure is read from its DT_NEEDED; --mode s…
0402594
…tatic links and checks a static program

A program for another system was handed to the host's ldd (exit 127). Its
closure is now read from the file: a library this build produced travels
beside it, every other name is the target system's. `--mode static` sets
force_static and checks the file, so a dynamic program is never packed under
the `-static` name; a row whose C library a platform describes supports a
full static link.
@Sunrisepeak
E8: [platform.link] flags that a compiler link does not use are named…
3528c98
…; docs/04 states per-target object variants

The words are given to ld.lld only; a platform with driver = "compiler" now
receives a warning that names [platform.build] ldflags. docs/04 states the
per-target object variants and per-program entry objects instead of the
retired compile-once sentence.
@Sunrisepeak
E9: a MinGW-w64 base package serves the GNU-ABI Windows rows beside l…
8ba0cce
…lvm on every host; the unserved-target remedy names a spelling the parser accepts

The mingw-llvm provider names xim:mingw-w64-sysroot (the target side of
llvm-mingw: MinGW-w64 on UCRT, libc++, libunwind, compiler-rt) for
x86_64-windows-gnu and the new aarch64-windows-gnu row, below the gcc payload
where that exists. A base package on a MinGW row is the driver's sysroot with
the run-times its layers state; its compiler runtime is read from the
directory the base names (compiler-runtime-dir), and a static link takes its
archives. A provider's sysroot package is the base statement of last resort.
The unserved-target diagnosis names [toolchain] <host> = { path, prefix }
instead of [target.X] toolchain = "<path>" (mcpp#913).
@Sunrisepeak
E10: a scan override of a file this build excludes is kept for the bu…
5661f4a
…ilds that compile it (mcpp#902)

A [scan_overrides] glob whose files exist and take no part in this build -- a
feature that is off, a ! rule of a [target.<selector>.build] -- is no longer
refused; a glob that matches no file of the package still is.
@Sunrisepeak
E11: the 32-bit hosted identities (i686-linux-musl, i686-linux-gnu, i…
8438330
…686-openkal) are registered intent

Planned rows: a request is refused as planned rather than as an unknown
target, and an explicit [target.<row>] toolchain opts in early. No payload of
the index targets them, and openkal's 32-bit class is a design discussion.
@Sunrisepeak
docs: SPEC-002 v1.6 (base packages, layer-cycle), SPEC-006 v0.11, SPE…
4fb8403
…C-013 v1.7, SPEC-014 v2.2, SPEC-016 v1.1; MCPP_KERNEL_ABI_INTERFACES and layer-cycle in docs/30 and docs/50
@Sunrisepeak
docs: base packages (docs/22), the targets every host reaches (docs/2…
a13c002
…1), foreign ELF closure and the static check (docs/10), defined rows, served FreeBSD rows and link.flags (docs/35); en and zh
@Sunrisepeak
2026.11.10.1: version, CHANGELOG; CI bootstraps from 2026.11.9.1
bcbccf4
@Sunrisepeak
AGENTS.md: the repository's rules in their shortest form, linked to t…
9c7827d
…he documents that state them; design record 2026-11-10 (cross-platform ecosystem, fourth version)
@Sunrisepeak
E5: a base package is an ordinary package -- provides answers its lay…
a37543d
…ers, [build] states them, the package root is the sysroot; a provider's sysroot is its identity's base

The [base] table (an architecture-keyed roots map, include-dirs, libs by link
form, compiler-runtime-dir) is replaced by the manifest vocabulary every layer
supplier uses: include_dirs, ldflags, std-module*, and one new [build] key,
compiler_runtime_dir (-resource-dir for clang, -B for gcc). One base package is
the sysroot of one identity; a platform's provider takes sysroot as a package
or { path }, ahead of the platform's own. The mingw-llvm provider names
xim:mingw-w64-sysroot@20261104-1.
@Sunrisepeak
tests: the rows E4, E9 and E11 add -- capability pins, the windows se…
0b1c918
…t, the rows snapshot; freebsd is a platform name
@Sunrisepeak
README: the rows this release adds; graph.cpp stays within its length…
2bfcce9
… limit
@Sunrisepeak
A provider's base yields to a graph-supplied system; a carrier that n…
0e5f4e7
…ames no hosts exists where the platform's runner does

CI on #916: a carrier for windows-aarch64 was built now that aarch64-windows-gnu
is a row, over the mingw-llvm base beneath openkal-windows (an x86_64
implementation). The provider's sysroot, an engine default, is no longer a
statement when the graph supplies the system, as the row's toolchain
convention already is not; and a carrier that names no hosts is built only
where the platform's runner exists (runner.hosts), so --systems all leaves the
others out with the reason.
@Sunrisepeak
mcpp test states what its programs report as they report it: parts, c…
943cf6c
…ase records, metrics and bounds; SPEC-017 (mcpp#917)

The runner's side of the test protocol, for any framework that implements it:
- test-parts: --cases names the parts [test] split runs a program as (parts),
  and each part's record names its program (part_of);
- test-case-stream: the report is read while the program runs (P5.1), and a
  case record states each case's beginning and end before the program's record;
- test-metrics: the cases' kind, tags, metrics and bounds and the program's
  usage reach the records, and the run kept under target/mtest carries them
  with each case's start and its failures' expected and actual values (P6,
  P10.2, P12), so a Bench case's measurements reach mtest analyze trend.
The --list main keeps its meaning. SPEC-017 states the runner, the protocol it
reads, the records and the store, framework-neutral.
@Sunrisepeak Sunrisepeak changed the title 2026.11.10.1: base packages, Windows GNU-ABI from every host, FreeBSD rows, foreign packing, mcpp#911 N1–N8, #913, #902 2026.11.10.1: base packages, Windows GNU-ABI from every host, FreeBSD rows, foreign packing, test records for any framework; mcpp#911 N1–N8, #913, #902, #917 Nov 9, 2026
Sunrisepeak added 9 commits November 10, 2026 09:12
@Sunrisepeak
Windows resources: the subjects of the plan are collected by their ow…
c73d73a
…n function

step13_windows_resources stays within the 400-line function limit.
@Sunrisepeak
A provider's base is kept only once the graph is known; a paired sysr…
3b3d22b
…oot is stated wherever no cfg is trusted

The base statement was memoised when first asked, before the dependency graph
was loaded, so a provider's base did not yield to a graph that supplies the C
library (x86_64-windows-gnu over openkal on hosts the mingw-llvm provider
serves). The compile side stated a paired provider's sysroot only when a cfg
was bypassed; the Windows llvm payload has no cfg, so aarch64-windows-gnu found
no libc++ headers there. The link side already stated it unconditionally.
@Sunrisepeak
Target matrix: the cells of the mingw-llvm provider and the planned r…
4c2a28f
…ows; e2e 1063 runs in the wine job
@Sunrisepeak
Two mcpp processes of one home install one package once; e2e 182 stat…
1a11fbb
…es the MSVC ABI it asks for

A dependency is installed under the home's install turn (registry/.install.lock,
re-entered for the package's own dependencies); a process that waited for the
turn looks for the package again before installing it. A second process was
told the install succeeded while the first was still placing the package, and
stopped with "install path missing after fetch" (two e2e workers fetching one
package into one home).

e2e 182: llvm alone is not a request for the MSVC ABI now that clang pairs with
the MinGW-w64 payload and compiles against it on a host without a cfg; the
project writes x86_64-windows-msvc as its target.
@Sunrisepeak
docs/25: a home's install turn
d8a43c0
@Sunrisepeak
A base package's C library is reported by the name its manifest state…
292edb5
…s; the mingw-llvm provider names mingw-w64-sysroot 20261104-2 (mcpp:c-abi=ucrt)

The c-abi layer of a base package was reported by the package's name
(mingw-w64-sysroot); it is the C library its provides states. Revision 2 of the
MinGW-w64 base states ucrt, the name mcpp's vocabulary gives the Windows C
library and the one the MinGW-w64 payload answers, so that one requirement
(compat.glfw's Win32 backend) is met by either. The design records I1 in that
form, and the defects CI exposed.
@Sunrisepeak
The base statement decided before the graph is kept as provisional, n…
0c84a78
…ot dropped

base_statement_text points into the memo; an answer that was not kept left it
pointing at another target's statement or at none. The engine tier's answer is
kept and marked provisional, and asked again once the dependency graph is
loaded.
@Sunrisepeak
A paired system's C++ library is stated on C++ commands only
7e141f4
-stdlib= rode the toolchain words every C and assembly command shares, so a C
unit of a paired target drew clang's unused-argument warning, an error under
-Werror. paired_stdlib_flag() is appended to the C++ flags and to the module
scan; the std module build asks for it as before.
@Sunrisepeak
A payload not found after its install names the directories it was lo…
a5ce319
…oked for in

The error "install path missing after fetch" now lists each version directory
the lookup tried, in its order, so that a provider that placed the payload
elsewhere is seen at once. e2e 15 prints the output of a failing mcpp test.
Sunrisepeak added 14 commits November 10, 2026 12:48
@Sunrisepeak
config: a borrowed registry keeps the index places its owner recorded
b0be77f
A home whose [xlings] home names an existing registry wrote its own index directory and store into that registry's configuration. The e2e homes under a temporary directory did, and later builds over the shared registry were sent to a store deleted with its home ("install path missing after fetch" on Windows and macOS). Such a home now records no place of its own there; e2e 1067 fails before and passes after.
@Sunrisepeak
e2e 1066: the replaced family's implementation is absent on every system
d52aade
The test named openkal-linux; on Windows and macOS the pinned os brings the 0.24 family's implementation of that system instead.
@Sunrisepeak
CHANGELOG: requests of a replaced version, the case summary, BSD C en…
852da52
…vironments, borrowed registries
@Sunrisepeak
test: release the build directory before running; build programs by t…
b842521
…he fast path; state only work done

- The build directory's lock is dropped once the tests are built, and each invocation reports into its own protocol directory, test-protocol/<pid>-<start>/, removed when it ends and swept when its process is gone (#915). e2e 1068 runs a build and a second test beside a running one; it fails before and passes after.
- The programs a test finds as MCPP_BIN_<NAME> are built by try_fast_build when no override applies, which now hands back the recorded programs.
- The packages are no longer announced before the build; Phase A's report names a package when one of its steps runs, and a test's Compiling line is written when the bulk pass ran a step of its own.
- The test graph is written to test.ninja (set on the three test plans).
@Sunrisepeak
build: the test graph is test.ninja, and a scan both graphs name has …
bf46eaf
…one command

BuildPlan::graphFile names the file the backend writes and drives (-f). test.ninja shares the directory's objects, .ninja_log and .ninja_deps with build.ninja, so an output both graphs name with different commands is rebuilt rather than reused. The dyndep rule's text no longer depends on the plan: $module_map carries its own leading separator, and obj/main.cpp.ddi.dd was rescanned on every switch between mcpp build and mcpp test because its command differed by a space. The e2e that read the test graph from build.ninja read test.ninja.
@Sunrisepeak
targets: the built-in platform of the openkal targets is openkal-plat…
1551697
…form 0.25.0

openkal-platform 0.25.0 (mcpp-index#751) groups openkal 0.25.0, openkal-image 0.5.5, openkal-musl 0.29.0 and the implementations of the 0.25 family; its mcpp floor is 2026.11.9.1.
@Sunrisepeak
CHANGELOG: test.ninja, the programs' fast path, Compiling lines, the …
3dd23cb
…released build directory, platform 0.25.0
@Sunrisepeak
test: the tests of an unchanged project run from the plan's record
501415b
A full mcpp test writes test-plan.json beside test.ninja (every test of the package: its program, its own sources, its protocol or the objects that state it, its guide; the runtime directories and the tool directory; [test] split and store) and a build-cache entry for the test graph (selection @test). The next mcpp test admits that entry through admit_recorded_build, which now takes the graph it replays, asks that the discovered tests are the recorded ones, that nothing under tests/ is newer than the graph and that ninja has nothing to do for the selected tests, and runs them from the record; the environment, the arguments after -- and the programs' places are joined at run time. A workspace's root package matches its own record (selection and group '.') on both fast paths. e2e 1069 fails before and passes after; on a workspace of 1,500 sources one program's unchanged tests went from 5.8 s to 0.13 s.
@Sunrisepeak
e2e 1068: a test that builds its own project neither waits nor plans (#…
a6ac2c8
…915)

The issue's shape: the test runs mcpp build in its project with the test's environment. Measured for T9 on 2026.11.9.1 and 2026.11.10.1, with gcc and with an llvm workspace: the test's environment (the subos's bin first on PATH, its library variables, MTEST_*) leaves the configuration's fingerprint as it is; the rebuilds the issue saw were the test graph written over build.ninja and the lock held through the run.
@Sunrisepeak
test spec: SPEC-017 v2.0, launch records, framework capabilities and …
a7a1a0b
…sessions, check details, a case's output

docs/specs/test.md is the mcpp test spec: SPEC-017 v1, the mtest protocol's normative text (P1-P12 kept) and the [test] keys, as base capabilities B1-B6 and optional ones O1-O9; test-runner.md is folded into it. B5: --no-run records carry each program's launch. B6: an entry target's test-capabilities and test-session, reported by --guide. O3: failure source and fatal, case checks, in records and the store. O8: a case's output from the program's output events, or from a program that ran that case alone; the output of several cases is not divided by arrival, which a buffered stream does not allow (measured). Features test-launch-records, test-frameworks, test-checks, test-output. e2e 1070 fails before and passes after.
@Sunrisepeak
pack: the generated launchers depend on mcpplibs.os 0.4.4; e2e 1068 a…
a0bd06b
…nd 1069 on every host

The Windows launcher and the single-file launcher pinned mcpplibs.os 0.4.1, of the openkal 0.24 family, which the built-in platform 0.25.0 refuses (cross/mingw-cross, e2e 988); 0.4.4 ranges over the 0.24 and 0.25 families. e2e 1068 bounds its commands without timeout(1), which macOS lacks; e2e 1069 asserts that no dev-dependency is resolved, since the programs' build plans on hosts where mcpp build plans each time (macOS).
@Sunrisepeak
dependencies: the root overrides a package for the whole graph (#914)
fed322b
override = true on a root's dependency or in [workspace.dependencies] answers every request for the package in the graph its table governs ([dependencies]: build and tests; [dev-dependencies]: tests; [build-dependencies]: build programs). A replaced request that does not already admit the override is named once (Overrode); mcpp.lock marks the package and --locked reads the marker; an override of a platform version group's member is taken with a warning; a library's override is ignored and said to be. A refusal of two irreconcilable versions names the overriding line; a library's exact pin of a package every consumer shares (a target-side layer, a kernel ABI) is noted to its users and refused by mcpp publish. src/build/prepare/overrides.cpp holds the steps. e2e 1071 fails before and passes after.
@Sunrisepeak
unit: the Windows launcher's manifest names mcpplibs.os 0.4.4
fc4959e
@Sunrisepeak
manifest: test-capabilities and test-session are known target keys
0a85d95
An entry target that states them is not warned of an unsupported key.
@Sunrisepeak Sunrisepeak mentioned this pull request Nov 10, 2026
0.6.0: the mcpp test spec's session, case output and checks; a program only a runner starts is listed through it mcpp-community/mtest#10
Merged
Sunrisepeak added 8 commits November 10, 2026 14:41
@Sunrisepeak
e2e 1070: the framework's path in host spelling
6350768
@Sunrisepeak
link: the toolchain's C++ archives built for another target are not l…
a02607a
…inked

flags.cppm reads the triple of the directory the payload's libc++.a was found in; another architecture or system marks MechanismInput::foreignCxxArchives, and resolve() links no C++ runtime there and states that the row's is a package's (mcpp:c++-abi). Measured on aarch64-freebsd-musl from a Linux host: ld.lld: libc++.a(algorithm.cpp.o) is incompatible. The OpenKal conformance suite now takes openkal-llvm-runtime there (openkal-freebsd).
@Sunrisepeak
bench: mcpp's own costs as mtest Bench cases with a history (no-op bu…
cf692d3
…ild, why flags, one interface edit)

bench/tests/engine.cpp times the mcpp under test (MCPP) on a small module
fixture; each cost enters the mtest store as a metric with its samples. The
engine comparisons remain the standard set run by hand.
@Sunrisepeak
CI: mtest pinned once and every test run reported through it
2be14b8
.github/versions.env pins mtest (MTEST_VERSION, MTEST_SHA256); the composite
action mtest installs it and exports MTEST, and e2e-mtest takes it from there.
test-report merges the stores mcpp test kept in a job, writes the job's
Markdown report into its summary and uploads the store; the unit jobs of the
three hosts and the Linux bench run use it. Each e2e shard writes its report,
run_all.sh groups the shards by the workflow run, and ci.yml's test-report job
renders one report over every job (mtest ci report).
@Sunrisepeak
Design notes: implementation records of the ecosystem plan and its su…
6d0d76e
…pplement
@Sunrisepeak
CI: mtest is installed into the global subos, so the report runs it o…
0261393
…utside the repository
@Sunrisepeak
resources: a cross gcc's Windows headers are the toolchain's; an incl…
24eaa41
…ude nothing provides is the script's own

- system_include_dirs reads a cross gcc's own <root>/<triple>-w64-mingw32/include when no payload is paired: under the mingw provider, a script's "winres.h" was taken for a file of the project that no action produces, and the build failed in ninja (e2e 1058, the cross gcc case).
- A quoted include found in no directory is an input only when a build action writes it; otherwise the script's preprocessing decides (#if __has_include) and the resource compiler names a missing one with the script and line (e2e 1072).
- docs/04 (en, zh) and CHANGELOG.
@Sunrisepeak
Design notes: the resource findings of the validation in the implemen…
5b1d024
…tation record
@Sunrisepeak
Sunrisepeak merged commit 4d9e037 into main Nov 10, 2026
83 checks passed

Uh oh!

There was an error while loading. Please reload this page.

This was referenced Nov 10, 2026
[Feature] macOS → x86_64-windows-gnu:缺的是 Win32 系统侧,且引擎指的两条逃生口都不通 #913
Closed
scan_overrides:声明的文件属于未启用的 feature 或被 target 排除时报 "matched no source file",无法与 feature 门控的源一起使用 #902
Closed
依赖图中同一包的不同精确版本无法解决:缺少根上的覆盖语义,非叶子包也落不进多版本 mangling #914
Closed
mcpp test 运行测试时持有构建目录锁:测试内部调用同一工作区的 mcpp build 会一直等锁;测试环境里内层 mcpp 的配置哈希也不同 #915
Closed
mcpp test: case results as they happen, metrics and bounds, a program's parts, and the store as P12 states it #917
Closed
Platform-defined targets, fewer hard-coded OS/arch facts: 12 engine gaps + 3 bugs measured while porting a C program (cmd) to ok images, FreeBSD and i386 with mcpp only #911
Closed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

No reviews

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

None yet

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

1 participant

@Sunrisepeak
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.
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.