编程语言 nature 0.5 发布,首个可用版本


nature 是一款静态编译强类型语言,具有以下特征:

  • null 安全、泛型和联合类型的类型系统
  • 静态交叉编译,允许为目标机器生成可执行文件,无需依赖任何第三方组件
  • 带有增量垃圾回收的支持,支持自动垃圾回收(手动垃圾回收仍在设计中)
  • 内置数据结构,如列表、映射、集合和元组
  • 包和模块管理
  • 函数标签(正在设计中)、闭包、错误处理和协程
  • SSA、线性扫描寄存器分配、反射机制、汇编器和链接器

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

相较于上一个版本的变化

  • 基于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

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

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

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

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

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


相關推薦

2023-12-30

LinkWeChat 是国内首个基于企业微信的开源 SCRM,在集成了企微强大的开放能力的基础上,进一步升级拓展灵活高效的客户运营能力及多元化精准营销能力,让客户与企业之间建立强链接,帮助企业提高客户运营效率,强化营销能

2022-08-03

多次刷新导致JS缓存 官方全新出品整合 Sfdp 6.0 Gadmin 5.0 发布 网址:https://gadmin8.com  相关链接 官方博客:http://www.cojz8.com/ 演示站点:http://sfdp.cojz8.com/  

2025-05-24

展的背景下,首个应用型 AI 翻译测评榜单 TransBench 正式发布。这一榜单由阿里国际 AI Business 团队、上海人工智能实验室和北京语言大学联合推出,旨在为行业提供标准化的翻译质量评估。 传统翻译评测不同,TransBench 引入了幻

2023-09-27

nature v0.4.0-beta 已发布。 新增 编译时错误优化,显示文件名和行号,类型错误显示类型原始标识 运行时 error 提供堆栈追踪 多行注释/****/支持 import 支持不带前缀的导入方式import utils as * 小型测试用例parker 参数解构功

2022-10-08

发型包仅 0.5 MB 的国产 Servlet 容器:smart-servlet v0.1.6 正式发布 🎉🎉🎉 3.1 Features 🌈 扩展插件功能,添加Servlet容器的注册监听。 隔离各Servlet容器应用间的缓存资源。 优化Servlet容器的退出策略。 运用多线程提升 HandlesT

2022-07-02

Wiki:https://gitee.com/pp/SmsForwarder/wikis/Home PS. 自 2022-06-09 发布 3.0 以来,经过几个小版本的迭代,目前已经趋于稳定,3.x 版本的7天活跃用户占比已攀升到 31.81%,想要升级的用户可以试试了 Q:升级到 3.x 发现很耗电,

2023-03-04

更新了什么 ShowDoc 是一个非常适合 IT 团队的在线 API 文档、技术文档工具,既有免费开源版,也有开箱可用的在线官网版。 本次版本 v3.1.0 主要新增了 AI 助手功能,集成了 chatGPT 的能力来辅助用户生成文档内容。 如何使用 AI

2025-05-13

MinIO-Plus v1.0.5 已经发布,MinIO 的二次封装与增强工具 此版本更新内容包括: 更新内容 缩略图为调用时懒加载,删除是否启用缩略图配置项。 删除无效import 工具类不可被实例化。 完整的更新日志: https://gitee.com/lxp1

2023-06-10

LLaMA 论文的 RedPajama 基础数据集(5 TB 大小),自 4 月份发布至今已被下载数千次,并被用来训练了 100 多个模型;以及一个在 5 月份就宣布训练完成的 RedPajama 3B,和刚宣布训练完成的 RedPajama 7B 大模型。 RedPajama-INCITE-7B-Base

2022-08-24

送消息的复杂数据流应用程序的工具。 目前 Karafka v2.0.5 发布了,此版本更新内容如下: 修复 Ruby on Rails 的 karafka.rb 模板中不必要的双换行符 修复手动暂停的分区在重新平衡后不会被处理的情况 (#988) 提高稳定性 在 Githu

2023-04-20

trurl 是用于 URL 解析和操作的命令行工具,也是 cURL 作者 Daniel Stenberg 开源不久的新项目。 自上一版本以来的变化: --get 也支持[括号]中的变量 --get {query-all:key} 输出查询中 'key' 的所有值 换成了 test.py 来进行测试 --iterate

2023-08-10

OpsPilot是WeOps团队开源的一个基于深度学习与LLM技术的AI运维领域领航员,让运维预案变得可交互,让本地运维知识变得可泛化、可推理 OpsPilot支持以ChatBot的形态与Web应用集成,主要提供以下能力: 运维能力沉淀:通过将运

2022-09-14

DuckDB 是一个高性能的分析数据库系统。它被设计为快速,可靠和易于使用。DuckDB 提供了丰富的 SQL 方言,支持远远超过基本 SQL。DuckDB 支持任意的和嵌套的相关子查询、复杂类型等。 注意:这个版本再次引入了一个向后不兼容

2023-07-25

com CXYGZL 文档地址:https://www.cxygzl.com CXYGZL V2.0.5 版本介绍 每个用户的属性在不同系统,不同平台是不同的。比如在租车系统,会有信用评级;在商城系统,会有评分、等级、积分属性;在保险平台,会有年龄属性、性