在推出两个 Alpha 版本之后,OCaml 5.0.0 发布了首个 Beta 测试版。目前标准库已达到稳定状态,离正式版的发布越来越近。与上一个 alpha 相比,首个 Beta 版本包含许多小型的内部 runtime 修复补丁,尤其是在 systhreads 库中。
在用户层面,Domain 和 Effect 模块的接口已经被调整为更加向前兼容:
- 与 effects 相关的异常现在在 Effecŧ 模块中进行定义
Domain.recommended_domain_count
值不再是常量,Domain.at_each_spawn
函数已被删除
标准库变更:
-
#11309,#11424,#11427, +#11545: 添加 Domain.recommended_domain_count.
-
#11423: 将 effect exceptions 移动到 Effect module
-
#11593: 移除 Domain.at_each_spawn
根据此前的报道,由于 OCaml 5.0 完全重写了 OCaml 运行时,其本身预计将是一个比平时更具实验性的版本。值得注意的是,原生编译器将仅在此 5.0 版本的 ARM64 和 x86-64 架构上可用。
此版本还有一个值得关注的特性:Multicore OCaml。它通过 domain 增加了对并行共享内存的支持,并通过 effect handler(无语法支持)增加了对并发 (direct-style concurrency) 的支持。Multicore OCaml 还打算向后兼容 —— 包括语言特性、C API 以及单线程代码的性能方面。
详情查看发布公告。
延伸阅读
- Multicore OCaml 被合并进上游