compat.yaml-cpp 0.8.0/0.9.0 on openkal; openkal-ecosystem/openkal-compat labels; openkal measurement selects by change on x86_64-windows-musl; maintainer-hosted CN mirrors; a shorter README - #464
Merged
Conversation
…kal facet names openkal-ecosystem and openkal-compat; a shorter README compat.yaml-cpp builds upstream's CMake target as it is (src/*.cpp plus the contrib GraphBuilder), from the GitHub tag archives mirrored byte for byte to gitcode mcpp-res/yaml-cpp. YAML_CPP_STATIC_DEFINE, a PUBLIC definition of a static build upstream, reaches consumers through a yaml-cpp/dll.h shim, since descriptor `defines` stay package-private; the test asserts it at compile time. Each version has a member (yaml-cpp, yaml-cpp-v080), and both are measured on openkal. The test found an upstream defect: GraphBuilderInterface's pure virtual destructor is defined nowhere, so a derived class links only when its user defines it. The test does, as any consumer must; the descriptor does not. The site's openkal facet had three sentences for values (openkal itself / runs on openkal / fails on openkal). It now has two names: openkal-ecosystem for the packages that make up openkal, openkal-compat for packages measured to run in an openkal graph. A package that only builds or fails is filed under neither; its page still shows the per-target measurement. The README keeps one line per shape in its reference table; the long explanations for recastnavigation and huxerui move into the descriptor catalog, which gains a yaml-cpp row.
Sunrisepeak
force-pushed
the
feat/compat-yaml-cpp
branch
from
September 23, 2026 15:21
75ebd91 to
3e1dfe7
Compare
…6_64-windows-musl; a CN mirror may be the maintainer's own compat.py select: a change measured every member whenever anything under tests/openkal/ moved, so adding one member cost the whole list. It now measures every member only when the graph or the harness changes (an openkal family descriptor, pins.toml, compat.py); a members.toml edit measures the entries added or changed against the merge base (--base), a member's own test project measures that member, and a descriptor measures the members that depend on it, as before. The workflow passes the merge base and now also triggers on tests/examples/**. selftest pins each rule. The Windows target is x86_64-windows-musl. The graph presents musl's C environment there, and x86_64-windows-gnu read as a mingw-w64 build, which it never was. Measured locally with the pins (mcpp 2026.9.21.3, runtime 0.15.1): cli11, zlib and cmp-module run; curl stops at the same curl_setup.h:591; yaml-cpp and yaml-cpp-v080 run. Renaming the target moves the harness, so this pull request measures every member once, and that measurement becomes the published baseline. check_mirror_urls.lua required every CN url to live under gitcode mcpp-res. A library's maintainer may host the mirror instead; the rule is now a gitcode release asset under any owner. ZheFeng7110.boost's mirror (#463), which has kept lint red on main since, passes unchanged.
Sunrisepeak
force-pushed
the
feat/compat-yaml-cpp
branch
from
September 23, 2026 15:31
3e1dfe7 to
d6b6906
Compare
…not by way of <format> src/emitterutils.cpp (0.8.0) names uint16_t/uint32_t and includes neither <cstdint> nor <stdint.h>; 0.9.0 added the include. Measured with gcc 15.1.0 over glibc 2.44: -std=c++17 fails with "'uint16_t' was not declared in this scope"; c++20 and c++23 compile because libstdc++'s <ostream> then reaches <format> -> bits/unicode.h -> <cstdint>. The package builds as c++23, so it held, on a transitive include. -include cstdint for the package's own TUs (32/32 and 31/31 in the compile database; the consumer's TU is untouched); both members pass on gcc 16.1.0/glibc, gcc 15.1.0/musl and llvm 22.1.8.
Measured by openkal-compat run 35882195774 on this branch, with mcpp 2026.9.21.3, openkal-llvm-runtime 0.15.1 and llvm@22.1.8, the host's mingw headers installed, 32 members on x86_64-linux-gnu and x86_64-windows-musl. x86_64-linux-gnu: 30 run, 2 fail (curl and cmp-module, both declared not-portable). x86_64-windows-musl, through Wine: 30 run, 1 builds (mimalloc: its alloc test exits 1 under Wine), 1 fails (curl, declared). Against the published file of 2026-09-20 (runtime 0.12.0, mcpp 2026.9.18.3) no label is lower. archive, c-ares, doctest, spdlog and sqlite3 now run on Windows and expat on Linux, as docs/openkal-compat.md's 2026-09-21 section already described; yaml-cpp and yaml-cpp-v080 run on both targets. The Windows cells were recorded as x86_64-windows-gnu until this measurement.
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.
compat.yaml-cpp 0.8.0 / 0.9.0
src/*.cpp+src/contrib/*.cpp). One source list covers both versions; 0.9.0 addssrc/fptostring.cpp.mcpp-res/yaml-cppreleases0.8.0/0.9.0, byte-identical (same sha256).YAML_CPP_STATIC_DEFINE: delivered to consumers through ayaml-cpp/dll.hshim plus#include_next(descriptordefinesare package-private). The test asserts it at compile time.GraphBuilderInterface's pure virtual destructor is defined nowhere. The test defines it, as any consumer of the contrib API has to.yaml-cpp(0.9.0) andyaml-cpp-v080(0.8.0, which asserts 0.9.0'sfptostring.his absent). Both are listed intests/openkal/members.toml.mcpp testpasses cold for both members, and the object count equals the source count. In CI,yaml-cpp/yaml-cpp-v080areokon linux gcc, linux llvm, macOS and Windows. openkal, locally with the pins:runs (posix)onx86_64-linux-gnuandx86_64-windows-musl(Wine) for both.Site: openkal facet
openkal itself / runs on openkal / fails on openkalbecomesopenkal-ecosystem/openkal-compat. Packages that only build or fail are filed under neither; their pages keep the per-target table.openkal measurement
pins.toml,compat.py). Amembers.tomledit measures only the added or changed entries, compared with the merge base via--base.tests/examples/<m>/measuresm; a descriptor measures the members that depend on it.selftestpins each rule. The workflow also triggers ontests/examples/**.x86_64-windows-musl(the C environment the graph presents; not MinGW). Locally it gives the same results: cli11/zlib/cmp-module run, and curl fails at the samecurl_setup.h:591. The rename moves the harness, so this PR measures every member once; that result is committed as the new baseline.CN mirror lint
CNmay be any gitcode release asset (https://gitcode.com/<owner>/<repo>/releases/download/...), so a library maintainer can host their own mirror;mcpp-resstays the default. This makesZheFeng7110.boost(#463) pass unchanged; lint onmainhad been red since that PR.README
The reference table is down to one line per shape, and the engine-floor note is shorter. The long recastnavigation and huxerui explanations move into
docs/descriptor-examples.md(en/zh).