Skip to content

Commit 1c6514b

Browse files
committed
bootstrap from 2026.9.20.1, and widen an assertion that matched an identifier
2026.9.20.1 is released, mirrored on both ends and resolvable from the index, so the workspace bootstraps from it. VERIFIED BEFORE THE PIN MOVED, not after. The published CN artifact reports its own version and builds openkal-musl's real 24-row [c-abi-absent] manifest; `.agents/docs/2026-09-20-cenv-interfaces-verify.sh` reports `fails=0` against it both on this host and inside `xlings subos use v920 --sandbox`, with CN mirrors, addressing the store path rather than the shim --- `xlings use` rewrites only the root configuration, so a shim is not evidence of which binary a sandbox runs. The same script against the published 2026.9.18.3 reports `fails=2`, which is what makes each CHANGE section a measurement rather than a formality. The other change is a test. `AFreestandingTargetWithoutASelectionIsRefused` asserted that the refusal contains the target triple --- an identifier, which sits in the right place in a sentence that is wrong. Two refusals this wave added were found malformed exactly that way, by rendering them and reading them: one had lost a closing parenthesis, and one read as the claim it denies. This message has a single substitution and no paired delimiters, so it has no such failure mode; the assertion is widened anyway, because "no failure mode" is a property of today's wording rather than of the check.
1 parent cfe4696 commit 1c6514b

2 files changed

Lines changed: 11 additions & 1 deletion

File tree

.xlings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"workspace": {
3-
"mcpp": "2026.9.17.1"
3+
"mcpp": "2026.9.20.1"
44
}
55
}

tests/unit/test_cenv_probe.cpp

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,16 @@ TEST(CenvProbeArgv, AFreestandingTargetWithoutASelectionIsRefused) {
300300
ASSERT_FALSE(r.has_value())
301301
<< "an argv with no target selection must be refused for a "
302302
"freestanding target; it measures the build host";
303+
// THE CLAUSE, NOT ONLY THE TRIPLE. Two other refusals this wave added were
304+
// found malformed by rendering them: one lost a closing parenthesis, and
305+
// one read as the claim it denies. Both had tests asserting an identifier
306+
// inside the sentence, and an identifier sits in the right place in a
307+
// sentence that is wrong. This message has one substitution and no paired
308+
// delimiters, so it has no such failure mode -- the assertion is widened
309+
// anyway, because that is a property of today's wording rather than of
310+
// the check.
311+
EXPECT_NE(r.error().find("would have run with no target selection"),
312+
std::string::npos) << r.error();
303313
EXPECT_NE(r.error().find("riscv64-none-elf"), std::string::npos)
304314
<< "the refusal must name the target it was for: " << r.error();
305315
}

0 commit comments

Comments
 (0)