Nim v2.0 正式发布,命令式编程语言


Nim v2.0 已正式发布,这是一门指令式、通用、多范式、静态类型、编译型的编程语言。

公告写道:

2.0 是 Nim 的一次进化,新版本的一项重要特性是将 ORC 内存管理作为默认设置,以及许多其他新功能和改进。

Nim 是一种适合各种用途的编程语言——但并不适合所有人。它专注于命令式编程范式,通过宏系统对其进行增强。其可定制的内存管理使其非常适合要求苛刻的领域,例如硬实时系统和通用系统编程。

Nim 2 主要新特性

  • 默认内存策略变更为:--mm:orc

具体示例查看:A cost model for Nim 或 Introduction to ARC/ORC in Nim。

  • 增强与 C++ 的互操作

Nim 2.0 通过新的虚拟编译指示和扩展构造函数编译指示将 C++ 互操作提升到了一个新的水平。

现在,开发者可以定义映射到 C++ 构造函数和虚拟方法的构造函数和虚拟过程,从而允许进一步自定义互操作性。此外还扩展了对 codeGenDecl pragma 的支持,以便它适用于类型。

  • 新的标准库模块 (standard library modules)

新版对著名的os模块进行了彻底修改。其部分功能可在引入Path抽象的新界面下使用。Pathdistinct string,它提高了处理路径、文件和目录时的类型安全性。

  • 增加可重载的枚举 (Overloadable enums)

可重载枚举已结束实验性阶段,使用示例:

type
E1 = enum
value1, value2
E2 = enum
value1, value2 = 4

const
Lookuptable = [
E1.value1: "1",
value2: "2"
]
  • Strict funcs(严格函数)

“strict funcs” 已达到稳定状态,在未来的版本中将会成为默认选项。

  • 用于对象的默认值

在对象声明字段中现在支持使用默认值:

type
Rational* = object
num: int = 0
den: int = 1

var r = Rational()
assert $r == "(num: 0, den: 1)"
  • 引入 Unicode 运算符

Nim 2 会默认启用--experimental:unicodeOperators:诸如的 Unicode 运算符支持被数学库使用。请注意,标准库不使用 Unicode 运算符。


相關推薦

2024-04-18

2024年4月16日,Nim 为两个分支发布了新版本:2.0.4 和 1.6.20 LTS。 2.0.4包含了与四个月前发布的Nim 2.0.2相比的23项提交,带来了错误修复和改进。 对于那些尚未切换到Nim v2.0的用户,Nim团队发布了Nim 1.6.x的第九个补丁版本。这是一

2022-05-06

Nim 1.6.6 版本已发布,这是针对 Nim 1.6 的第三个补丁版本,两个月努力的结果包含 55 次提交 。下面介绍一些较为重要的修复项: 修复了“std.streams 无法在 Windows 和 –cpu:amd64 上使用 TCC 编译器编译”(#16326) 修复“编译器版

2022-12-23

Nim 1 正式发布三年后,Nim 2 RC 终于来了。公告写道,Nim 2 的目标之一是让开发者编写兼容两个版本(Nim 1 和 2)的代码更容易。目前许多重要的软件包在 Nim 2 中已经可以正常使用。此外,Nim 2 还为创新特性添加了“开关”,可在

2023-10-24

文本编辑器,支持 Linux、Windows 和 macOS,内置支持 50 多种编程语言。 2005 年 10 月 19 日,Geany 发布首个版本 0.1。上周四刚好是 Geany 诞生 18 周年纪念日,官方发布了 2.0 正式版以表庆祝。 下载地址:https://www.geany.org/download/re

2023-04-26

F3D(发音为/fɛd/)是极速且简约的开源 3D 模型查看器。它支持多种文件格式,从数字内容到科学数据集(包括 glTF、STL、STEP、PLY、OBJ、FBX、Alembic),可以显示动画并支持缩略图,以及许多渲染和纹理选项,包括基于物理的实时

2023-09-12

开发者大会精彩演讲回顾 TIOBE 公布了 2023 年 9 月的编程语言排行榜。 上个月,Julia 历史上首次跻身 TIOBE 指数前 20 名。时至今日 Julia 再次出局,被 Kotlin 取代。TIOBE CEO Paul Jansen 认为,Kotlin 是另一种有前途的语言

2023-05-24

Lem 是一款专为 Common Lisp 编程语言而开发的编辑器,支持 Windows、Linux 和 macOS。 Lem 2.0 正式发布,带来了以下这些变化: SDL2 前端 这个版本的亮点是 SDL2 前端的实现。这个功能增加了对鼠标、图形功能和 Windows 的支持。 图形

2024-07-11

7 月 8 日,由 Vue 团队打造的下一代测试框架 Vitest 正式推出 2.0 版本! Vitest 于 2021 年 12 月推出,至今已经过去了两年多的时间,其发展速度可谓是非常迅速,目前在 npm 下载量已经达到了每周500w,并且还在呈现快速增长的趋势

2023-03-06

Git for Windows v2.40.0-rc1 现已发布。按照原先的规划,Git for Windows 将在下一个版本中放弃对 Windows 7 和 Windows 8 的支持;同时,Git for Windows 的 32 位版本的支持也即将结束。 此版本主要更新内容如下: New Features 随附 Git v

2023-11-08

docker pull heike07/backupserenit 此版本更新如下: V2.0 版本发布说明 新增功能: 新增判断当前环境是否为docker的逻辑和函数 新增backupserenity 控制主程序 实现docker容器化封装,运行 修复错误功能: 去除容器内crontab 定

2024-01-16

本次更新,主要解决了: 🍀 reuseport 引起的access log api 显示listen ip 端口重复的Bug; 🍀 njet启动后,直接访问prometheus 格式的metrics 地址出错; 🍀配置了stream map,多次reload 出现core 等问题。 🤞更多详情:https://gitee.com

2022-09-15

hash 库 path 库 文件系统操作(fs) 系统操作(os) 本次发布的版本,直接从 v2.0.3 跳到了 v3.0.0,跨度非常之大,它在性能、易用性、稳定性等方面均有全面的提升。 性能优化 内存分配器 v3.0 中实现了一个新的内存分配器(co/

2022-09-06

TIOBE 公布了 2022 年 9 月的编程语言排行榜。 Julia 编程语言离榜单前 20 名的位置仅差 0.05%,它是一种为数值分析和计算科学设计的语言。在该领域有许多相互竞争的语言,那么是什么让 Julia 脱颖而出呢? TIOBE 方面指出,

2024-07-10

TIOBE 公布了 2024 年 7 月的编程语言排行榜。 上月还在 TIOBE 指数中排名第 17 位的 Rust,本月已经成功跃升至第 13 位,这也是 Rust 排行的历史新高。 TIOBE CEO Paul Jansen 点评称,提升 4 个位置看似变化不大,但其实在过去