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 更名为
anyptr
,raw_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