独立仓库的边界
本仓库从原 interview worktree 的 spine/ 抽取,来源提交为 87da0837。新仓库不继承旧 Git 历史,不 import 旧 runtime;首次抽取时仅 CLI 的 Go import 和默认文件路径为独立布局调整;阶段 2 的新实现继续在本仓库开发。原 MIT LICENSE 保留。
当前 Go module 名为 pysolate-spine,是本地模块名,不代表已经创建同名 GitHub 仓库。尚无 remote,也没有发布 artifact。
当前可运行文件
dist/spine.wasm 现为阶段 3 Guest:在 构建机器 重新链接 C bridge,打包 bootstrap.py、plm.py、prefix.py 与 CPython 3.14 标准库,再由重建脚本取回本机。ordinary/PLM/prefix 的验证均使用实际 Wasm。不是阶段 1 的旧文件,也不是重新从零编译 CPython。
这里不建立 hash/receipt 管线。重建来源是下面的独立 Linux 工作目录与本仓库构建脚本;测试会检查真实 Guest 转换,而不是只凭函数名声称支持。
dist/ 被 Git 忽略。新 clone 缺少 Wasm 时测试明确失败,需要构建或从可信的本机/构建机器取回;当前未提供公共下载服务。
构建输入布局
build-guest.sh 要求 Linux x86_64。SPINE_BUILD_INPUTS 指向包含以下内容的目录:
tools/
wasi-sdk/ clang、sysroot 和链接工具
wasi-vfs-lib/ libwasi_vfs.a
wasi-vfs-cli/ wasi-vfs 打包器
wasm-tools/ Wasm validator
cpython/
Include/ CPython C API 头文件
Lib/ 标准库源码
cross-build/wasm32-wasip1/
pyconfig.h
libpython3.14.a
Modules/_decimal/libmpdec/libmpdec.a
Modules/_hacl/*.a
Modules/expat/libexpat.a
这是复用已构建 CPython 的链接/打包入口,不是从零构建 CPython 的下载器。迁移没有把大型工具链塞进新仓库,也没有更改旧论文 artifact 或共享 layer。
首次构建的输入来自已有 CPython/WASI cache layer;复制到专用目录后使用。它含有上述头文件、静态库、标准库和工具;并不依赖旧 Go runtime 源码。若未来需要空机器从零重建,再单独补工具链获取流程,不把它伪装成现在已验证的功能。
构建入口
在具备工具链的 Linux x86_64 目录运行:
SPINE_BUILD_INPUTS=/path/to/extracted-build-inputs bash build-guest.sh
具体机器地址、SSH 配置和本机路径不随文档站发布。源码仓库中的远程构建辅助脚本只用于本机操作。
许可
源码沿用 MIT。生成 Wasm 中的 CPython、其支持库及 wasi-vfs 各自仍有第三方许可;Go 依赖也保留自己的许可。本次仅本机开发、未发布打包产物。如果以后分发 Wasm,需要随构建输入核对并携带第三方许可文本,不把本仓库的 MIT 声明当作替代。