跳到主要内容

稳定性与分发

1.x 版本约定​

API 参考 中列出的接口、已文档化的默认值及行为构成 Morrow 1.x 的源码兼容约定。新增能力通过次版本发布,修复通过补丁版本发布;有意破坏这一约定的变更需要主版本升级和迁移说明。下划线开头的辅助方法及未文档化的内部状态不属于这一约定。

日期采用前推格里高利历,年份范围为 1–9999,精度为微秒。默认使用 UTC,无时区值需要显式创建。非法日期字段、不支持的时区或语言输入会报错,不表示闰秒。重复/不存在的本地时间、日历偏移与实际时长的区别见时区,时间戳单位规则见解析。

语言支持英文、简体中文及繁体中文。通用自然语言解析、任意正则表达式和 Windows 分发不在支持范围内。

时区规则来自安装的 ICU 数据。规则更新可能改变历史或未来偏移,而无需改变 Morrow API。如果要求不同机器采用完全相同的规则,应使用相同版本的 ICU 数据。

编译器与平台​

平台Mojo 版本
Linux x86-641.0.0、1.1.0
Linux ARM641.0.0、1.1.0
macOS ARM641.0.0、1.1.0

预编译 .mojoc 文件与编译器及目标平台绑定。源码兼容不等于不同 Mojo 版本的二进制兼容,请下载同时匹配两者的发布包。新编译器经过验证并提供对应制品后才进入支持范围。

命名时区和本地时区需要 ICU。macOS 自带;Debian/Ubuntu 可安装 libicu-dev,Conda 包声明了运行时依赖。UTC 和固定偏移计算不需要 ICU。

发布验证​

每次发布提供六个压缩包及 SHA256SUMS。上传之前,每份压缩包都在对应平台解压,并在源码目录之外运行消费者测试,检查构造、解析、格式化、时长运算、DST 重复时间、本地化、惰性迭代及预期错误。

sha256sum --check SHA256SUMS
# macOS:
shasum -a 256 --check SHA256SUMS

以上校验命令需要目录中存在清单里的全部压缩包。只下载一份时,计算其哈希并与 SHA256SUMS 中对应文件名的条目比较。

本地开发可执行:

make test-package
python3 tools/check_package.py path/to/archive.tar.gz --mojo /absolute/path/to/mojo
make benchmark

test-package 构建库后运行同一套隔离消费者检查。使用 .venv 之外的编译器时,需要同时覆盖 MOJO 和 MOJO_BIN。基准对 UTC 偏移、ISO 往返、IANA 转换和惰性区间各输出五组样本,计时不包含编译过程,并输出校验值以保留计算结果。请在相同机器和编译器下比较中位数;耗时仅供参考,不设置跨机器 CI 阈值。

测试范围与工具限制见测试。