|
2 | 2 | -- each member selected by a feature. |
3 | 3 | -- |
4 | 4 | -- [dependencies.mcpp] |
5 | | --- plugins = { version = "0.2.4", features = ["rules-spirv"], host-module = true } |
| 5 | +-- plugins = { version = "0.2.5", features = ["rules-spirv"], host-module = true } |
6 | 6 | -- |
7 | 7 | -- // build.mcpp |
8 | 8 | -- import mcpp; |
9 | 9 | -- import mcpp.rules.spirv; |
10 | 10 | -- |
11 | | --- Members of 0.2.4, with the mcpp release each relies on: |
| 11 | +-- Members of 0.2.5, with the mcpp release each relies on: |
12 | 12 | -- |
13 | 13 | -- mcpp.rules.cuda `rules-cuda` >= 2026.9.5.2 |
14 | 14 | -- mcpp.rules.spirv `rules-spirv` >= 2026.9.5.3; since 0.2.0 it drives glslc |
|
39 | 39 | -- the runtime binding's choice and differs |
40 | 40 | -- between a developer machine and a runner |
41 | 41 | -- |
| 42 | +-- 0.2.5 is the release in which the collection stopped being a Linux |
| 43 | +-- collection. Three things changed and none of them is a new member. |
| 44 | +-- |
| 45 | +-- ONE SHADER COMPILER PER PLATFORM. `xim:glslang` is published for Linux |
| 46 | +-- alone, so `rules-spirv` reached one platform even though the Vulkan and |
| 47 | +-- OpenGL libraries in the index reach three -- the gap sat in the middle |
| 48 | +-- layer, where a developer on Windows could link Vulkan, open a window and |
| 49 | +-- draw a triangle provided they brought their own shader compiler, which is |
| 50 | +-- the one thing a build system is for. macOS and Windows now take |
| 51 | +-- `xim:shaderc`, and the rule CHOOSES between the two, so cross-platform |
| 52 | +-- parity is provided by the rule's ability to choose rather than by |
| 53 | +-- publishing one compiler three times. |
| 54 | +-- |
| 55 | +-- CUDA AND SYCL ON WINDOWS. NVIDIA and Intel both publish Windows assets for |
| 56 | +-- the components these rules drive, so this was recipe work rather than |
| 57 | +-- packaging work: `xim:cuda-nvcc`, `xim:cuda-cudart`, `xim:cuda-cccl`, |
| 58 | +-- `xim:libcurand` and `xim:dpcpp` gained Windows sections in xim-pkgindex, |
| 59 | +-- and the rules gained the host-dependent halves that go with them -- the |
| 60 | +-- `.exe` suffix, `lib/x64`, and the decision that on Windows the CUDA rule |
| 61 | +-- takes its clang route whatever the project's compiler is, because the nvcc |
| 62 | +-- route needs MSVC's cl.exe located by asking the machine about its Visual |
| 63 | +-- Studio installation. |
| 64 | +-- |
| 65 | +-- AND EVERY RULE IS NOW COMPILED FOR EVERY PLATFORM. Each consumer in that |
| 66 | +-- repository drives one rule end to end and therefore needs that rule's |
| 67 | +-- payload, and payloads are published for one, two or three platforms -- so |
| 68 | +-- the half of a rule written for a host was exactly the half that host never |
| 69 | +-- compiled. A fixture that names no accelerator (every rule returns |
| 70 | +-- immediately, nothing is downloaded) now compiles all six modules on Linux, |
| 71 | +-- macOS and Windows. It found three defects on its first run, one per host |
| 72 | +-- difference, none of them visible to a Linux build. |
| 73 | +-- |
| 74 | +-- ONE DECLARATION IN THIS RELEASE IS AN EXACT VERSION WHERE THE SHAPE |
| 75 | +-- WOULD BE A FLOOR. `xim:shaderc` is pinned rather than floored on macOS and |
| 76 | +-- Windows because mcpp 2026.9.6.6 cannot pass a `>` through a Windows command |
| 77 | +-- line: the JSON provisioning argument is escaped for the child's argv parser |
| 78 | +-- and cmd.exe reads the `>` in `>=2026.3` as a redirection, answering `The |
| 79 | +-- filename, directory name, or volume label syntax is incorrect.` An exact |
| 80 | +-- version is a legitimate declaration -- mcpp reads it as a CHOICE, so a |
| 81 | +-- project pinning a different one still wins -- and it reverts to a floor once |
| 82 | +-- a released engine escapes that argument. |
| 83 | +-- |
42 | 84 | -- 0.2.4 moves every member's floor to the same release, 2026.9.6.6, and the |
43 | 85 | -- reason is one change in the engine rather than five in the rules: a payload |
44 | 86 | -- a DEPENDENCY declared is now both installed and ANSWERABLE. Before it, |
@@ -140,6 +182,13 @@ package = { |
140 | 182 |
|
141 | 183 | xpm = { |
142 | 184 | linux = { |
| 185 | + ["0.2.5"] = { |
| 186 | + url = { |
| 187 | + GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.5.tar.gz", |
| 188 | + CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.5/mcpp-plugins-0.2.5.tar.gz", |
| 189 | + }, |
| 190 | + sha256 = "e720350af4bc9ae05e43da8f55651ae1f9e87de88749070546a86441ae459df8", |
| 191 | + }, |
143 | 192 | ["0.2.4"] = { |
144 | 193 | url = { |
145 | 194 | GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.4.tar.gz", |
@@ -189,9 +238,16 @@ package = { |
189 | 238 | }, |
190 | 239 | sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", |
191 | 240 | }, |
192 | | - ["latest"] = { ref = "0.2.4" }, |
| 241 | + ["latest"] = { ref = "0.2.5" }, |
193 | 242 | }, |
194 | 243 | macosx = { |
| 244 | + ["0.2.5"] = { |
| 245 | + url = { |
| 246 | + GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.5.tar.gz", |
| 247 | + CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.5/mcpp-plugins-0.2.5.tar.gz", |
| 248 | + }, |
| 249 | + sha256 = "e720350af4bc9ae05e43da8f55651ae1f9e87de88749070546a86441ae459df8", |
| 250 | + }, |
195 | 251 | ["0.2.4"] = { |
196 | 252 | url = { |
197 | 253 | GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.4.tar.gz", |
@@ -241,9 +297,16 @@ package = { |
241 | 297 | }, |
242 | 298 | sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", |
243 | 299 | }, |
244 | | - ["latest"] = { ref = "0.2.4" }, |
| 300 | + ["latest"] = { ref = "0.2.5" }, |
245 | 301 | }, |
246 | 302 | windows = { |
| 303 | + ["0.2.5"] = { |
| 304 | + url = { |
| 305 | + GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.5.tar.gz", |
| 306 | + CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.5/mcpp-plugins-0.2.5.tar.gz", |
| 307 | + }, |
| 308 | + sha256 = "e720350af4bc9ae05e43da8f55651ae1f9e87de88749070546a86441ae459df8", |
| 309 | + }, |
247 | 310 | ["0.2.4"] = { |
248 | 311 | url = { |
249 | 312 | GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.4.tar.gz", |
@@ -293,7 +356,7 @@ package = { |
293 | 356 | }, |
294 | 357 | sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", |
295 | 358 | }, |
296 | | - ["latest"] = { ref = "0.2.4" }, |
| 359 | + ["latest"] = { ref = "0.2.5" }, |
297 | 360 | }, |
298 | 361 | }, |
299 | 362 |
|
|
0 commit comments