Repository navigation
Releases: mio-kobo/mio
Release list
Mio v2.0.0
Mio v2.0.0 发布说明
V2 的核心成果是 M18 纯 Mio Mochi→Native AOT 原生自托管,提供在 Apple Silicon 上验证的语言工具链、Mochi VM 与原生执行路径。发行前审核状态见同目录 v2.0.0-readiness.md;版本由 Tag-driven CI 重建、验收并发布,流程见 CI_RELEASE_WORKFLOW.md。
相对 v1 Beta 的主要变化
v1 纯 Mio 源码编译器生成 Mochi,并由 Go VM 执行。V2 在此基础上新增 ARM64 lowering、编码和 Mach-O writer,以及独立原生运行时:精确 Mark-Sweep GC、Shadow Frame、typed Storage、mmap 有界 managed arena、文件 syscall bridge。已验证数组(含 nullable)、结构体、枚举、闭包共享 Cell、多参数 ABI、GC 后存活对象和大对象读写;具体边界以源码检查和自动化回归为准。
Mochi 当前最高格式 v14,解码器仍回归 v1–v14。Go 前端可能为简单程序选择更低兼容版本;纯 Mio自举入口使用 v14。mio build 输出 Mochi,mio exec 用 Go VM 执行;mochi-aot 和纯 Mio native-aot 将受支持的 Mochi 编译为 Mach-O。不要把两种执行方式的覆盖面混为一谈。
M18 证据与 Go 边界
Go 源码前端 → native-aot.mochi
Go AOT → Seed(正式链唯一一次 Go AOT)
Seed → Native Stage 1 → 2 → 3 → 4 → 5
Seed 和 Stage 1–4 真正执行并生成下一代;Stage 5 生成、解析和签名验证通过,正式链不计为已执行。Stage 1–5 未签名 Mach-O 完整字节一致;Stage 2/3/4 是验收固定点。原生编译阶段禁止启动其他程序,不依赖外部代码生成器。正式托管堆协议为 1 GiB;256 MiB 自编译见证发生 GC 后仍生成固定点。128 MiB OOM 是历史压力诊断,不是正式协议失败。来源和本次新日志见就绪报告及 M18 技术记录。
M18 没有自动替换整个 .mio 源码前端。发行包中 mio(前端、VM、LSP)、mochi-aot(独立 Go AOT 对照)、mochi-aot-audit 为 Go 构建的自包含可执行程序,内部有 Go runtime,但使用者无需安装 Go。native-aot 来自本轮纯 Mio Stage 4,无 Go runtime;其输入仍是 Mochi。从源码重建 Go 工具和首次 Seed 需要 Go;验证调度脚本还需 Python 3、codesign、sandbox-exec,GC 见证需 LLDB。
安装与第一段程序
仅验证 macOS Apple Silicon ARM64,本次主机 macOS 15.6。下载步骤在正式发布后才可执行;准备阶段使用本地候选包。先检查维护者提供的 SHA256SUMS,然后依照 README 解压到新目录、设置 PATH 与 MIO_BUNKO,保留完整包目录。
chant("Hello, Mio!");
mio --version
mio check hello.mio
mio run hello.mio
mio build -o hello.mochi hello.mio
mio exec hello.mochi
mochi-aot -o hello-native hello.mochi
codesign --force --sign - hello-native
codesign --verify --strict hello-native
./hello-native纯 Mio 原生 AOT 目前使用工作目录中的两个配置文件,路径为 UTF-8,不带末尾换行:
# MIO_HOME 是已解压的完整安装目录;当前目录可在任意项目内。
printf '%s' "$PWD/hello.mochi" > input.config
printf '%s' "$PWD/hello-pure-native" > output.config
"$MIO_HOME/native-aot"
# 必须同时确认输出以 native-aot: ok 开始,且目标文件是本次新生成。
chmod +x hello-pure-native
codesign --force --sign - hello-pure-native
codesign --verify --strict hello-pure-native
./hello-pure-nativenative-aot 的失败分支可能仍返回 OS exit 0,自动化不能仅凭退出码认定成功;应使用全新目标路径,同时校验成功标记和产物。它是当前低层编译入口,不具备通用 argv 选项处理;NativeFS 输出是数据文件,须显式 chmod +x。mochi-aot 提供常规命令行错误退出码和可调堆参数;其默认 1 MiB 是用户程序默认值,不能用于替代正式 1 GiB 自举协议。
兼容性与限制
- 不新增刻意的 V1 语法破坏,但尚未认证全部 V1 用户应用的无修改升级。升级后重新构建 Mochi 并执行应用测试;不承诺编译器内部 ABI、原生布局和内部 Bunko AOT API 稳定。
- VM 支持的 Map、任意 MMA、任意多态函数值及一般 argv 不能自动视为 Native 支持;不支持的 lowering 应由编译诊断拒绝。Native 子集限制详见 平台和依赖。
- 历史 beta 的 Linux / Windows 发布脚本或 Go 可移植性,不构成 V2 的正式支持认证;Intel Mac 未验收。
- 当前候选包采用 ad-hoc 签名。strict codesign 通过不表示 Developer ID 或 notarization;尚未测试从互联网下载后的 Gatekeeper 首次安装体验。
- 精确 GC 已实现;M19 分代 GC 未启动,High/Balanced/Low 三档未实现。不声明性能提升倍数。
- IDE 插件独立发行。本次核查 JetBrains 0.6.1 与 VS Code 0.3.0 源码和内置 LSP 协议测试,未完成 IDE 中的 V2 端到端认证。
构建候选包
在完整源码 macOS ARM64 工作树中(输出目录必须不存在):
bash scripts/build-release.sh --output build/v2.0.0-rc-new
# 默认先重新执行正式 M18 + GC 见证,再构建、签名、打包和隔离安装测试。
# 亦可显式复用本次新验收目录,构建器会检查输入清单与产物摘要:
bash scripts/build-release.sh --output build/v2.0.0-rc-newer \
--m18-evidence build/v2.0.0-preparation/m18包根目录保留原有 mio 布局,并增加三个 AOT 工具、native-aot.mochi、Bunko、examples、docs、LICENSE、Go 许可、BUILD-INFO.json 和逐文件 MANIFEST.json。源码清单、dirty diff、命令日志、SHA256SUMS 与安装报告保存在包旁。最终就绪报告独立保存,避免将包含归档摘要的报告打入归档形成自引用。仓库提交之外的 M18 文件必须一并审查;不可只用 HEAD 复现 dirty 候选包。
Mio v2.0.0-rc.2
Mio v2.0.0 发布说明
V2 的核心成果是 M18 纯 Mio Mochi→Native AOT 原生自托管,提供在 Apple Silicon 上验证的语言工具链、Mochi VM 与原生执行路径。发行前审核状态见同目录 v2.0.0-readiness.md;版本由 Tag-driven CI 重建、验收并发布,流程见 CI_RELEASE_WORKFLOW.md。
相对 v1 Beta 的主要变化
v1 纯 Mio 源码编译器生成 Mochi,并由 Go VM 执行。V2 在此基础上新增 ARM64 lowering、编码和 Mach-O writer,以及独立原生运行时:精确 Mark-Sweep GC、Shadow Frame、typed Storage、mmap 有界 managed arena、文件 syscall bridge。已验证数组(含 nullable)、结构体、枚举、闭包共享 Cell、多参数 ABI、GC 后存活对象和大对象读写;具体边界以源码检查和自动化回归为准。
Mochi 当前最高格式 v14,解码器仍回归 v1–v14。Go 前端可能为简单程序选择更低兼容版本;纯 Mio自举入口使用 v14。mio build 输出 Mochi,mio exec 用 Go VM 执行;mochi-aot 和纯 Mio native-aot 将受支持的 Mochi 编译为 Mach-O。不要把两种执行方式的覆盖面混为一谈。
M18 证据与 Go 边界
Go 源码前端 → native-aot.mochi
Go AOT → Seed(正式链唯一一次 Go AOT)
Seed → Native Stage 1 → 2 → 3 → 4 → 5
Seed 和 Stage 1–4 真正执行并生成下一代;Stage 5 生成、解析和签名验证通过,正式链不计为已执行。Stage 1–5 未签名 Mach-O 完整字节一致;Stage 2/3/4 是验收固定点。原生编译阶段禁止启动其他程序,不依赖外部代码生成器。正式托管堆协议为 1 GiB;256 MiB 自编译见证发生 GC 后仍生成固定点。128 MiB OOM 是历史压力诊断,不是正式协议失败。来源和本次新日志见就绪报告及 M18 技术记录。
M18 没有自动替换整个 .mio 源码前端。发行包中 mio(前端、VM、LSP)、mochi-aot(独立 Go AOT 对照)、mochi-aot-audit 为 Go 构建的自包含可执行程序,内部有 Go runtime,但使用者无需安装 Go。native-aot 来自本轮纯 Mio Stage 4,无 Go runtime;其输入仍是 Mochi。从源码重建 Go 工具和首次 Seed 需要 Go;验证调度脚本还需 Python 3、codesign、sandbox-exec,GC 见证需 LLDB。
安装与第一段程序
仅验证 macOS Apple Silicon ARM64,本次主机 macOS 15.6。下载步骤在正式发布后才可执行;准备阶段使用本地候选包。先检查维护者提供的 SHA256SUMS,然后依照 README 解压到新目录、设置 PATH 与 MIO_BUNKO,保留完整包目录。
chant("Hello, Mio!");
mio --version
mio check hello.mio
mio run hello.mio
mio build -o hello.mochi hello.mio
mio exec hello.mochi
mochi-aot -o hello-native hello.mochi
codesign --force --sign - hello-native
codesign --verify --strict hello-native
./hello-native纯 Mio 原生 AOT 目前使用工作目录中的两个配置文件,路径为 UTF-8,不带末尾换行:
# MIO_HOME 是已解压的完整安装目录;当前目录可在任意项目内。
printf '%s' "$PWD/hello.mochi" > input.config
printf '%s' "$PWD/hello-pure-native" > output.config
"$MIO_HOME/native-aot"
# 必须同时确认输出以 native-aot: ok 开始,且目标文件是本次新生成。
chmod +x hello-pure-native
codesign --force --sign - hello-pure-native
codesign --verify --strict hello-pure-native
./hello-pure-nativenative-aot 的失败分支可能仍返回 OS exit 0,自动化不能仅凭退出码认定成功;应使用全新目标路径,同时校验成功标记和产物。它是当前低层编译入口,不具备通用 argv 选项处理;NativeFS 输出是数据文件,须显式 chmod +x。mochi-aot 提供常规命令行错误退出码和可调堆参数;其默认 1 MiB 是用户程序默认值,不能用于替代正式 1 GiB 自举协议。
兼容性与限制
- 不新增刻意的 V1 语法破坏,但尚未认证全部 V1 用户应用的无修改升级。升级后重新构建 Mochi 并执行应用测试;不承诺编译器内部 ABI、原生布局和内部 Bunko AOT API 稳定。
- VM 支持的 Map、任意 MMA、任意多态函数值及一般 argv 不能自动视为 Native 支持;不支持的 lowering 应由编译诊断拒绝。Native 子集限制详见 平台和依赖。
- 历史 beta 的 Linux / Windows 发布脚本或 Go 可移植性,不构成 V2 的正式支持认证;Intel Mac 未验收。
- 当前候选包采用 ad-hoc 签名。strict codesign 通过不表示 Developer ID 或 notarization;尚未测试从互联网下载后的 Gatekeeper 首次安装体验。
- 精确 GC 已实现;M19 分代 GC 未启动,High/Balanced/Low 三档未实现。不声明性能提升倍数。
- IDE 插件独立发行。本次核查 JetBrains 0.6.1 与 VS Code 0.3.0 源码和内置 LSP 协议测试,未完成 IDE 中的 V2 端到端认证。
构建候选包
在完整源码 macOS ARM64 工作树中(输出目录必须不存在):
bash scripts/build-release.sh --output build/v2.0.0-rc-new
# 默认先重新执行正式 M18 + GC 见证,再构建、签名、打包和隔离安装测试。
# 亦可显式复用本次新验收目录,构建器会检查输入清单与产物摘要:
bash scripts/build-release.sh --output build/v2.0.0-rc-newer \
--m18-evidence build/v2.0.0-preparation/m18包根目录保留原有 mio 布局,并增加三个 AOT 工具、native-aot.mochi、Bunko、examples、docs、LICENSE、Go 许可、BUILD-INFO.json 和逐文件 MANIFEST.json。源码清单、dirty diff、命令日志、SHA256SUMS 与安装报告保存在包旁。最终就绪报告独立保存,避免将包含归档摘要的报告打入归档形成自引用。仓库提交之外的 M18 文件必须一并审查;不可只用 HEAD 复现 dirty 候选包。
v1.0.0
Full Changelog: v1.0.0-beta.2...v1.0.0
v1.0.0-beta.2
Mio v1.0.0 Beta 1
Full Changelog: v0.1.0-alpha.1...v1.0.0-beta.1
JetBrains 插件
mio-language-support-0.6.1.zip包含新版插件图标与 README 展示图。- 插件源码提交:
835c7e2(发布标签后的资源更新)。 - 所有 SDK 与插件附件的 SHA-256 见
SHA256SUMS.txt。