现象(mcpp 0.0.95,linux CI 冷 sandbox,两次复现)
含 .asm 的包(compat.ffmpeg)在冷环境构建时,nasm 惰性解析报错先于自举消息打出:
22:29:18.92 error: NASM sources (.asm) present but no usable nasm (>= 2.16) was found or installable; install one via `xlings install nasm` or your system package manager
22:29:19.16 Bootstrap nasm into mcpp sandbox (one-time)
两轮独立 run(29617083414 首跑与 failed-rerun)时序完全一致:错误 → ~0.25s 后 bootstrap 启动 → 构建已判死。即 “Bootstrap nasm (one-time)” 被触发,但发起它的构建不等待/不重试,冷环境 100% 失败;PATH 上有 nasm 时不受影响。
复现
mcpp-index PR #74 的 workspace (linux) job(移除 apt nasm 后,13aa71d):
期望
nasm 解析链(PATH → sandbox → bootstrap)中,bootstrap 应同步阻塞当前编译边(或 bootstrap 完成后重试该 TU),像 gcc 工具链自动安装那样;而不是先判死再后台补装。
附带观察
CI 的 actions/cache 精确命中时跳过保存,bootstrap 产物不会进缓存——即使自举成功过,下个 run 仍是冷启动;修复以同步阻塞为准而非依赖缓存。
现象(mcpp 0.0.95,linux CI 冷 sandbox,两次复现)
含
.asm的包(compat.ffmpeg)在冷环境构建时,nasm 惰性解析报错先于自举消息打出:两轮独立 run(29617083414 首跑与 failed-rerun)时序完全一致:错误 → ~0.25s 后 bootstrap 启动 → 构建已判死。即 “Bootstrap nasm (one-time)” 被触发,但发起它的构建不等待/不重试,冷环境 100% 失败;PATH 上有 nasm 时不受影响。
复现
mcpp-index PR #74 的
workspace (linux)job(移除 apt nasm 后,13aa71d):期望
nasm 解析链(PATH → sandbox → bootstrap)中,bootstrap 应同步阻塞当前编译边(或 bootstrap 完成后重试该 TU),像 gcc 工具链自动安装那样;而不是先判死再后台补装。
附带观察
CI 的 actions/cache 精确命中时跳过保存,bootstrap 产物不会进缓存——即使自举成功过,下个 run 仍是冷启动;修复以同步阻塞为准而非依赖缓存。