nature v0.4.0-beta 发布,静态编译强类型语言
nature v0.4.0-beta 已发布。
新增
- 编译时错误优化,显示文件名和行号,类型错误显示类型原始标识
- 运行时 error 提供堆栈追踪
- 多行注释
/****/
支持 - import 支持不带前缀的导入方式
import utils as *
- 小型测试用例parker
- 参数解构功能支持,示例
call(...vec)
- 泛型类型支持递归
type numbert = gen intergert|flotert
- 二元运算符
||``&&
支持 - 包管理 import dir 支持, 此时会自动查找 dir 下的 main.n
- 包管理 import xxx_temp 支持,能够定义 temp 文件与静态库进行交互
- nature struct 调整为与 C 语言同构,能够直接将 nature struct 传递给 c 语言
- 数据类型
arr<T,len>
支持,其在 stack 中进行分配,和 C 语言中T ident[len]
同构 - new 语法支持,nature struct 默认为 stack 分配,可以通过
ptr<person> p = new person
得到一个 heap 分配的 p - as 后的类型支持约束,如
var s = {} as {u8}
声明了一个 set 类型将会被约束为{u8}
类型,等同于{u8} s = {}
- 包管理支持声明 links 静态库链接 和 temps 模板声明
- 新增标准库字符串库
import strings
- 为了更好的和 C 语言进行交互,新增类型
cptr
和cptr<T>
- 增加内置语法关键字 sizeof 用来计算类型的 size,使用示例
int s = sizeof(person)
- 新增标准库 fmt/os/path/strings/time
- 新增模板文件(用于和 C 语言交互) builtin_temp(默认 import),dirent_temp, libc_temp, strings_temp, syscall_temp
调整
- type param 只能在全局进行定义
- 全局变量支持类型推导
- 删除 set 函数,通过 as 约束声明一个空的 set
- list 类型定义调整为 vec, 支持使用 vec 原始结构体声明并指定长度,示例
var terms = vec<u8>{len=12,cap=24}
- string 类型调整为与 vec 同构,支持通过
str[0]
的方式访问以及赋值,并支持 for in 遍历 - vec 类型方法 list.len() 调整为类型属性,list.len, 并支持类型方法 slice/concat 等类型函数
- for 迭代表达式错误与 break 和 continue 无法重复声明错误
- 泛型 type i = gen int|int64 基本类型一致时重复生成
- 寄存器分配时 interval_add_range 添加 range 错误
- set.contains() 计算 hash slot 错误
- struct 中定义 fn 异常
- 链接器 elf rela addend 计算异常,addend = next_inst_offset - current_inst_rel offset
- ssa rename 异常,部分线性 var def 未进行 rename
- if 多行表达式 parser 解析异常
- 自动 GC 触发时间异常,调整 GC 触发时间点为 user mode
- malloc 分配重复的内存区域时,由于没有清空该区域导致 GC 异常,malloc 分配区域主动进行清空处理
- import 优先级异常,local ident 可以覆盖 import ident
- 修复 gcc11 下全局变量重复定义错误 #16
详细更新内容见发行说明。
nature 是一款静态编译强类型语言,具有以下特征:
- null 安全、泛型和联合类型的类型系统
- 静态交叉编译,允许为目标机器生成可执行文件,无需依赖任何第三方组件
- 带有增量垃圾回收的支持,支持自动垃圾回收(手动垃圾回收仍在设计中)
- 内置数据结构,如列表、映射、集合和元组
- 包和模块管理
- 函数标签(正在设计中)、闭包、错误处理和协程
- SSA、线性扫描寄存器分配、反射机制、汇编器和链接器
代码示例
- 错误处理
- 泛型

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
pgAdmin 4 v7.7 发布,PostgreSQL 开源图形化管理工具
pgAdmin 是 PostgreSQL 领先的开源图形化管理工具。pgAdmin 4 旨在满足新手和有经验的 Postgres 用户的需求,提供强大的图形界面,简化了数据库对象的创建、维护和使用。 pgAdmin 开发团队日前发布了 pgAdmin 4 v7.7 版本,这个版本包括 14 个错误修复和新功能: Features: 添加了对在“Backup”对话框中选择/取消选择对象的支持。 在订阅对话框中添加了“WITH”子句的所有新选项。 在创建表时添加了 USING method。 在创建列时添加了 compression method选项。 在创建数据库时添加了 Strategy、Locale Provider、ICU Locale、ICU Rules 和 OID 选项。 创建物化视图时添加了 USING 方法。 添加对 OAuth 2 身份验证的附加 ID 令牌声明检查的支持。 Bugs/Housekeeping: 在 Columns 集合节点的属性选项卡中添加了“data type”列。 修复未配置 SMTP 时用户无法更改密码的问题。 确保用户在登录失败后重定向到登录页面...
- 下一篇
无鱼 v0.7 已经发布,项目工时系统
无鱼 v0.7 已经发布,项目工时系统 此版本更新内容包括: 详细内容 1、新增了我的项目的功能。 2、修复了项目月报筛选项可清空问题 3、修复了项目月报中由看不到某些特殊项目的情况。 4、增加了我的统计模块 用于查看自己的填报率。 5、增加了部门统计模块,用于查看部门人员的填报率 6、修复了部分模块的权限问题。 7、修复了填报工时时可填报负值的问题 8、修复了员工填报加入时间之前的填报问题。 截图 使用方法 新搭建建议使用compose方式部署。 老版本需要替换后台程序、前端程序和更新数据库补丁。 部署链接:http://www.wuyu-soft.com/doc/cost/wycost-install-docker-compose/ 更新方法:http://www.wuyu-soft.com/doc/cost/wycost-patch/ 详情查看:https://gitee.com/wy-soft/wyproject/releases/v0.7
相关文章
文章评论
共有0条评论来说两句吧...