Nim 编程语言版本 1.4.0

Nim 系统编程语言的新版本已经发布,今年 XNUMX 月庆祝了它的一周年纪念日。 第一个稳定版本。 该语言在语法上与 Python 相似,在性能上几乎与 C++ 相似。 根据 常见问题 该语言大量借鉴(按贡献顺序):Modula 3、Delphi、Ada、C++、Python、Lisp、Oberon。


由于能够在 C/C++/Objective-C/JS 中进行编译,因此可以在任何地方工作。 它支持 , 巴解组织, 仿制药, 例外, 热代码交换 以及更多。 许可证:麻省理工学院。

最显着的变化:

  • 有一个新的 ORC 垃圾收集器,它使用 ARC 的算法,但同时以特殊的方式处理循环引用。 通过 -gc:orc 选项启用。 关于ARC/ORC的区别 有一篇很棒的文章.

  • 添加了严格函数定义的模式,可以对对象可变性进行额外检查。 通过 pragma {.experimental: "strictFuncs".} 或通过 --experimental:strictFuncs 键激活。

  • from 关键字现在可以用作运算符。

  • 添加了 .noalias 杂注。 它映射到 C 限制关键字以提高关键字可以提供的效率。

  • 现在可以通过 --warningAsError[X]:on|off 将特定警告转换为错误。

  • 新命令:nim r main.nim [args...],该命令编译并运行main.nim,并包含--usenimcache,以便将结果存储在$nimcache/main$exeExt中,使用与nim c相同的逻辑 - r 在源未更改时从重新编译中删除。 例子:

nim r compiler/nim.nim --help # 第一次编译
echo '导入操作系统; 回声 getCurrentCompilerExe()' | nim r - # 这也有效
nim r compiler/nim.nim --fullhelp # 无需重新编译
nim r —nimcache:/tmp main # 二进制文件保存在 /tmp/main 中

  • 添加了新的提示 -hint:msgOrigin,它将显示编译器在何处生成错误/警告消息。 当消息来源不明确时,这会有所帮助。

  • 添加了标志 —backend:js|c|cpp|objc (或 -b:js 等)来更改后端。

  • 添加了 --usenimcache 标志以将二进制文件输出到 nimcache。

  • 删除的键:--oldNewlines、--laxStrings、--oldast、--oldgensym

  • nimsuggest 实用程序现在不仅显示预声明,还显示 def 请求的实现位置。

此外,标准库中还添加了许多更改并修复了许多错误。

来源: linux.org.ru