Skip to content

Commit 57ad8ef

Browse files
committed
examples: pin mcpp:plugins 0.5.1, and record what shipped
0.5.1 adds the refusal of overlapping roots that the design record states and 0.5.0 shipped without. Every example resolves one version of the package.
1 parent 1b2c26d commit 57ad8ef

13 files changed

Lines changed: 29 additions & 13 deletions

File tree

.agents/docs/2026-09-08-island-boundary-names.md

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -418,7 +418,23 @@ negation.
418418
| two files in ONE root, one name | refused, and the message says the two belong in two roots |
419419
| a CPU implementation keeps its place under `backends/` | the additive fixture's three backends land in three namespaces, none of them moved |
420420

421-
## 12. Decided in review
421+
## 12. What shipped
422+
423+
`mcpp:plugins` **0.5.0** (2026-09-08) carries §2 through §8 and §6.1. **0.5.1**
424+
carries the refusal of overlapping roots that §6 states and 0.5.0 omitted --
425+
the shape of defect §10 of the plan warns about, where a requirement folded
426+
into a larger change disappears when that change ships. It also stops a
427+
single-file root from registering a re-run glob over the directory that file
428+
happens to sit in.
429+
430+
Both are indexed, and `mcpp` pins 0.5.1 across the example tree. The published
431+
0.5.1 was verified in an xlings sandbox against the index rather than a working
432+
tree: a project written inside the sandbox resolved
433+
`registry/data/xpkgs/mcpp-x-plugins/0.5.1`, printed `6 12 18 24`, and its
434+
generated module carried `export namespace sandbox::kernels` and
435+
`export namespace sandbox::kernels::vec`.
436+
437+
## 13. Decided in review
422438

423439
1. **No compatibility flag** (§9). The four call sites are ours and are updated
424440
with the release; a flag that kept the global spelling alive would leave the

examples/09-heterogeneous/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,7 +104,7 @@ selects it and the accelerator it serves, so a project writes one edge and no
104104

105105
```toml
106106
[build-dependencies.mcpp]
107-
plugins = { version = "0.5.0", features = ["rules-cuda", "tools-island"], host-module = true }
107+
plugins = { version = "0.5.1", features = ["rules-cuda", "tools-island"], host-module = true }
108108
```
109109

110110
`multi-backend/` is the one example here that also pins a version, and it does

examples/09-heterogeneous/boundary/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ standard = "c++23"
88
# `tools-island` is not a device rule: it claims no extension and names no rule
99
# module, so the edge states `host-module = true` itself.
1010
[build-dependencies.mcpp]
11-
plugins = { version = "0.5.0", features = ["tools-island"], host-module = true }
11+
plugins = { version = "0.5.1", features = ["tools-island"], host-module = true }
1212

1313
[build]
1414
sources = ["src/*.cpp", "src/kernels/**/*.c"]

examples/09-heterogeneous/cann/app/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import_std = true
1414
# imports it as `mcpp.rules.ascendc`. `[build-dependencies]`, because a rule
1515
# package's library must never reach the target while its rule is wanted.
1616
[build-dependencies.mcpp]
17-
plugins = { version = "0.5.0", features = ["rules-ascendc"], host-module = true }
17+
plugins = { version = "0.5.1", features = ["rules-ascendc"], host-module = true }
1818

1919
# NO [xlings.workspace]. `mcpp.rules.ascendc` declares `xim:cann-toolkit`
2020
# itself, gated on this accelerator and on the feature that selects the rule --

examples/09-heterogeneous/cuda/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ The rule names it. This project writes one edge and no payload list at all:
9898

9999
```toml
100100
[build-dependencies.mcpp]
101-
plugins = { version = "0.5.0", features = ["rules-cuda", "tools-island"], host-module = true }
101+
plugins = { version = "0.5.1", features = ["rules-cuda", "tools-island"], host-module = true }
102102
```
103103

104104
`mcpp.rules.cuda` declares nvcc, cudart, cuRAND's headers, CCCL and the driver

examples/09-heterogeneous/cuda/app/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ default = "llvm@22.1.8"
2323
# `extern "C"` boundary the island's compiler reads and the module the seam
2424
# imports, so neither signature is stated twice.
2525
[build-dependencies.mcpp]
26-
plugins = { version = "0.5.0", features = ["rules-cuda", "tools-island"], host-module = true }
26+
plugins = { version = "0.5.1", features = ["rules-cuda", "tools-island"], host-module = true }
2727

2828
# The driver's userspace library, reached through an index package that owns
2929
# the one hop mcpp needs: a directory on the artifact's runtime search path.

examples/09-heterogeneous/hip/app/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import_std = true
2020
default = "llvm@22.1.8"
2121

2222
[build-dependencies.mcpp]
23-
plugins = { version = "0.5.0", features = ["rules-hip"], host-module = true }
23+
plugins = { version = "0.5.1", features = ["rules-hip"], host-module = true }
2424

2525
# The driver's userspace library. HIP reaches the device through the CUDA
2626
# runtime here, so this is the same one hop the CUDA consumer needs: mcpp's

examples/09-heterogeneous/multi-backend/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ saying it after the vocabulary grows.
9393

9494
```toml
9595
[build-dependencies.mcpp]
96-
plugins = { version = "0.5.0", features = ["rules-cuda", "rules-spirv"], host-module = true }
96+
plugins = { version = "0.5.1", features = ["rules-cuda", "rules-spirv"], host-module = true }
9797
```
9898

9999
Two rules, in one build program, which is what an additive-backend package

examples/09-heterogeneous/multi-backend/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ default = "llvm@22.1.8"
4040
# The rules are declared unconditionally because `build.mcpp` imports them
4141
# unconditionally -- each returns immediately when its own backend is absent.
4242
[build-dependencies.mcpp]
43-
plugins = { version = "0.5.0", features = ["rules-cuda", "rules-spirv"], host-module = true }
43+
plugins = { version = "0.5.1", features = ["rules-cuda", "rules-spirv"], host-module = true }
4444

4545
# ── the payloads, gated on the device they are for ──────────────────────────
4646
#

examples/09-heterogeneous/sycl/app/mcpp.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import_std = true
2020
default = "llvm@22.1.8"
2121

2222
[build-dependencies.mcpp]
23-
plugins = { version = "0.5.0", features = ["rules-sycl", "tools-island"], host-module = true }
23+
plugins = { version = "0.5.1", features = ["rules-sycl", "tools-island"], host-module = true }
2424

2525
# The SYCL runtime, on the artifact's runtime search path. mcpp's private
2626
# loader does not consult /usr/lib, so `libsycl.so.9` -- which the rule

0 commit comments

Comments
 (0)