Skip to content

Commit d000808

Browse files
committed
2026.9.7.1
1 parent a1aafcd commit d000808

3 files changed

Lines changed: 48 additions & 2 deletions

File tree

CHANGELOG.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,52 @@
55
66
## [Unreleased]
77

8+
## [2026.9.7.1] - 2026-09-07
9+
10+
### 两处只在 Linux 之外成立的缺陷,以及第一条图形管线
11+
12+
**引擎与规则层早就与平台无关,而生态只在 Linux 上完整。** 把规则包在另外两个平台上
13+
真跑一遍,暴露了两处引擎缺陷 —— 两处的共同形状是:一段代码的正确性依赖于宿主,而 CI
14+
只在其中一个宿主上执行它。
15+
16+
**构建程序的链接不带工具链自己的运行时目录(macOS)。** `host_link_tokens`
17+
「信任 cfg」出口提前 return,跳过了给 `Toolchain::linkRuntimeDirs``-L`
18+
`-rpath` 的那一段。信任 cfg 决定的是**链哪些运行时**,它从来没有决定**去哪里找**:
19+
macOS 上 `-lc++` 于是经 SDK 解析到系统那份,而头文件来自载荷。两者在头文件引用了系统
20+
库还没导出的符号那一刻分道扬镳 —— macos-14 上编译一个只有 `import std` 的构建程序:
21+
22+
ld64.lld: error: undefined symbol: std::__1::__is_posix_terminal(__sFILE*)
23+
24+
`std::print` 不是 header-only 的,它的两个重载都要到 libc++ **dylib** 里取支持符号,
25+
而那两个符号是在 macOS 14 不带的那一版里加进去的。macOS 15 有,所以这个项目用到的每
26+
一台 macOS runner 都是绿的。构建程序正是绝对 rpath 该在的地方:它从不被分发。
27+
28+
**版本约束里的 `>` 被 cmd.exe 读成重定向(Windows)。** mcpp 把供给请求作为 JSON 参数
29+
放在 shell 命令行上;`shell::quote` 回答的是子进程的 argv 解析(`\"`),而 cmd 不认这
30+
个转义,于是走到 `>` 时引号数是偶数,`>` 成了重定向:
31+
32+
Provisioning [xlings.workspace] entries declared by dependencies (xim:shaderc@>=2026.3)
33+
The filename, directory name, or volume label syntax is incorrect.
34+
35+
`>=` 正是每个规则包声明下界用的形态,而在此之前没有任何一条能在 Windows 上生效的声明
36+
带过 `>`。修法是标准的双重转义,判据是两个解析器的模拟器加一条反向腿。
37+
38+
### `examples/10-graphics/offscreen`:第一条图形管线,判据是像素
39+
40+
此前所有异构示例都是计算。这一个是图形:顶点与片段两个着色器阶段、一条 render pass、
41+
`vkCmdDraw` 一个三角形、`vkCmdCopyImageToBuffer` 取回像素。**离屏而不是开窗**,因为那
42+
是可断言的形态。同一道接缝背后是一个自己写的软件光栅器,而两条腿的中心像素**逐字节
43+
相同** —— 图像是契约,设备名是唯一区分它们的东西。
44+
45+
这个示例挖出一条使用者会撞上的规则:**依赖不能被 layer 条件化**
46+
`cfg(accelerator = ...)` 下的 `[build]` 源生效而依赖被忽略,于是包被丢掉、包含它的源
47+
被留下。
48+
49+
### 文档
50+
51+
`docs/20` 新增「每条 lane 到得了哪些平台」:三件事同时为真才叫一条 lane 在某个平台上
52+
成立,而第三件(规则自己那段按宿主分岔的代码编译得过)是最容易被默认成立的那一件。
53+
854
## [2026.9.6.6] - 2026-09-07
955

1056
### 一个包一个版本:规则自带环境,工程只写例外

mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "mcpp"
3-
version = "2026.9.6.6"
3+
version = "2026.9.7.1"
44
description = "Modern C++ build & package management tool"
55
license = "Apache-2.0"
66
authors = ["mcpp-community"]

modules/versioning/src/version.cppm

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,6 @@ import std;
3131

3232
export namespace mcpp {
3333

34-
inline constexpr std::string_view MCPP_VERSION = "2026.9.6.6";
34+
inline constexpr std::string_view MCPP_VERSION = "2026.9.7.1";
3535

3636
} // namespace mcpp

0 commit comments

Comments
 (0)