nature 0.5 发布,首个可用版本
2025-05-15

随着 0.5 版本的发布,nature 编程语言最初的设计目标已经完成,语法 API 基本稳定,在 1.0 版本之前不会有大幅的变化。

当前版本 nature 源码支持编译的目标平台有

  • linux/amd64
  • linux/arm64
  • darwin/amd64
  • darwin/arm64

nature 包含一组测试用例及标准库用来测试基本功能和语法的可用性,包含一组小型项目测试整体可用性,还未经过中大型的项目测试。

后续的核心工作是提升 nature 编程语言的可用性,包括标准库完善、性能优化、收集用户反馈以及 bug 修复。

安装包 https://github.com/nature-lang/nature/releases

相较于上一个版本的变化

  • 基于 hnes/libaco 实现 coroutine ,并基于 coroutine 重构 runtime
  • GC 进一步完善,并完全支持 coroutine
  • 基于 coroutine 的错误处理重构,语法支持 try + catch
  • 集成 libuv 处理网络 IO
  • 支持 type interface
  • 泛型重构并完善
  • 编译 os 支持 darwin
  • 编译 arch 支持 arm64
  • 通过 nature -h 查看帮助
  • 放弃抢占式调度,采用协作式调度(抢占式调度需要做出巨大的牺牲)
  • LIR 增加 safepoint 辅助协作式调度
  • method 定义方式重构,采用 fn extend 的模式
  • 数组类型声明方式调整,使用 [T;n]
  • cptr 更名为 anyptrraw_ptr<T> 更名为 rawptr<T>
  • channel 和 select 支持
  • match 语法支持
  • 标准库增加 http/fs/io/mem/process/unsafe/co.mutex/os.signal
  • strings 标准库基于 fn extend 重构
  • 使用 fn main 作为入口
  • 取消 template,增加 #linkid 函数标签自定义链接器标识
  • 使用 testar 文件进行用例测试
  • 添加内置宏,例如 @sizeof(T)
  • cmake 增加测试用例 test_runtime_debug,支持 runtime debug
  • 官网重构 及 playground 支持
  • lsp 支持 nature-lang/nls