From bda61482f68054d2aea215926d0cb4f48efa267a Mon Sep 17 00:00:00 2001 From: Sunrisepeak Date: Thu, 29 Oct 2026 01:35:55 +0900 Subject: [PATCH] mcpplibs.os 0.2.2: Emscripten (wasm32-emscripten) --- CHANGELOG.md | 6 ++++++ pkgs/o/os.lua | 24 ++++++++++++++++++++++++ tests/examples/os/mcpp.toml | 2 +- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 59312ddb..2000bc6d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,12 @@ ### Added +- **mcpplibs.os 0.2.2。** 新增 `wasm32-emscripten` 目标:基于 Emscripten 的 C 库与 openkal-emscripten 0.6.0 的 wasm + 模块,在 node 或页面中运行;新增 `platform::emscripten`、`architecture::wasm32` 与 `is_emscripten`,不定义平台模块。 + openkal-emscripten 没有 `openkal.process`,启动程序的调用在链接时失败并给出 openkal 符号名;`interrupt` 报告不会收到 + 结束请求。修正(所有目标):`fs::read` 不再经栈上 64 KiB 数组读取(它占满了 wasm 模块的默认栈);`stamp_of` 与 + `identity_of` 同时请求节点种类,不再把已有文件报告为不存在。GLOBAL 为 GitHub 标签归档,CN 为 GitCode `mcpp-res/os` + 镜像,sha256 一致。测试成员 `os` 移到 0.2.2。 - **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` 中 diff --git a/pkgs/o/os.lua b/pkgs/o/os.lua index 94ef04a5..80238ce0 100644 --- a/pkgs/o/os.lua +++ b/pkgs/o/os.lua @@ -10,6 +10,9 @@ -- C library, C++ run-time and loader are its platform's (openkal-platform, -- which mcpp 2026.10.27.1 selects for `-openkal'), and the package -- declares none of them. +-- From 0.2.2 it builds for `wasm32-emscripten' over Emscripten's C library and +-- openkal-emscripten 0.6.0, which its manifest names for that target; starting +-- a program there fails at link, naming the openkal symbol. package = { spec = "1", namespace = "mcpplibs", @@ -28,6 +31,13 @@ package = { xpm = { linux = { + ["0.2.2"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.2.tar.gz", + CN = "https://gitcode.com/mcpp-res/os/releases/download/0.2.2/os-0.2.2.tar.gz", + }, + sha256 = "33c5d946c29de1ba7bacabe40fe6ee2f60bea0b25e62c0359f8c570b0f654e3e", + }, ["0.2.1"] = { url = { GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.1.tar.gz", @@ -56,6 +66,13 @@ package = { }, }, macosx = { + ["0.2.2"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.2.tar.gz", + CN = "https://gitcode.com/mcpp-res/os/releases/download/0.2.2/os-0.2.2.tar.gz", + }, + sha256 = "33c5d946c29de1ba7bacabe40fe6ee2f60bea0b25e62c0359f8c570b0f654e3e", + }, ["0.2.1"] = { url = { GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.1.tar.gz", @@ -84,6 +101,13 @@ package = { }, }, windows = { + ["0.2.2"] = { + url = { + GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.2.tar.gz", + CN = "https://gitcode.com/mcpp-res/os/releases/download/0.2.2/os-0.2.2.tar.gz", + }, + sha256 = "33c5d946c29de1ba7bacabe40fe6ee2f60bea0b25e62c0359f8c570b0f654e3e", + }, ["0.2.1"] = { url = { GLOBAL = "https://github.com/mcpplibs/os/archive/refs/tags/0.2.1.tar.gz", diff --git a/tests/examples/os/mcpp.toml b/tests/examples/os/mcpp.toml index b51b574f..009a9455 100644 --- a/tests/examples/os/mcpp.toml +++ b/tests/examples/os/mcpp.toml @@ -7,7 +7,7 @@ name = "os-tests" version = "0.1.0" [dependencies.mcpplibs] -os = "0.2.1" +os = "0.2.2" [indices] mcpplibs = { path = "../../.." }