You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
0.5.2 fixes a defect the cross-platform run of the generator's fixture found:
`namespace_of` trimmed a base directory off a file's directory as a string, and
on Windows a root stated with forward slashes against a directory iterator
appending with the preferred separator left `\image` rather than `image` -- so
the root directory became a namespace segment and an entry point landed in
`app::kernels::_::image`.
The shader lane shares that function and had the defect latent: its Windows
fixture keeps every payload in one directory, so a segment was never derived
there. `examples/09-heterogeneous/vulkan` and `examples/10-graphics/offscreen`
therefore take this pin for a reason of their own.
Verified against the published package: `boundary` resolves
`mcpp-x-plugins/0.5.2` from the index and prints `6 12 18 24`.
Copy file name to clipboardExpand all lines: .agents/docs/2026-09-08-island-boundary-names.md
+26-8Lines changed: 26 additions & 8 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -413,6 +413,8 @@ negation.
413
413
| a flatter fallback tree is accepted | fixture: `cuda/image/blur.cu` with `cpu/ops.cpp`; the namespace is `image`|
414
414
| a backend-only entry point still has a place | fixture: a name only the second root declares; its namespace is that root's path |
415
415
| the disagreement check still fires | the existing `island-interface` negative fixture, unchanged in behaviour |
416
+
| overlapping roots are refused | negative fixture: `src` named beside `src/kernels`; the message names both roots |
417
+
| the derivation runs on every host | the fixture builds and its namespaces are asserted on macOS and Windows, not only Linux |
416
418
| the output is a function of the tree, not of the walk | the same tree scanned twice produces byte-identical files, and a no-op rebuild touches neither |
417
419
| an empty root set is an error | a fixture whose roots hold sources but no marker; the build fails naming the root |
418
420
| two files in ONE root, one name | refused, and the message says the two belong in two roots |
@@ -421,17 +423,33 @@ negation.
421
423
## 12. What shipped
422
424
423
425
`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
426
+
carries the refusal of overlapping roots that §6 states and 0.5.0 omitted. That
427
+
is the shape of defect where a requirement folded into a larger change
428
+
disappears when that change ships: §6 stated it in prose and §11 gave it no
429
+
criterion of its own, so nothing was red when it was absent. It has one now. It also stops a
427
430
single-file root from registering a re-run glob over the directory that file
428
431
happens to sit in.
429
432
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
433
+
**0.5.2** carries a defect the cross-platform run found. `mcpp.tools.island`
434
+
compiled on all three hosts and had been exercised on one; the first Windows
435
+
run of the fixture failed to compile with `no member named 'image' in namespace
436
+
'island_interface::kernels'`. `namespace_of` trimmed the base directory off a
437
+
file's directory as a STRING, and a root stated with forward slashes against a
438
+
directory iterator appending with the preferred separator left `\image` rather
439
+
than `image` -- so the root directory became a segment, sanitised to `_`. It
440
+
compares components now.
441
+
442
+
The shader lane shares that function and had the defect latent: its Windows
443
+
fixture keeps every payload in one directory, so a segment was never derived
444
+
there. The leg that surfaced it is not the lane it lives on, and a step now
445
+
asserts the derivation exists once so the island fixture's cross-platform run
446
+
keeps protecting both.
447
+
448
+
All three are indexed, and `mcpp` pins 0.5.2 across the example tree. The
449
+
published package was verified in an xlings sandbox against the index rather
450
+
than a working tree: a project written inside the sandbox resolved
451
+
`registry/data/xpkgs/mcpp-x-plugins`, printed `6 12 18 24`, and its generated
452
+
module carried `export namespace sandbox::kernels` and
0 commit comments