Skip to content

Commit c198032

Browse files
openkal 0.17.1, openkal-linux 0.18.1, openkal-macos 0.15.1, openkal-windows 0.13.1 (#579)
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
1 parent 2fdff6e commit c198032

7 files changed

Lines changed: 111 additions & 5 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,13 @@
1313
`xim:gcc` 16.1.0 载荷的头文件与运行库目录并写出自身清单(`std-module` 为 `bits/std.cc`),
1414
clang 据此以 libstdc++ 编译、`import std` 与链接(需要 mcpp 2026.10.26.1,SPEC-002 §7)。
1515
新增测试成员 `tests/examples/libstdcxx-llvm`。
16+
- **openkal 0.17.1 及其实现 openkal-linux 0.18.1、openkal-macos 0.15.1、openkal-windows 0.13.1。**
17+
openkal 增加 `KAL_SPAWN_ONE_STRING` / `KAL_PROCESS_PROP_ONE_STRING`:接收单个字符串的系统(Windows)上,
18+
程序名之后的参数按原样连接,供以自身语法读取命令的命令解释器使用;接收参数向量的系统拒绝该标志。
19+
openkal-windows 实现它;openkal-linux 与 openkal-macos 把 SIGHUP 纳入结束请求;openkal-linux 以绝对名
20+
启动需要解释器的程序(`#!` 脚本的 `$0` 不再是 `/dev/fd/<n>`);openkal-macos 把 EBADARCH 与
21+
EBADMACHO 译为 `kal_err_not_program`。测试成员 `openkal` 移到这些版本,并观察单字符串标志在
22+
接收向量的系统上被拒绝。GLOBAL 为 GitHub 标签归档,CN 为 GitCode `mcpp-res` 镜像,sha256 两处一致。
1623

1724
### Changed
1825

‎pkgs/o/openkal-linux.lua‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ package = {
1919

2020
xpm = {
2121
linux = {
22+
["0.18.1"] = {
23+
url = {
24+
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.1.tar.gz",
25+
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.18.1/openkal-linux-0.18.1.tar.gz",
26+
},
27+
sha256 = "fd3024c4e17936ac2753a16b2b8682b86f694929b84724f731e7517738577b56",
28+
},
2229
["0.18.0"] = {
2330
url = {
2431
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.0.tar.gz",
@@ -161,6 +168,13 @@ package = {
161168
},
162169
},
163170
macosx = {
171+
["0.18.1"] = {
172+
url = {
173+
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.1.tar.gz",
174+
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.18.1/openkal-linux-0.18.1.tar.gz",
175+
},
176+
sha256 = "fd3024c4e17936ac2753a16b2b8682b86f694929b84724f731e7517738577b56",
177+
},
164178
["0.18.0"] = {
165179
url = {
166180
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.0.tar.gz",
@@ -303,6 +317,13 @@ package = {
303317
},
304318
},
305319
windows = {
320+
["0.18.1"] = {
321+
url = {
322+
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.1.tar.gz",
323+
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.18.1/openkal-linux-0.18.1.tar.gz",
324+
},
325+
sha256 = "fd3024c4e17936ac2753a16b2b8682b86f694929b84724f731e7517738577b56",
326+
},
306327
["0.18.0"] = {
307328
url = {
308329
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.0.tar.gz",

‎pkgs/o/openkal-macos.lua‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,13 @@ package = {
1919

2020
xpm = {
2121
linux = {
22+
["0.15.1"] = {
23+
url = {
24+
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.1.tar.gz",
25+
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.15.1/openkal-macos-0.15.1.tar.gz",
26+
},
27+
sha256 = "c82067b51ebee18d1c75720054726cae2114b39349f5874467471ae78ed083b7",
28+
},
2229
["0.15.0"] = {
2330
url = {
2431
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.0.tar.gz",
@@ -168,6 +175,13 @@ package = {
168175
},
169176
},
170177
macosx = {
178+
["0.15.1"] = {
179+
url = {
180+
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.1.tar.gz",
181+
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.15.1/openkal-macos-0.15.1.tar.gz",
182+
},
183+
sha256 = "c82067b51ebee18d1c75720054726cae2114b39349f5874467471ae78ed083b7",
184+
},
171185
["0.15.0"] = {
172186
url = {
173187
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.0.tar.gz",
@@ -317,6 +331,13 @@ package = {
317331
},
318332
},
319333
windows = {
334+
["0.15.1"] = {
335+
url = {
336+
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.1.tar.gz",
337+
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.15.1/openkal-macos-0.15.1.tar.gz",
338+
},
339+
sha256 = "c82067b51ebee18d1c75720054726cae2114b39349f5874467471ae78ed083b7",
340+
},
320341
["0.15.0"] = {
321342
url = {
322343
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.0.tar.gz",

‎pkgs/o/openkal-windows.lua‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ package = {
2121

2222
xpm = {
2323
linux = {
24+
["0.13.1"] = {
25+
url = {
26+
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.1.tar.gz",
27+
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.13.1/openkal-windows-0.13.1.tar.gz",
28+
},
29+
sha256 = "8bc3dd196a4f5abb6746aedbe1ada6bbc7f4e18d6c6d626dc5c8aca2a9f705f7",
30+
},
2431
["0.13.0"] = {
2532
url = {
2633
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.0.tar.gz",
@@ -184,6 +191,13 @@ package = {
184191
},
185192
},
186193
macosx = {
194+
["0.13.1"] = {
195+
url = {
196+
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.1.tar.gz",
197+
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.13.1/openkal-windows-0.13.1.tar.gz",
198+
},
199+
sha256 = "8bc3dd196a4f5abb6746aedbe1ada6bbc7f4e18d6c6d626dc5c8aca2a9f705f7",
200+
},
187201
["0.13.0"] = {
188202
url = {
189203
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.0.tar.gz",
@@ -347,6 +361,13 @@ package = {
347361
},
348362
},
349363
windows = {
364+
["0.13.1"] = {
365+
url = {
366+
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.1.tar.gz",
367+
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.13.1/openkal-windows-0.13.1.tar.gz",
368+
},
369+
sha256 = "8bc3dd196a4f5abb6746aedbe1ada6bbc7f4e18d6c6d626dc5c8aca2a9f705f7",
370+
},
350371
["0.13.0"] = {
351372
url = {
352373
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.0.tar.gz",

‎pkgs/o/openkal.lua‎

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,13 @@ package = {
2222

2323
xpm = {
2424
linux = {
25+
["0.17.1"] = {
26+
url = {
27+
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.1.tar.gz",
28+
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.17.1/openkal-0.17.1.tar.gz",
29+
},
30+
sha256 = "778b123192ab0acf73a5ab71cea9b4eba33a23f92d97a83700907c77a9b5213c",
31+
},
2532
["0.17.0"] = {
2633
url = {
2734
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.0.tar.gz",
@@ -136,6 +143,13 @@ package = {
136143
},
137144
},
138145
macosx = {
146+
["0.17.1"] = {
147+
url = {
148+
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.1.tar.gz",
149+
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.17.1/openkal-0.17.1.tar.gz",
150+
},
151+
sha256 = "778b123192ab0acf73a5ab71cea9b4eba33a23f92d97a83700907c77a9b5213c",
152+
},
139153
["0.17.0"] = {
140154
url = {
141155
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.0.tar.gz",
@@ -250,6 +264,13 @@ package = {
250264
},
251265
},
252266
windows = {
267+
["0.17.1"] = {
268+
url = {
269+
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.1.tar.gz",
270+
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.17.1/openkal-0.17.1.tar.gz",
271+
},
272+
sha256 = "778b123192ab0acf73a5ab71cea9b4eba33a23f92d97a83700907c77a9b5213c",
273+
},
253274
["0.17.0"] = {
254275
url = {
255276
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.0.tar.gz",

‎tests/examples/openkal/mcpp.toml‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,16 +18,16 @@ name = "openkal-tests"
1818
version = "0.1.0"
1919

2020
[dependencies.mcpplibs]
21-
openkal = "0.17.0"
21+
openkal = "0.17.1"
2222

2323
[target.'cfg(os = "linux")'.dependencies.mcpplibs]
24-
openkal-linux = "0.18.0"
24+
openkal-linux = "0.18.1"
2525

2626
[target.'cfg(os = "macos")'.dependencies.mcpplibs]
27-
openkal-macos = "0.15.0"
27+
openkal-macos = "0.15.1"
2828

2929
[target.'cfg(windows)'.dependencies.mcpplibs]
30-
openkal-windows = "0.13.0"
30+
openkal-windows = "0.13.1"
3131

3232
[target.'cfg(all(os = "linux", env = "musl"))'.dependencies.mcpplibs]
3333
openkal-llvm-runtime = "0.16.0"

‎tests/examples/openkal/tests/kal.cpp‎

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@
44
// relies on: a context started with a least stack size is told at least that
55
// size and has the room; a closed directory's enumeration is refused; and
66
// (0.17) the system is named, this program names itself with the moment it
7-
// started, and a rename that does not replace refuses a name that is taken. The terminal is not observed here,
7+
// started, and a rename that does not replace refuses a name that is taken;
8+
// (0.17.1) a joined command line is refused where programs receive vectors.
9+
// The terminal is not observed here,
810
// because a test run has none; the implementations observe it on a terminal
911
// they make.
1012
#include <openkal/env.h>
@@ -41,6 +43,7 @@ void room(void* p) {
4143

4244
int main() {
4345
check(KAL_VERSION_MINOR >= 17u || KAL_VERSION_MAJOR > 0u, "the declarations are openkal 0.17 or later");
46+
check(KAL_VERSION_MINOR > 17u || KAL_VERSION_PATCH >= 1u || KAL_VERSION_MAJOR > 0u, "and 0.17.1 or later");
4447
check(kal_version() >= KAL_VERSION, "the implementation is at least as new as the declarations");
4548

4649
probe q{0, 0};
@@ -87,6 +90,18 @@ int main() {
8790
kal_fs_remove(root, "okt.b", 5);
8891
}
8992

93+
if ((kal_process_props() & KAL_PROCESS_PROP_ONE_STRING) == 0 && root.h) {
94+
// Where a program receives a vector, a joined command line has no
95+
// meaning and the start is refused before anything runs.
96+
const char* argv[] = { "x" };
97+
const kal_uintptr lens[] = { 1 };
98+
const kal_spawn how{ root, root, nullptr, nullptr, 0, KAL_SPAWN_ONE_STRING };
99+
kal_process p{};
100+
check(kal_process_spawn(&how, "x", 1, argv, lens, 1, nullptr, nullptr, 0, nullptr, &p)
101+
== kal_err_not_supported,
102+
"a joined command line is refused where programs receive vectors");
103+
}
104+
90105
if (failures == 0) kal_stream_write(kal_stdout(), "openkal: held\n", 14);
91106
return failures == 0 ? 0 : 1;
92107
}

0 commit comments

Comments
 (0)