From 8d64af80c3807aec9a51efc328f04d7df589854a Mon Sep 17 00:00:00 2001 From: "peng.li24" <734991033@qq.com> Date: Sat, 12 Sep 2026 19:56:57 +0800 Subject: [PATCH 1/2] =?UTF-8?q?release:=20=E5=A4=B4=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=85=A8=E9=83=A8=E7=BA=B3=E5=85=A5=EF=BC=88=E8=87=AA=E5=B7=B1?= =?UTF-8?q?=E7=9A=84=20+=20=E5=85=A8=E9=83=A8=E4=BE=9D=E8=B5=96=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原 tarball 的 include/ 只有 kvlang_runtime.h / kvlang_vthread.h,消费者 编译扩展所需的 kvspace.h(及 blockmalloc / slotsboxmalloc 头)缺失。 - 自己的头归入 include/kvlang/(对齐 /usr/include/kvlang 安装位置) - 依赖头随 .so 一并带上:include/kvspace/、include/blockmalloc/、 include/slotsboxmalloc/ - linux / macos 两 job 同步 Co-Authored-By: Claude Code --- .github/workflows/release.yml | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0a0a7d3..1e5a7b3 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,8 +24,10 @@ jobs: set -euo pipefail v="${GITHUB_REF_NAME}" d="kvlang-abi-$v-linux-x86_64" - mkdir -p "$d/include" "$d/lib/kvspace" - cp runtime/include/*.h "$d/include/" + mkdir -p "$d/include/kvlang" "$d/lib/kvspace" + cp runtime/include/*.h "$d/include/kvlang/" + # 自带全部 ABI 依赖的头 → 解包即 /usr/include 布局(扩展编译需要 kvspace.h 等) + cp -r /usr/include/kvspace /usr/include/blockmalloc /usr/include/slotsboxmalloc "$d/include/" cp bin/libkvlang_runtime.so "$d/lib/" cp layout/target/release/libkvlanglayout.so "$d/lib/" # 自带全部 ABI 依赖 → 解包即 /usr/lib + /usr/lib/kvspace 布局 @@ -70,8 +72,10 @@ jobs: set -euo pipefail v="${GITHUB_REF_NAME}" d="kvlang-abi-$v-darwin-arm64" - mkdir -p "$d/include" "$d/lib/kvspace" - cp runtime/include/*.h "$d/include/" + mkdir -p "$d/include/kvlang" "$d/lib/kvspace" + cp runtime/include/*.h "$d/include/kvlang/" + # 自带全部 ABI 依赖的头 → 解包即 /usr/local/include 布局 + cp -r /usr/local/include/kvspace /usr/local/include/blockmalloc /usr/local/include/slotsboxmalloc "$d/include/" cp bin/libkvlang_runtime.dylib "$d/lib/" cp layout/target/release/libkvlanglayout.dylib "$d/lib/" # 自带全部 ABI 依赖 → 解包即 /usr/local/lib + /usr/local/lib/kvspace 布局 From 0c46f6d032169f89abae35d9d960f96e648c3ad1 Mon Sep 17 00:00:00 2001 From: "peng.li24" <734991033@qq.com> Date: Sat, 12 Sep 2026 19:59:50 +0800 Subject: [PATCH 2/2] =?UTF-8?q?release(macos):=20=E5=8A=A0=E5=90=8E?= =?UTF-8?q?=E7=AB=AF=E8=A3=85=E8=BD=BD=E5=86=92=E7=83=9F=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit macOS 上 frontend 的 dlopen 曾因后端名(.so.1 vs .dylib)与默认目录 (/usr/lib/kvspace vs /usr/local/lib/kvspace)不匹配而必然失败。依赖链 就地已构建,补一步真实 connect 断言,防止回归。 Co-Authored-By: Claude Code --- .github/workflows/release.yml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 1e5a7b3..393fe91 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -67,6 +67,22 @@ jobs: cmake -S runtime -B build/runtime -DCMAKE_BUILD_TYPE=Release -DKVSPACE_LIB_DIR="$KVSPACE_LIB_DIR" cmake --build build/runtime --target kvlang_runtime -j cargo build --release --manifest-path layout/Cargo.toml + - name: 后端装载冒烟(frontend 的 dlopen 真能加载后端) + run: | + cat > /tmp/conn.c <<'EOF' + #include + #include + int main(void) { + void *shm = kvspaceConnect("shm:///tmp/ks_rel_macos"); + void *fs = kvspaceConnect("fs:///tmp/ks_rel_fs"); + printf("shm=%p fs=%p\n", shm, fs); + if (shm) kvspaceClose(shm); + if (fs) kvspaceClose(fs); + return (shm && fs) ? 0 : 1; + } + EOF + cc /tmp/conn.c -o /tmp/conn -I/usr/local/include -L/usr/local/lib/kvspace -lkvspace + DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib /tmp/conn - name: 打包 ABI 产物 run: | set -euo pipefail