Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

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

### Changed

Expand Down
21 changes: 21 additions & 0 deletions pkgs/o/openkal-linux.lua
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ package = {

xpm = {
linux = {
["0.18.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.18.1/openkal-linux-0.18.1.tar.gz",
},
sha256 = "fd3024c4e17936ac2753a16b2b8682b86f694929b84724f731e7517738577b56",
},
["0.18.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.0.tar.gz",
Expand Down Expand Up @@ -161,6 +168,13 @@ package = {
},
},
macosx = {
["0.18.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.18.1/openkal-linux-0.18.1.tar.gz",
},
sha256 = "fd3024c4e17936ac2753a16b2b8682b86f694929b84724f731e7517738577b56",
},
["0.18.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.0.tar.gz",
Expand Down Expand Up @@ -303,6 +317,13 @@ package = {
},
},
windows = {
["0.18.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-linux/releases/download/0.18.1/openkal-linux-0.18.1.tar.gz",
},
sha256 = "fd3024c4e17936ac2753a16b2b8682b86f694929b84724f731e7517738577b56",
},
["0.18.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-linux/archive/refs/tags/0.18.0.tar.gz",
Expand Down
21 changes: 21 additions & 0 deletions pkgs/o/openkal-macos.lua
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,13 @@ package = {

xpm = {
linux = {
["0.15.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.15.1/openkal-macos-0.15.1.tar.gz",
},
sha256 = "c82067b51ebee18d1c75720054726cae2114b39349f5874467471ae78ed083b7",
},
["0.15.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.0.tar.gz",
Expand Down Expand Up @@ -168,6 +175,13 @@ package = {
},
},
macosx = {
["0.15.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.15.1/openkal-macos-0.15.1.tar.gz",
},
sha256 = "c82067b51ebee18d1c75720054726cae2114b39349f5874467471ae78ed083b7",
},
["0.15.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.0.tar.gz",
Expand Down Expand Up @@ -317,6 +331,13 @@ package = {
},
},
windows = {
["0.15.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-macos/releases/download/0.15.1/openkal-macos-0.15.1.tar.gz",
},
sha256 = "c82067b51ebee18d1c75720054726cae2114b39349f5874467471ae78ed083b7",
},
["0.15.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-macos/archive/refs/tags/0.15.0.tar.gz",
Expand Down
21 changes: 21 additions & 0 deletions pkgs/o/openkal-windows.lua
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,13 @@ package = {

xpm = {
linux = {
["0.13.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.13.1/openkal-windows-0.13.1.tar.gz",
},
sha256 = "8bc3dd196a4f5abb6746aedbe1ada6bbc7f4e18d6c6d626dc5c8aca2a9f705f7",
},
["0.13.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.0.tar.gz",
Expand Down Expand Up @@ -184,6 +191,13 @@ package = {
},
},
macosx = {
["0.13.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.13.1/openkal-windows-0.13.1.tar.gz",
},
sha256 = "8bc3dd196a4f5abb6746aedbe1ada6bbc7f4e18d6c6d626dc5c8aca2a9f705f7",
},
["0.13.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.0.tar.gz",
Expand Down Expand Up @@ -347,6 +361,13 @@ package = {
},
},
windows = {
["0.13.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal-windows/releases/download/0.13.1/openkal-windows-0.13.1.tar.gz",
},
sha256 = "8bc3dd196a4f5abb6746aedbe1ada6bbc7f4e18d6c6d626dc5c8aca2a9f705f7",
},
["0.13.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal-windows/archive/refs/tags/0.13.0.tar.gz",
Expand Down
21 changes: 21 additions & 0 deletions pkgs/o/openkal.lua
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,13 @@ package = {

xpm = {
linux = {
["0.17.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.17.1/openkal-0.17.1.tar.gz",
},
sha256 = "778b123192ab0acf73a5ab71cea9b4eba33a23f92d97a83700907c77a9b5213c",
},
["0.17.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.0.tar.gz",
Expand Down Expand Up @@ -136,6 +143,13 @@ package = {
},
},
macosx = {
["0.17.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.17.1/openkal-0.17.1.tar.gz",
},
sha256 = "778b123192ab0acf73a5ab71cea9b4eba33a23f92d97a83700907c77a9b5213c",
},
["0.17.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.0.tar.gz",
Expand Down Expand Up @@ -250,6 +264,13 @@ package = {
},
},
windows = {
["0.17.1"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.1.tar.gz",
CN = "https://gitcode.com/mcpp-res/openkal/releases/download/0.17.1/openkal-0.17.1.tar.gz",
},
sha256 = "778b123192ab0acf73a5ab71cea9b4eba33a23f92d97a83700907c77a9b5213c",
},
["0.17.0"] = {
url = {
GLOBAL = "https://github.com/mcpplibs/openkal/archive/refs/tags/0.17.0.tar.gz",
Expand Down
8 changes: 4 additions & 4 deletions tests/examples/openkal/mcpp.toml
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@ name = "openkal-tests"
version = "0.1.0"

[dependencies.mcpplibs]
openkal = "0.17.0"
openkal = "0.17.1"

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

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

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

[target.'cfg(all(os = "linux", env = "musl"))'.dependencies.mcpplibs]
openkal-llvm-runtime = "0.16.0"
Expand Down
17 changes: 16 additions & 1 deletion tests/examples/openkal/tests/kal.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
// relies on: a context started with a least stack size is told at least that
// size and has the room; a closed directory's enumeration is refused; and
// (0.17) the system is named, this program names itself with the moment it
// started, and a rename that does not replace refuses a name that is taken. The terminal is not observed here,
// started, and a rename that does not replace refuses a name that is taken;
// (0.17.1) a joined command line is refused where programs receive vectors.
// The terminal is not observed here,
// because a test run has none; the implementations observe it on a terminal
// they make.
#include <openkal/env.h>
Expand Down Expand Up @@ -41,6 +43,7 @@ void room(void* p) {

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

probe q{0, 0};
Expand Down Expand Up @@ -87,6 +90,18 @@ int main() {
kal_fs_remove(root, "okt.b", 5);
}

if ((kal_process_props() & KAL_PROCESS_PROP_ONE_STRING) == 0 && root.h) {
// Where a program receives a vector, a joined command line has no
// meaning and the start is refused before anything runs.
const char* argv[] = { "x" };
const kal_uintptr lens[] = { 1 };
const kal_spawn how{ root, root, nullptr, nullptr, 0, KAL_SPAWN_ONE_STRING };
kal_process p{};
check(kal_process_spawn(&how, "x", 1, argv, lens, 1, nullptr, nullptr, 0, nullptr, &p)
== kal_err_not_supported,
"a joined command line is refused where programs receive vectors");
}

if (failures == 0) kal_stream_write(kal_stdout(), "openkal: held\n", 14);
return failures == 0 ? 0 : 1;
}
Loading