From b316a297bb401a39d9009de09a885776c059cc7d Mon Sep 17 00:00:00 2001 From: speak-agent Date: Thu, 20 Aug 2026 03:55:20 +0800 Subject: [PATCH] feat: openkal 0.2.0 and openkal-linux 0.2.0 The specification now owns the interface. Version 0.1 placed the module a consumer imports under the control of the implementation: the specification package provided openkal.decl. and the implementation re-exported it as openkal.. That contradicts what a specification is for, and it made the name a consumer relies upon the property of a party the specification does not govern. consumer --imports--> openkal <--imports-- implementation | | +------------ links against ---------------+ An implementation now contributes definitions and exports no module. It imports the same interface a consumer imports, because it needs the declarations it is defining. The earlier arrangement existed to support detection of optional operations through argument-dependent lookup, which requires an implementation's declarations to be visible to the consumer. Version 0.1 defined no optional operation, so the mechanism served nothing that existed, and clause 6.3 now records the alternatives and the measurements that constrain them. 0.1.0 is replaced rather than retained. Two incompatible specifications under one name would be worse than the absence of the earlier one, which no project uses. --- pkgs/o/openkal-linux.lua | 24 ++++++++++++------------ pkgs/o/openkal.lua | 29 +++++++++++++++++------------ 2 files changed, 29 insertions(+), 24 deletions(-) diff --git a/pkgs/o/openkal-linux.lua b/pkgs/o/openkal-linux.lua index e8c80a0..300ef83 100644 --- a/pkgs/o/openkal-linux.lua +++ b/pkgs/o/openkal-linux.lua @@ -19,30 +19,30 @@ package = { xpm = { linux = { - ["0.1.0"] = { + ["0.2.0"] = { url = { - GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.1.0.tar.gz", - CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.1.0/openkal-linux-0.1.0.tar.gz", + GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.2.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.2.0/openkal-linux-0.2.0.tar.gz", }, - sha256 = "ea00efa54c5bb3f62b29a9cfd5c8f8f3f32d8ddc6a1da75477893e2c7aca7223", + sha256 = "0007231fa59852f13ac3a0048033c9efbe6772c39545bbfb36f230c6ffd8a654", }, }, macosx = { - ["0.1.0"] = { + ["0.2.0"] = { url = { - GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.1.0.tar.gz", - CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.1.0/openkal-linux-0.1.0.tar.gz", + GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.2.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.2.0/openkal-linux-0.2.0.tar.gz", }, - sha256 = "ea00efa54c5bb3f62b29a9cfd5c8f8f3f32d8ddc6a1da75477893e2c7aca7223", + sha256 = "0007231fa59852f13ac3a0048033c9efbe6772c39545bbfb36f230c6ffd8a654", }, }, windows = { - ["0.1.0"] = { + ["0.2.0"] = { url = { - GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.1.0.tar.gz", - CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.1.0/openkal-linux-0.1.0.tar.gz", + GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.2.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.2.0/openkal-linux-0.2.0.tar.gz", }, - sha256 = "ea00efa54c5bb3f62b29a9cfd5c8f8f3f32d8ddc6a1da75477893e2c7aca7223", + sha256 = "0007231fa59852f13ac3a0048033c9efbe6772c39545bbfb36f230c6ffd8a654", }, }, }, diff --git a/pkgs/o/openkal.lua b/pkgs/o/openkal.lua index 269bf20..be23ea2 100644 --- a/pkgs/o/openkal.lua +++ b/pkgs/o/openkal.lua @@ -2,6 +2,11 @@ -- -- Form A because the package is described by its own mcpp.toml. -- +-- 0.1.0 is replaced rather than retained. It placed the module a consumer +-- imports under the control of the implementation, which contradicts what +-- the specification is for; two incompatible specifications under one name +-- would be worse than the absence of the earlier one, which no project uses. +-- -- No `deps`. This package declares and does not define; it needs neither a -- toolchain payload nor a target sysroot, and the implementation that supplies -- the definitions is selected by the consuming project as a conditional @@ -17,30 +22,30 @@ package = { xpm = { linux = { - ["0.1.0"] = { + ["0.2.0"] = { url = { - GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.1.0.tar.gz", - CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.1.0/openkal-0.1.0.tar.gz", + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.2.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.2.0/openkal-0.2.0.tar.gz", }, - sha256 = "81952cf4c608cb7ffe4f01c01b0d28a6c606f28ea30b2840de33834917c54f36", + sha256 = "461865b784dbb2eb70f757e11889428e1551e297878877c424d429ff3a55281b", }, }, macosx = { - ["0.1.0"] = { + ["0.2.0"] = { url = { - GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.1.0.tar.gz", - CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.1.0/openkal-0.1.0.tar.gz", + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.2.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.2.0/openkal-0.2.0.tar.gz", }, - sha256 = "81952cf4c608cb7ffe4f01c01b0d28a6c606f28ea30b2840de33834917c54f36", + sha256 = "461865b784dbb2eb70f757e11889428e1551e297878877c424d429ff3a55281b", }, }, windows = { - ["0.1.0"] = { + ["0.2.0"] = { url = { - GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.1.0.tar.gz", - CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.1.0/openkal-0.1.0.tar.gz", + GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.2.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.2.0/openkal-0.2.0.tar.gz", }, - sha256 = "81952cf4c608cb7ffe4f01c01b0d28a6c606f28ea30b2840de33834917c54f36", + sha256 = "461865b784dbb2eb70f757e11889428e1551e297878877c424d429ff3a55281b", }, }, },