Repository navigation
2026.11.10.2: FreeBSD's musl identity; cfg barewords from the rows; #918; MSVC's C library is ucrt; the test fast path names the host - #920
Merged
Conversation
The triple's env segment names the toolset on Windows, gnu and msvc alike; the C library of both is the Universal CRT. payload_libc_name answered `msvc` for an MSVC row, so `requires = ["mcpp:c-abi=ucrt"]` (compat.glfw's Win32 backend) refused the MSVC route while the GNU routes satisfied it. The request `msvc` is satisfied by `ucrt`. SPEC-002 v1.7 states the names; docs/22 (en, zh).
- The rows x86_64-freebsd-musl and aarch64-freebsd-musl are preview rows of the openkal provider (openkal-platform 0.26.0's hosted part: openkal-musl 0.29.2 over openkal-freebsd 0.1.0 standalone). A request of <arch>-freebsd with no platform selected for it takes that identity; a selected platform keeps the system ABI (e2e 1059). e2e 1073. - The openkal targets' platform is openkal-platform 0.26.0 (e2e 1025, the target-rows snapshot). - docs 21, 35, 50 (en, zh), SPEC targets-and-providers and platforms; CHANGELOG.
- A bareword other than `unix` is `os = "<word>"` for any word without a dash, so `[target.freebsd]`, `cfg(freebsd)` and the system of a row a platform defines select as `linux` does. The vocabulary the diagnostic names is the rows' systems; a word naming none is reported as before. - A row states its family (`family`, `unix` or `windows`); FreeBSD's rows are of the `unix` family, so `cfg(unix)` holds on them. - docs/22, docs/35; unit tests CfgBarewords; the target-rows snapshot.
) A table is one dependency specification when its `path`, `version` or `git` is a string or its `workspace` a boolean. `gpp.version = { path = "…" }` declares the package `gpp.version`; it was taken as the specification of `gpp` and refused for naming no source. Unit test Manifest/APackageNamedLikeASpecField; e2e 1074.
…e it A platform package chosen for a request that no built-in provider names keeps the providers of other platform packages out of the selection, so `<arch>-freebsd` keeps the system's row when `cfg(os = "freebsd")` or `[target.freebsd]` chose its platform, as an exact-row section did; with no platform chosen the musl identity is taken (e2e 1059, unit tests TargetSelectPlatform). The capability-pin set includes the FreeBSD musl rows.
The FreeBSD musl rows build with llvm in the payload mode on every host, gcc and msvc are capability-pin, and the graph mode is platform-version-group; the openkal column is openkal-llvm-runtime 0.20.1. The linux-x86_64 cells are a scan.sh measurement.
The refusal listed only the platform's targets, and was empty for a platform that states [[platform.provider]]. e2e 1059 asserts the refusal of x86_64-freebsd-musl by a platform chosen with cfg(os = "freebsd").
…mes the host's target
…rix scan reports supervision lines
This was referenced Nov 10, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Patch release 2026.11.10.2.
FreeBSD's musl identity (design 2026-11-10 K9).
x86_64-freebsd-muslandaarch64-freebsd-muslare preview rows of the openkal provider, served by openkal-platform 0.26.0's hosted part: openkal-musl 0.29.2 over openkal-freebsd 0.1.0 standalone, with openkal-llvm-runtime 0.20.1, linked as one static program. A request of<arch>-freebsdwith no platform chosen for it takes that identity. A platform chosen for the request keeps the system's row whichever selector chose it ([target.x86_64-freebsd],[target.freebsd],cfg(os = "freebsd")): a platform package no built-in provider names keeps other packages' providers out of the selection. The openkal targets' platform is openkal-platform 0.26.0.cfg barewords from the rows (E15).
unixis the family word; any other word without a dash isos = "<word>", so[target.freebsd],cfg(freebsd)and the system of a row a platform defines select aslinuxdoes. A row states its family (family = "unix" | "windows"); FreeBSD's rows areunix. The diagnostic's vocabulary is the rows' systems. No system name is added to the engine.#918. A table is one dependency specification only when its
path/version/gitis a string or itsworkspacea boolean;gpp.version = { path = "…" }declares the packagegpp.version.MSVC's C library is
ucrt(I1 correction). The MSVC payload answersc-abi = ucrt, as the MinGW-w64 payload does, sorequires = ["mcpp:c-abi=ucrt"]holds on the MSVC route (mcpp-index#748). SPEC-002 v1.7.Tests: unit CfgBarewords, TargetSelectPlatform, Manifest/APackageNamedLikeASpecField, TargetSideResolve; e2e 1073 (FreeBSD musl identity), 1074 (#918), 1059 (a chosen platform keeps the system's row), 1025; the target-rows snapshot; the matrix cells of the FreeBSD musl rows and of the platform version group.
Refs #918, #913, mcpp-index#748.