Skip to content

两个板级包:模拟器不再是安装期的边 - #343

Merged
Sunrisepeak merged 1 commit into
mainfrom
tier-install-edge
Sep 4, 2026
Merged

两个板级包:模拟器不再是安装期的边#343
Sunrisepeak merged 1 commit into
mainfrom
tier-install-edge

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

分档是对的,但什么都没买到——而只有沙箱能看出来。

两个板级包在 0.7.1 / 0.2.1 把模拟器移到了 run 档,各自 CI 也断言了「build 不要 / run 要」,两边都过

它们过是因为仓库自测是从工作树构建的,不发生包安装。消费者是要安装包的,而这个描述符的平台 deps 正是在那一刻被物化——于是全新沙箱里跑同一个已被断言过的 build,仍然下载了 33 MB 模拟器,走的是这条线而不是分档。

实测:Downloading xim:qemu-riscv@9.2.4-1 … 33.1 MB,出现在一个刚被证明「不要模拟器」的构建里。

两块板的 deps 都移除模拟器。riscv 保留 xim:picolibc-riscv——那是另一回事且有记录:C 库是构建需要的,移除它曾是一个五个版本后才浮现的回归。

旧版本不会坏,这也是可以在「对所有版本生效」的平台级做这件事的原因:0.7.0 / 0.2.0 的 [xlings.workspace] 是无档写法,等于 Always,模拟器在它们构建时到达而不是安装时。

THE TIER WAS CORRECT AND BOUGHT NOTHING, AND ONLY A SANDBOX COULD SHOW THAT.

`riscv-virt-rt@0.7.1` and `aarch64-virt-rt@0.2.1` moved their emulator onto the
`run` tier, and both repositories assert it in their own CI: a build names the
emulator zero times, a run names it. Both pass.

They pass because a repository testing itself builds from its WORKING TREE,
where no package install happens. A consumer installs the package, and this
descriptor's platform `deps` is materialised at that moment — so a fresh
sandbox running exactly the asserted build still downloaded 33 MB of emulator,
through this line rather than through the tier.

Measured: `Downloading xim:qemu-riscv@9.2.4-1 … 33.1 MB` inside a build that
had already been proved not to ask for it.

The emulator is removed from `deps` on both boards. riscv keeps
`xim:picolibc-riscv`, which is a different case and a documented one: the C
library IS needed to build, and removing it was a regression that took five
versions to surface.

OLDER VERSIONS KEEP WORKING, which is why this is safe to do at the platform
level where `deps` applies to every version. 0.7.0 and 0.2.0 declare their
emulator in an untiered `[xlings.workspace]` entry, which means `Always` — so
it arrives when they build rather than when they install.
@Sunrisepeak
Sunrisepeak merged commit e75cd83 into main Sep 4, 2026
4 checks passed
@Sunrisepeak
Sunrisepeak deleted the tier-install-edge branch September 4, 2026 12:00
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