diff --git a/CHANGELOG.md b/CHANGELOG.md index d2949315..59312ddb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,15 @@ ### Added +- **mcpplibs.openkal-emscripten 0.6.0。** 按 openkal 0.17.1 实现其提供的十二个接口,使依赖 openkal 0.17 的 + mcpplibs.os 能在 `wasm32-emscripten` 上解析与链接。`kal_env_image` 为 node 所给的脚本(页面中为 `kal_err_not_found`), + `kal_env_loader` 为 `kal_err_not_found`,`kal_env_system` 为 `emscripten`;`kal_fs_rename_flags` 中 + `KAL_RENAME_NO_REPLACE` 为 `kal_err_not_supported`(C 库没有不替换的原子改名),声明 `KAL_FS_PROP_REMOVE_OPEN` + (在 MEMFS 上测得);`kal_net_listen_at`/`kal_net_connect_at` 为 `kal_err_not_supported`。修正:C 库对其自身终端设备 + 即使在管道下也回答 `isatty` 为 1,现在由宿主(node 的 `tty.isatty`)判断标准流是否为终端,终端设置 + `KAL_TERM_SEQUENCES`。一致性(emsdk 6.0.9、node 26.7.0):终端下 109 成立、0 不成立、14 未观察;管道下 97、0、15。 + GLOBAL 为 GitHub 标签归档,CN 为 GitCode `mcpp-res/openkal-emscripten` 镜像,sha256 一致。测试成员 `openkal` 的 + wasm32 依赖移到 0.6.0。 - **mcpplibs.os 0.2.1。** 在程序自己的 C 库的两种安排下构建并通过测试:系统自己的 C 库,以及位于系统自身三元组上的 openkal-musl 与 openkal-llvm-runtime(mcpp docs/24)。机器、内存、卷的种类与两项交换在 Linux 与 macOS 上经内核调用 得到,Windows 上以 32 位 DWORD 与 UTF-16 WCHAR 声明 kernel32 的名字,均不经 C 库;标准输出的转向与 SIGPIPE 在进程 diff --git a/pkgs/o/openkal-emscripten.lua b/pkgs/o/openkal-emscripten.lua index bb0719b9..33b3e76e 100644 --- a/pkgs/o/openkal-emscripten.lua +++ b/pkgs/o/openkal-emscripten.lua @@ -32,8 +32,9 @@ -- 2026.9.12.2); a consumer that activates the feature without it is refused -- before anything compiles. -- --- Conformance, measured with emsdk 6.0.9 under node: 86 held, 0 did not hold, --- 13 not observed. +-- Conformance of 0.6.0 (openkal 0.17.1), measured with emsdk 6.0.9 under node +-- 26.7.0: 109 held, 0 did not hold, 14 not observed under a terminal; 97 held, +-- 0 did not hold, 15 not observed under a pipe. package = { spec = "1", namespace = "mcpplibs", @@ -45,6 +46,13 @@ package = { xpm = { linux = { + ["0.6.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal-emscripten/archive/refs/tags/0.6.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal-emscripten/releases/download/0.6.0/openkal-emscripten-0.6.0.tar.gz", + }, + sha256 = "607b404954d4940414ec80226d53e4aa94f1d19100947dc2b900c44f4b2a229f", + }, ["0.5.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal-emscripten/archive/refs/tags/0.5.0.tar.gz", @@ -96,6 +104,13 @@ package = { }, }, macosx = { + ["0.6.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal-emscripten/archive/refs/tags/0.6.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal-emscripten/releases/download/0.6.0/openkal-emscripten-0.6.0.tar.gz", + }, + sha256 = "607b404954d4940414ec80226d53e4aa94f1d19100947dc2b900c44f4b2a229f", + }, ["0.5.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal-emscripten/archive/refs/tags/0.5.0.tar.gz", @@ -147,6 +162,13 @@ package = { }, }, windows = { + ["0.6.0"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/openkal-emscripten/archive/refs/tags/0.6.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/openkal-emscripten/releases/download/0.6.0/openkal-emscripten-0.6.0.tar.gz", + }, + sha256 = "607b404954d4940414ec80226d53e4aa94f1d19100947dc2b900c44f4b2a229f", + }, ["0.5.0"] = { url = { GLOBAL = "https://github.com/mcpplibs/openkal-emscripten/archive/refs/tags/0.5.0.tar.gz", diff --git a/tests/examples/openkal/mcpp.toml b/tests/examples/openkal/mcpp.toml index 803c0e5c..fc847535 100644 --- a/tests/examples/openkal/mcpp.toml +++ b/tests/examples/openkal/mcpp.toml @@ -33,7 +33,7 @@ openkal-windows = "0.13.3" openkal-llvm-runtime = "0.16.6" [target.'cfg(arch = "wasm32")'.dependencies.mcpplibs] -openkal-emscripten = "0.5.0" +openkal-emscripten = "0.6.0" [target.'cfg(arch = "riscv64")'.dependencies.mcpplibs] openkal-opensbi = "0.8.3"