Skip to content

docs(plan): 构建程序无法在成功时说话 - #474

Merged
Sunrisepeak merged 1 commit into
mainfrom
docs/build-program-cannot-warn
Aug 20, 2026
Merged

docs(plan): 构建程序无法在成功时说话#474
Sunrisepeak merged 1 commit into
mainfrom
docs/build-program-cannot-warn

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

只动文档。

模板发布后暴露的一个引擎缺口:build.mcpp 没有「成功但有话说」的通道。⚠️ 我先写了一条 std::cerr 提示,实测后删掉 —— mcpp 只在构建程序非零退出时打印抓到的输出,那条提示在最需要它的构建上一个字都不打印。留着比不留更糟,因为它看起来像个修复。

判据已写进文档,供后续实现 mcpp:warning 时用。

openarch 的三机器模板发布后,用发布出去的包走完整条 `mcpp new --template openarch`:
生成的工程三个目标都构建得出,而 `mcpp run` 在两台有模拟器的机器上都失败。

成因是清单里的 `[xlings] deps` 是**声明**而不是安装触发器。⭐ 普通裸机工程遇不到,
因为板级包把模拟器写在索引描述符的平台 deps 里,那些随包安装。

⚠️ 而构建程序没有办法说出这件事:一条 std::cerr 提示被写出来、实测、然后删掉 ——
mcpp 只在构建程序**非零退出时**打印抓到的输出,于是它在最需要它的那些构建上一个字都
不打印。留着比不留更糟,因为它看起来像个修复。

⇒ `mcpp:` 指令表里没有「成功但有话说」的通道。判据写在文档里:一个最小构建程序发出
`mcpp:warning`,构建**成功**且那行文字显示给用户,而 e2e 断言那行确实出现。
@Sunrisepeak
Sunrisepeak merged commit da9525c into main Aug 20, 2026
18 checks passed
@Sunrisepeak
Sunrisepeak deleted the docs/build-program-cannot-warn branch August 20, 2026 20:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants