Skip to content

Commit 6020027

Browse files
committed
docs+publisher: the subos example was nested under the wrong table, and deps emits no edge by design
The 2.13 example put `subos = "dev"` after `[xlings.workspace]`, which in TOML makes it `xlings.workspace.subos` — a key nothing reads. Two blocks, each under the table it belongs to. The emitter gains the reason it skips a package still on `deps`: that key is host-resolved at load, so the per-platform declaration a descriptor needs is already gone, and writing the host's answer into all three blocks would be the machine-dependent descriptor the function exists to avoid.
1 parent 2816089 commit 6020027

4 files changed

Lines changed: 19 additions & 0 deletions

File tree

‎.agents/docs/2026-09-03-xlings-workspace-as-the-one-table.md‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,12 @@ struct XlingsConfig {
315315
316316
`resolve_host_value` already knows which platform each value belongs to.
317317
318+
A package still on `deps` emits no edge, as before. Its declaration is
319+
host-resolved at load, so the per-platform information a descriptor needs is
320+
gone by the time the emitter runs, and writing the host's answer into all three
321+
blocks would be the machine-dependent descriptor this section exists to
322+
prevent. The advisory tells its author how to obtain one.
323+
318324
## 6. Documentation
319325
320326
**`docs/05` §2.13** gains the inheritance rule as a table, next to

‎docs/05-mcpp-toml.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1875,7 +1875,10 @@ picolibc-riscv = "xim:1.8.12" # namespace on the version
18751875
"xim:qemu-user-aarch64" = "7.2.0" # or on the key - quotes required
18761876
code = "" # present; version unconstrained
18771877
llvm = { macosx = "20", default = "22" }
1878+
```
18781879

1880+
```toml
1881+
[xlings]
18791882
subos = "dev" # a named, isolated environment
18801883
```
18811884

‎docs/zh/05-mcpp-toml.md‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1600,7 +1600,10 @@ picolibc-riscv = "xim:1.8.12" # 命名空间写在版本上
16001600
"xim:qemu-user-aarch64" = "7.2.0" # 或写在键上 —— 必须带引号
16011601
code = "" # 存在即可,版本不限
16021602
llvm = { macosx = "20", default = "22" }
1603+
```
16031604

1605+
```toml
1606+
[xlings]
16041607
subos = "dev" # 指名的隔离环境
16051608
```
16061609

‎src/pm/publisher.cppm‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,13 @@ std::string platform_block(std::string_view version, const ReleaseInfo::PerPlatf
133133
// discarded two of the three. Emitting from the host-resolved list instead
134134
// would produce a descriptor whose edges depend on which machine packed it,
135135
// and nothing downstream could tell.
136+
//
137+
// ⚠️ A package still on the superseded `[xlings] deps` emits NO edge, exactly
138+
// as before. That is not an oversight: `deps` is resolved for the host at
139+
// load, so the per-platform declaration a descriptor needs is already gone by
140+
// the time this runs, and writing the host's answer into all three blocks
141+
// would be the machine-dependent descriptor this comment rejects. The
142+
// advisory that key raises tells its author how to obtain an edge.
136143
std::string platform_deps_block(
137144
const std::map<std::string, std::vector<std::string>>& byPlatform,
138145
std::string_view platform)

0 commit comments

Comments
 (0)