Skip to content

Commit 204dd9c

Browse files
committed
docs: #722 completed, the function-size gate in CI (changelog, 13.6)
1 parent cdb87e8 commit 204dd9c

2 files changed

Lines changed: 20 additions & 1 deletion

File tree

‎.agents/docs/2026-09-27-eight-reports-by-home-and-one-optimisation-plan.md‎

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1392,3 +1392,19 @@ there on both binaries, for reasons of the environment (an unset `MCPP_HOME`;
13921392
the machine's default toolchain), so the differential read them as unchanged.
13931393
A test that fails on both sides measures nothing about the change; its reading
13941394
has to come from an environment in which it passes, which here is CI.
1395+
1396+
**#722, completed after the first CI run.** The first pass split the seven named
1397+
functions and three more the gate found (10 findings at the base, 6 after it).
1398+
The second pass split the six that remained (`step6_provision_host_tools`,
1399+
`loadVersionDep`, `phase11_scan`, `step1_target_and_static_overrides`,
1400+
`phase2_define_toolchain_resolver`, `step9_kernel_abi_interfaces_and_requirements`),
1401+
each with a phase-local context struct where several of its steps share locals.
1402+
Readings on the final tree: the gate reports no function over 400 lines; the
1403+
seven fixtures are byte-identical to the pre-split binary; AddressSanitizer
1404+
reports nothing over the fixtures and a 20-script e2e subset; the unit suite
1405+
passes. The gate runs in `ci-linux.yml`'s LLVM toolchain job after mcpp builds
1406+
itself with llvm@20.1.7, with clang-tidy from `xim:llvm-tools` at the version
1407+
that wrote the compile database, because it reads that clang's BMIs. The merge
1408+
of the first pass took `plan.cpp` to 2,505 lines, over the file gate; the
1409+
records half of P13 (`mcpp.lock`, `resolution.json`) moved to `records.cpp`,
1410+
byte-identical on the same fixtures.

‎CHANGELOG.md‎

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,10 @@
6868
### 内部
6969

7070
- **`src/build/prepare/` 的阶段函数按其小节拆分(#722)。** 代码逐字移动,不改变语句顺序;七个
71-
夹具的 `resolution.json`、`build.ninja` 与构建数据库输出与拆分前逐字节相同。
71+
夹具的 `resolution.json`、`build.ninja` 与构建数据库输出与拆分前逐字节相同。该目录下没有超过
72+
400 行的函数:`.github/tools/check_function_sizes.sh` 以 clang-tidy 的 `readability-function-size`
73+
在 LLVM 自举构建之后检查,拆分前报告 10 处。`mcpp.lock` 与 `resolution.json` 的写入移入
74+
`records.cpp`。
7275
- **xlings 固定版本为 2026.9.28.1。** 该版本的 interface 协议为 1.2:`update_packages` 按阶段发出
7376
进度事件,interface 能力运行期间写到标准输出的文本不再混入事件流(openxlings/xlings#625)。
7477

0 commit comments

Comments
 (0)