From fd53b9df2aec7afc772877617e4158bf25828cbd Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Wed, 28 Oct 2026 14:52:47 +0900 Subject: [PATCH 1/2] mcpp 2026.10.27.1 in CI and the openkal measurement; mcpp.plugins latest is 0.20.0 Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com> --- .github/workflows/openkal-compat.yml | 2 +- .github/workflows/validate.yml | 7 ++++++- .github/workflows/xpkgindex-update.yml | 2 +- pkgs/m/mcpp.plugins.lua | 15 +++++++++++---- tests/openkal/pins.toml | 3 ++- 5 files changed, 21 insertions(+), 8 deletions(-) diff --git a/.github/workflows/openkal-compat.yml b/.github/workflows/openkal-compat.yml index 029cfaa4..9e829644 100644 --- a/.github/workflows/openkal-compat.yml +++ b/.github/workflows/openkal-compat.yml @@ -42,7 +42,7 @@ env: # run if this drifts from pins.toml. See the comment beside `mcpp` in # pins.toml for why this pin, not just validate.yml's, is gated by the # index floor. - MCPP_VERSION: "2026.10.26.1" + MCPP_VERSION: "2026.10.27.1" # CROSS-VALIDATION BEFORE A RELEASE, NOT AFTER IT. # # Empty in an ordinary run, so this measurement keeps using the RELEASED diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 676b31be..3ad70c1c 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -435,7 +435,12 @@ env: # 2026.10.26.1 (mcpp-community/mcpp#841): a graph-supplied libstdc++ under # clang (gcc.libstdcxx, the libstdcxx-llvm member), `requires` as a table, # and one C++ runtime per process -- compat.sycl-runtime's requirement. - MCPP_VERSION: "2026.10.26.1" + # + # 2026.10.27.1 (mcpp-community/mcpp#847): platforms (SPEC-013) -- the + # ok-image rows take openkal-platform with no declaration, the + # tests/examples/openkal-platform member's hosted arrangement -- and + # packaging along three axes (SPEC-014); mcpp.plugins 0.20.0's floor. + MCPP_VERSION: "2026.10.27.1" jobs: lint: diff --git a/.github/workflows/xpkgindex-update.yml b/.github/workflows/xpkgindex-update.yml index 10ab13b4..a151eeb2 100644 --- a/.github/workflows/xpkgindex-update.yml +++ b/.github/workflows/xpkgindex-update.yml @@ -25,7 +25,7 @@ concurrency: env: PYTHONUTF8: '1' - MCPP_VERSION: '2026.10.26.1' + MCPP_VERSION: '2026.10.27.1' # CROSS-VALIDATION BEFORE A RELEASE: a candidate that needs an mcpp newer # than the pin (its package states the floor) is built with mcpp built from # this branch of mcpp-community/mcpp, as openkal-compat.yml measures with it. diff --git a/pkgs/m/mcpp.plugins.lua b/pkgs/m/mcpp.plugins.lua index ae8d3c07..e25baaa0 100644 --- a/pkgs/m/mcpp.plugins.lua +++ b/pkgs/m/mcpp.plugins.lua @@ -2,12 +2,19 @@ -- each member selected by a feature. -- -- [dependencies.mcpp] --- plugins = { version = "0.19.1", features = ["rules-spirv"], host-module = true } +-- plugins = { version = "0.20.0", features = ["rules-spirv"], host-module = true } -- -- // build.mcpp -- import mcpp; -- import mcpp.rules.spirv; -- +-- 0.20.0 (package floor mcpp 2026.10.27.1): `mcpp.plugins.platform` -- a +-- platform's plugin provides a package format over the staged package +-- (`provide_format`, reading its mcpp-package.json) -- and +-- `mcpp::plugins::package::read`; openkal-platform's okb is its first user +-- (mcpp SPEC-013, SPEC-014). Moving `latest` breaks no published consumer: +-- each pins an exact version. +-- -- 0.19.1 (same package floor): `mcpp::plugins::json::value` holds its object -- members as a plain struct instead of `std::pair`, which -- clang with libstdc++'s `std` module refused -- the combination an editor's @@ -931,7 +938,7 @@ package = { }, sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", }, - ["latest"] = { ref = "0.19.1" }, + ["latest"] = { ref = "0.20.0" }, }, macosx = { ["0.20.0"] = { @@ -1214,7 +1221,7 @@ package = { }, sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", }, - ["latest"] = { ref = "0.19.1" }, + ["latest"] = { ref = "0.20.0" }, }, windows = { ["0.20.0"] = { @@ -1497,7 +1504,7 @@ package = { }, sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", }, - ["latest"] = { ref = "0.19.1" }, + ["latest"] = { ref = "0.20.0" }, }, }, diff --git a/tests/openkal/pins.toml b/tests/openkal/pins.toml index f0ebb4da..046d1bf6 100644 --- a/tests/openkal/pins.toml +++ b/tests/openkal/pins.toml @@ -18,6 +18,7 @@ toolchain = "llvm@22.1.8" # index requires mcpp >= 2026.9.18.1 but this is mcpp 2026.9.17.3 [E0006]" # before a single line of the member's own source is read. # +# 2026-10-28: measurement engine 2026.10.27.1, the workflow's (platforms, SPEC-013). # 2026-10-26: measurement engine 2026.10.26.1, the workflow's. 2026-10-24: measurement engine updated to 2026.10.24.1; runtime and # toolchain pins below remain unchanged. The index client floor is unchanged. # @@ -139,7 +140,7 @@ toolchain = "llvm@22.1.8" # openkal-musl 0.16.0 and openkal-llvm-runtime 0.12.0), because a pin that # moves onto an unreachable or divergent asset fails every member at once and # reports it as a compatibility result. -mcpp = "2026.10.26.1" +mcpp = "2026.10.27.1" # The Windows target is named for the C environment the graph presents there, # which is musl's (openkal-musl declares `[c-abi] presents = "posix"`), not From d9fbb953718e432c9e3d1d68b4e9a57997623688 Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Wed, 28 Oct 2026 22:57:51 +0900 Subject: [PATCH 2/2] mcpplibs.os 0.2.1: os over the program's own C library on every host; an ok image's C library, C++ run-time and loader are its platform's Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com> --- CHANGELOG.md | 6 ++++++ pkgs/o/os.lua | 27 +++++++++++++++++++++++++-- tests/examples/os/mcpp.toml | 2 +- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5570b2a5..d2949315 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ ### Added +- **mcpplibs.os 0.2.1。** 在程序自己的 C 库的两种安排下构建并通过测试:系统自己的 C 库,以及位于系统自身三元组上的 + openkal-musl 与 openkal-llvm-runtime(mcpp docs/24)。机器、内存、卷的种类与两项交换在 Linux 与 macOS 上经内核调用 + 得到,Windows 上以 32 位 DWORD 与 UTF-16 WCHAR 声明 kernel32 的名字,均不经 C 库;标准输出的转向与 SIGPIPE 在进程 + 保存它们的地方修改。mcpp-language-server 的操作系统层进入 os(有界运行、线程、环境赋值、有界读取、规范名)。 + ok image 的 C 库、C++ 运行时与加载器取自其平台(openkal-platform,mcpp 2026.10.27.1 为 `-openkal` 选择), + 包不再声明它们。GLOBAL 为 GitHub 标签归档,CN 为 GitCode `mcpp-res/os` 镜像,sha256 一致。测试成员 `os` 移到 0.2.1。 - **mcpplibs.mwrap.dr_libs 2026.03.03(新包)。** dr_libs-m:以 C++23 模块(`import mcpplibs.mwrap.dr_libs;`)使用 compat.dr_libs 2026.03.03(dr_wav 0.14.5、dr_flac 0.13.3、dr_mp3 0.7.3)。每个头文件各一个模块且可单独导入: `mcpplibs.mwrap.dr_libs.wav`(42 个类型、48 个枚举值、94 个函数)、`.flac`(32、6、31)、`.mp3`(28、8、29),全部以 diff --git a/pkgs/o/os.lua b/pkgs/o/os.lua index 2afbe13c..94ef04a5 100644 --- a/pkgs/o/os.lua +++ b/pkgs/o/os.lua @@ -6,8 +6,10 @@ -- one built as an ok image (`-openkal'). -- -- No `deps'. The package names openkal and, for the system it is built for, --- that system's implementation in its own manifest; a program that builds ok --- images names the C library and the C++ run-time inside them itself. +-- that system's implementation in its own manifest. From 0.2.1 an ok image's +-- C library, C++ run-time and loader are its platform's (openkal-platform, +-- which mcpp 2026.10.27.1 selects for `-openkal'), and the package +-- declares none of them. package = { spec = "1", namespace = "mcpplibs", @@ -26,6 +28,13 @@ package = { xpm = { linux = { + ["0.2.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/os/releases/download/0.2.1/os-0.2.1.tar.gz", + }, + sha256 = "264a3b80ef40fcb760b7c63565e01597549fdd8e5aa0672389b5d9384661218f", + }, ["0.2.0"] = { url = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.0.tar.gz", sha256 = "9dc147ad8dca0216549c40dc4dfabaed7394cdf7a7f253c58613ccc226abd04e", @@ -47,6 +56,13 @@ package = { }, }, macosx = { + ["0.2.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/os/releases/download/0.2.1/os-0.2.1.tar.gz", + }, + sha256 = "264a3b80ef40fcb760b7c63565e01597549fdd8e5aa0672389b5d9384661218f", + }, ["0.2.0"] = { url = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.0.tar.gz", sha256 = "9dc147ad8dca0216549c40dc4dfabaed7394cdf7a7f253c58613ccc226abd04e", @@ -68,6 +84,13 @@ package = { }, }, windows = { + ["0.2.1"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.1.tar.gz", + CN = "https://gitcode.com/mcpp-res/os/releases/download/0.2.1/os-0.2.1.tar.gz", + }, + sha256 = "264a3b80ef40fcb760b7c63565e01597549fdd8e5aa0672389b5d9384661218f", + }, ["0.2.0"] = { url = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.0.tar.gz", sha256 = "9dc147ad8dca0216549c40dc4dfabaed7394cdf7a7f253c58613ccc226abd04e", diff --git a/tests/examples/os/mcpp.toml b/tests/examples/os/mcpp.toml index 6bad1b85..b51b574f 100644 --- a/tests/examples/os/mcpp.toml +++ b/tests/examples/os/mcpp.toml @@ -7,7 +7,7 @@ name = "os-tests" version = "0.1.0" [dependencies.mcpplibs] -os = "0.2.0" +os = "0.2.1" [indices] mcpplibs = { path = "../../.." }