Nim 2.0 发布首个 RC,兼容 Nim 1


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

官方表示,Nim 2 基于和 Nim 1 相同的代码库,Nim 2 之于 Nim 1 是进化,而不是巨变。

Nim 2 主要新特性

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

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

  • 增加可重载的枚举 (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 运算符。

详情查看发布公告


相關推薦

2023-08-03

Nim v2.0 已正式发布,这是一门指令式、通用、多范式、静态类型、编译型的编程语言。 公告写道: 2.0 是 Nim 的一次进化,新版本的一项重要特性是将 ORC 内存管理作为默认设置,以及许多其他新功能和改进。 Nim 是一种适

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) 修复“编译器版

2023-10-24

,内置支持 50 多种编程语言。 2005 年 10 月 19 日,Geany 发布首个版本 0.1。上周四刚好是 Geany 诞生 18 周年纪念日,官方发布了 2.0 正式版以表庆祝。 下载地址:https://www.geany.org/download/releases/ Geany 2.0 主要变化: 重构会

2024-06-20

NumPy 2.0.0 现已发布,这是自 2006 年以来的第一个主要版本,是自上一个功能版本发布以来经过 11 个月开发的成果。该版本包含了来自 212 位贡献者提交的 1078 个 PR,引入了大量的新功能以及对 Python 和 C API 的更改。 此主要版本

2023-12-10

Wine 9.0-rc1 已发布,进入 RC 阶段意味着已开始冻结代码。 Wine (“Wine Is Not an Emulator” 的首字母缩写)是一个能够在多种 POSIX-compliant 操作系统(诸如 Linux,macOS 及 BSD 等)上运行 Windows 应用的兼容层。它不是像虚拟机或者模

2023-10-10

在于:该语言的定义在过去几年里没有太大变化,其完全兼容的直接竞争对手 Kotlin 却易于使用且免费。 TIOBE 9 月 TOP 20 编程语言 相较上月,Top 10 榜单中的 SQL (10→9) 和 Assembly language (9→10) 位置进行了互换,除此之外

2023-03-14

GNOME 44 首个 RC 版本已发布。按照计划,正式版将于 3 月 22 日推出。 GNOME 44 RC 重新实现了对 elementary OS 的支持,恢复了 Epiphany(GNOME 的 Web 浏览器)中的“添加首选项以设置新标签页”变更,支持创建虚拟机而无需在 GNOME Box

2022-10-15

SQLAlchemy 2.0.0 首个 Beta 版本已发布。SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 发布公告写道,2.0 旨在适应现代化 Python 的实际使

2022-07-29

QEMU 7.1 首个 RC 版本已发布,稳定版计划在几周后推出。RC 意味着已进入“功能冻结”阶段,即不会增加或删减功能。按照发布计划,在 8 月底推出稳定版之前,每周都会发布 RC 更新。 QEMU 7.1 带来了对 LoongArch 的支持、大量新的

2022-02-10

g, F#, Icon, IDL, Inform, Io, J#, Korn shell, Lingo, M4, MEL, MQL4, MUMPS, Nim, Oberon, OCaml, OpenCL, Oz, Pike, Pure Data, Q, Racket, REXX, Ring, Simulink, Snap!, Solidity, SPARK, Stata, Tcl, Transact-SQL, VHDL, XBase++, Xojo TIOBE 编程社区指数(The TIOBE Programming Community index)是

2023-09-12

n 是另一种有前途的语言。JetBrains 公司于 2016 年首次正式发布 Kotlin 语言;2017 年,Google 宣布为 Android 版 Kotlin 提供一流支持。彼时,由于 Java(Android 的传统语言)被认为过于冗长,Kotlin 的受欢迎程度上升至 1%,并在当时的 TIOBE

2022-09-06

l, EXEC, Icon, IDL, J#, Ladder Logic, Lasso, Logo, ML, MOO, MQL5, NATURAL, Nim, NXT-G, OCaml, Occam, OpenCL, PL/I, Q, Racket, Raku, REXX, Ring, RPG, Scheme, Simulink, Slate, Solidity, SPARK, SPSS, Stata, Tcl, Vala/Genie, VBScript, Verilog, VHDL, X++, Xojo TIOBE 编程社区指数(The TIOBE Prog

2023-11-14

con, Io, J, J#, JScript, LabVIEW, Ladder Logic, Modula-2, Monkey, NATURAL, Nim, OCaml, OpenEdge ABL, PL/I, PowerShell, Pure Data, Q, Racket, REXX, Ring, RPG, Snap!, SPARK, SPSS, SQR, Stata, Tcl, TOM, VHDL, Wolfram TIOBE 编程社区指数(The TIOBE Programming Community index)是一个衡量