Skip to content

Commit 3782d38

Browse files
committed
docs(changelog): 2026.9.11.4
The release notes are extracted from the entry whose heading names the version, and without one the release would publish "(no CHANGELOG entry found for 2026.9.11.4)". Found during the pre-release review.
1 parent e84c14d commit 3782d38

1 file changed

Lines changed: 82 additions & 0 deletions

File tree

CHANGELOG.md

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

8+
## [2026.9.11.4] - 2026-09-11
9+
10+
### iOS 三行:生态编译器与定位到的 SDK
11+
12+
`aarch64-ios``aarch64-ios-sim``x86_64-ios-sim``planned` 进入可构建状态,
13+
`llvm@22.1.8`。编译器来自生态,只有 SDK 来自本机 Xcode:iPhoneOS
14+
iPhoneSimulator SDK 不可再分发,所以 mcpp **定位**它们而不安装
15+
(`xcrun --sdk <sdk> --show-sdk-path`)。2026-09-11 在 macos-15 runner 上实测:
16+
17+
```
18+
aarch64-ios Mach-O 64-bit executable arm64 platform 2 (IOS) minos 18.0 preview
19+
aarch64-ios-sim Mach-O 64-bit executable arm64 platform 7 (IOSSIMULATOR) minos 18.0 verified
20+
x86_64-ios-sim Mach-O 64-bit executable x86_64 platform 7 (IOSSIMULATOR) minos 18.0 preview
21+
```
22+
23+
`mcpp run --target aarch64-ios-sim``runner = ["simctl-run"]` 打印 `1-2-3`
24+
`simctl-run` 来自新包 `xim:apple-simulator-tools`,负责选设备、启动、等待与
25+
`simctl spawn`;引擎不认识模拟器。设备行不设 runner,因为在设备上运行需要开发者
26+
自己的签名。`x86_64-ios-sim` 停在 `preview`:模拟器运行宿主的架构,而测量用的
27+
runner 是 Apple silicon。
28+
29+
- 新键 `[build] ios_deployment_target`,由有效三元组携带
30+
(`arm64-apple-ios18.0-simulator`),不另发 `-m*-version-min`
31+
- SDK 缺席在解析任何载荷**之前**拒绝,拒绝码 `apple-sdk-absent`。没有包能提供
32+
不可再分发的 SDK,所以这条拒绝不等待依赖图。
33+
- Apple 交叉路径在编译行、链接行与 std 模块自己的命令上携带 `--target`
34+
`-isysroot``--no-default-config`。载荷的 `clang++.cfg` 写的是 macOS SDK,
35+
不抑制它,链接会从错误平台的桩库解析 `libc++`
36+
- C++ 运行时取自 SDK(`-lc++`)。载荷的 `libc++.a` 为 macOS 构建,ld64 拒绝把它
37+
链进 iOS 链接。
38+
39+
### `aarch64-linux-android``preview``verified`
40+
41+
执行路径本来就是对的,坏的只是抽取工具:`xim:e2fsprogs``debugfs` 在任何打开
42+
文件系统的命令上 SIGFPE,而 `xim:7zip` 直接读取 ext4。`qemu-aarch64-static -L <root>`
43+
配系统镜像自带的 bionic 运行 mcpp 构建的产物,打印 `1-2-3`,exit 0。
44+
45+
### 载荷描述自身:`.mcpp-toolchain.json`
46+
47+
安装配方在载荷根目录写一份描述(schema 1),引擎读取三个键:`frontend`
48+
`platform_floor``std_module_defines`。这三件 NDK 专属的事实原先由引擎重新推导,
49+
于是第二个同类 SDK 意味着修改引擎而不是发布一个包。
50+
51+
- 缺席即兼容:没有描述的载荷,行为与之前完全相同。
52+
- 存在但格式错误则拒绝,并点名该文件。
53+
- `frontend` 按字符串校验(相对路径、`/` 分隔、无 `.``..` 分量、无盘符)。
54+
`std::filesystem::path("/usr/bin/g++").is_absolute()` 在 Windows 上为 false,
55+
按路径类型判断会让一个包在 Windows 上选中宿主编译器。
56+
- 它不是通用 flag 通道:`std_module_defines` 的每一项必须是 define 名。
57+
58+
`xim:android-ndk` 已写出这份描述。
59+
60+
### 修复
61+
62+
- 撤回 `ndk` 别名。它能被解析,随后又被能力钉拒绝;唯一拼写是索引使用的
63+
`android-ndk`
64+
- `mcpp toolchain install emsdk``mcpp toolchain install android-ndk` 此前从未
65+
成功:安装路径自行拼接 `<root>/bin`,且 `to_xim_package` 读取目标而不是 spec 点名
66+
的载荷。
67+
- `em++` 旁边的 C 编译器被推导成 `em`。推导改为表驱动:`g++` 对应 `gcc`,`em++`
68+
对应 `emcc`,其余去掉 `++`
69+
- `host_can_serve` 判断的是 `os == "macos"`,于是 iOS 行在 macOS 上从
70+
`toolchain list` 消失,在 Linux 上又因错误的理由出现。
71+
- runner 程序的查找在 `bin/` 之后加入载荷根目录,`xim:7zip` 即是这种布局。
72+
- iOS 的 std 模块命令对 SDK 路径加引号。Xcode 安装在含空格的路径下时,原先只有
73+
模块预编译会失败。
74+
75+
### CI
76+
77+
- `ci-macos-ios``ios-engine` 是门禁:三个产物的架构、`LC_BUILD_VERSION`
78+
platform 与 minos 按整值比较,空读数判为失败;`mcpp run --target aarch64-ios-sim`
79+
必须退出 0 且输出中有 `1-2-3` 这一行。前提探针只在手动触发时运行。
80+
- `check_target_tiers.py` 把层级表与五份文档对照,单元测试里的层级断言也在其中。
81+
- 目标矩阵增加 `apple-sdk-absent`,iOS 行只在 `macos-arm64` 上有期望值。
82+
83+
### 生态
84+
85+
- `mcpplibs/openkal-emscripten` 0.1.0:第一个写在 C 库之上的 openkal 实现。一致性
86+
套件 86 项成立、0 项不成立、13 项未观测;缺席的接口组在链接期以符号名失败。
87+
- `openxlings/xim-pkgindex`:`android-system-image` 改用 `xim:7zip`,`android-ndk`
88+
写出描述文件,新增 `apple-simulator-tools`
89+
890
## [2026.9.11.3] - 2026-09-11
991

1092
### `wasm32-emscripten``planned``verified`

0 commit comments

Comments
 (0)