Skip to content

Commit 44a3460

Browse files
committed
feat(index): mcpp:plugins 0.2.1, and a CI pin that follows the engine
`mcpp:plugins` 0.2.1 makes `mcpp.rules.sycl` name the C library. The device compiler is a second compiler: it does not inherit the toolchain the engine configured, so without `-isystem` pointing at `xim:glibc` and `xim:linux-headers` it reads the host's `/usr/include`. The rule now requires both declarations, unpinned, because the C library version is the runtime binding's choice and differs between a developer machine and a runner. The CI pin moves 2026.8.27.2 -> 2026.9.6.2. It had drifted about ten releases behind, so this index was validated against an engine no user runs. `llamacpp@b10069.1` made the drift visible rather than causing it: its build program calls `mcpp::toolchain_sysroot()` and `mcpp::toolchain_binutils_dir()` for the same reason as above, and under the old pin the workspace members could not compile it. The members build `b10069.1` again. `index.toml` min_mcpp does not move. It states the oldest mcpp able to RESOLVE every descriptor, and all 218 parse under both versions; raising it would refuse the whole index to a client on the floor over a build-program API that client may never reach. `b10069` stays published for exactly that case.
1 parent 1e8984e commit 44a3460

3 files changed

Lines changed: 79 additions & 25 deletions

File tree

.github/workflows/validate.yml

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,28 @@ env:
163163
# - mcpp#405 依赖 BMI 缓存命中时,被恢复的包传递依赖的 `std` 没进构建图 ——
164164
# **每个图形项目的第二次构建必挂**(消费方自己不 `import std` 时现形)。
165165
# - mcpp#407 `mcpp build` 会重放 `mcpp test` 留下的构建图。
166-
MCPP_VERSION: "2026.8.27.2"
166+
#
167+
# 2026-09-06: raised 2026.8.27.2 -> 2026.9.6.2.
168+
#
169+
# The pin had drifted about ten releases behind, so this index was validated
170+
# against an engine no user runs. `llamacpp@b10069.1` made the drift visible
171+
# rather than causing it: its build program calls `mcpp::toolchain_sysroot()`
172+
# and `mcpp::toolchain_binutils_dir()` (mcpp 2026.9.5.2+) to hand the
173+
# ecosystem C library to the second compiler it drives, and under the old pin
174+
# the workspace members failed to compile it. A package whose build program
175+
# uses a current engine API is not a defect; a CI that cannot run current
176+
# engines is.
177+
#
178+
# `index.toml` min_mcpp deliberately does NOT move with this. The floor states
179+
# the oldest mcpp able to RESOLVE every descriptor -- descriptor grammar --
180+
# and every one of the 218 descriptors here parses under both versions. A
181+
# client on 2026.8.27.2 keeps the whole index; only `llamacpp@b10069.1`, whose
182+
# build program needs the newer accessors, is out of reach for it, and
183+
# `b10069` remains published for exactly that case. Raising the floor instead
184+
# would refuse the index to that client entirely, which is the failure mode
185+
# `index-floor-must-degrade` names: the index is data, mcpp is the program,
186+
# and publishing data must not invalidate the program.
187+
MCPP_VERSION: "2026.9.6.2"
167188

168189
jobs:
169190
lint:

pkgs/g/ggml-org.llamacpp.lua

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,27 @@ package = {
2424

2525
xpm = {
2626
linux = {
27-
-- b10069.1 ADDS `backend-vulkan`, AND ITS BUILD PROGRAM NEEDS A NEWER
28-
-- mcpp THAN THIS INDEX'S CI PINS. It calls `mcpp::toolchain_sysroot()`
29-
-- and `mcpp::toolchain_binutils_dir()` (mcpp 2026.9.5.2+) to tell the
30-
-- shader generator's compiler where the ecosystem's C library is;
31-
-- without them it reads the host's, which is the dependency this
32-
-- ecosystem removes. On an older mcpp the build program does not
33-
-- compile, and the error names the function rather than the version --
34-
-- a qualified name that does not exist is ill-formed, not `false`, so
35-
-- no package can probe for it (mcpp docs/07).
27+
-- b10069.1 ADDS `backend-vulkan`, AND ITS BUILD PROGRAM NEEDS mcpp
28+
-- 2026.9.5.2+. It calls `mcpp::toolchain_sysroot()` and
29+
-- `mcpp::toolchain_binutils_dir()` to tell the shader generator's
30+
-- compiler where the ecosystem's C library is; without them that
31+
-- compiler reads the host's, which is the dependency this ecosystem
32+
-- removes. On an older mcpp the build program does not compile, and
33+
-- the error names the function rather than the version -- a qualified
34+
-- name that does not exist is ill-formed, not `false`, so no package
35+
-- can probe for it (mcpp docs/07).
3636
--
37-
-- The workspace members therefore stay on `b10069`: this index's CI
38-
-- pins 2026.8.27.2, and what it can build is what builds for users of
39-
-- that version. The new version's build is verified where it belongs,
40-
-- in llama.cpp-m's own CI, which pins 2026.9.6.2 and runs the backend
41-
-- on a software Vulkan device with no GPU.
37+
-- This entry is what raised the CI pin to 2026.9.6.2 (validate.yml).
38+
-- The pin had drifted about ten releases behind, so it was not this
39+
-- package that outran the index; the index had stopped following the
40+
-- engine. The workspace members build `b10069.1` under the new pin.
4241
--
43-
-- `min_mcpp` is NOT the lever for this. It states the oldest mcpp that
44-
-- can RESOLVE every descriptor, and this descriptor uses no new
45-
-- grammar; raising it would brick clients over a build-program API
46-
-- they may never reach.
42+
-- `min_mcpp` is NOT the lever for this, and does not move. It states
43+
-- the oldest mcpp that can RESOLVE every descriptor, and this
44+
-- descriptor uses no new grammar. A client on the floor keeps the
45+
-- whole index and keeps `b10069`, which stays published for exactly
46+
-- that case; raising the floor would refuse the index outright over a
47+
-- build-program API such a client may never reach.
4748
["b10069.1"] = {
4849
url = {
4950
GLOBAL = "https://github.com/mcpplibs/llama.cpp-m/archive/refs/tags/b10069.1.tar.gz",

pkgs/m/mcpp.plugins.lua

Lines changed: 38 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
-- each member selected by a feature.
33
--
44
-- [dependencies.mcpp]
5-
-- plugins = { version = "0.2.0", features = ["rules-spirv"], host-module = true }
5+
-- plugins = { version = "0.2.1", features = ["rules-spirv"], host-module = true }
66
--
77
-- // build.mcpp
88
-- import mcpp;
99
-- import mcpp.rules.spirv;
1010
--
11-
-- Members of 0.2.0, with the mcpp release each relies on:
11+
-- Members of 0.2.1, with the mcpp release each relies on:
1212
--
1313
-- mcpp.rules.cuda `rules-cuda` >= 2026.9.5.2
1414
-- mcpp.rules.spirv `rules-spirv` >= 2026.9.5.3; since 0.2.0 it drives glslc
@@ -26,7 +26,18 @@
2626
-- mcpp.rules.sycl `rules-sycl` >= 2026.9.6.1, the release whose
2727
-- device-source table carries `.sycl`. Needs
2828
-- `compat:sycl-runtime` so the artifact can
29-
-- reach `libsycl.so.9` at run time
29+
-- reach `libsycl.so.9` at run time. Since
30+
-- 0.2.1 it also names the C library: the
31+
-- device compiler is a second compiler and
32+
-- does not inherit the toolchain the engine
33+
-- configured, so without `-isystem` pointing
34+
-- at `xim:glibc` and `xim:linux-headers` it
35+
-- reads the host's `/usr/include`. The rule
36+
-- requires both declarations and refuses
37+
-- naming them when they are absent; both are
38+
-- unpinned, because the C library version is
39+
-- the runtime binding's choice and differs
40+
-- between a developer machine and a runner
3041
--
3142
-- The floor recorded for this package is the HIGHEST of those, so it is the
3243
-- collection's floor rather than any one feature's: a project on 2026.9.5.4
@@ -56,6 +67,13 @@ package = {
5667

5768
xpm = {
5869
linux = {
70+
["0.2.1"] = {
71+
url = {
72+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.1.tar.gz",
73+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.1/mcpp-plugins-0.2.1.tar.gz",
74+
},
75+
sha256 = "86dcc5975f7fb17910182bc890536fa2685ef2ca947a405969bd9c74e49a48fe",
76+
},
5977
["0.2.0"] = {
6078
url = {
6179
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.0.tar.gz",
@@ -77,9 +95,16 @@ package = {
7795
},
7896
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
7997
},
80-
["latest"] = { ref = "0.2.0" },
98+
["latest"] = { ref = "0.2.1" },
8199
},
82100
macosx = {
101+
["0.2.1"] = {
102+
url = {
103+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.1.tar.gz",
104+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.1/mcpp-plugins-0.2.1.tar.gz",
105+
},
106+
sha256 = "86dcc5975f7fb17910182bc890536fa2685ef2ca947a405969bd9c74e49a48fe",
107+
},
83108
["0.2.0"] = {
84109
url = {
85110
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.0.tar.gz",
@@ -101,9 +126,16 @@ package = {
101126
},
102127
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
103128
},
104-
["latest"] = { ref = "0.2.0" },
129+
["latest"] = { ref = "0.2.1" },
105130
},
106131
windows = {
132+
["0.2.1"] = {
133+
url = {
134+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.1.tar.gz",
135+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.2.1/mcpp-plugins-0.2.1.tar.gz",
136+
},
137+
sha256 = "86dcc5975f7fb17910182bc890536fa2685ef2ca947a405969bd9c74e49a48fe",
138+
},
107139
["0.2.0"] = {
108140
url = {
109141
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.2.0.tar.gz",
@@ -125,7 +157,7 @@ package = {
125157
},
126158
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
127159
},
128-
["latest"] = { ref = "0.2.0" },
160+
["latest"] = { ref = "0.2.1" },
129161
},
130162
},
131163

0 commit comments

Comments
 (0)