尼姆 1.2.0 发布

新版本的 Nim 系统编程语言已经发布。 它与 1.0 版本部分不兼容,例如由于更严格的类型转换。 但在本例中,有一个标志 -useVersion:1.0。

主要创新是新的垃圾收集器,由 -gc:arc 选项启用。 该语言的作者 Andreas Rumpf 将撰写一篇关于 ARC 优点的详细文章,但现在他邀请您阅读 以及他在 FOSDEM 的表现,显示基准测试结果。

  • 编译器现在支持 --asm 选项,以便更方便地检查生成的汇编代码。
  • align pragma 可用于对象变量和字段,这类似于 C/C++ 中的alignas。
  • =sink 运算符现在是可选的。 编译器现在可以结合使用 =destroy 和 copyMem 来有效地移动对象。
  • 运行时不会检查到无符号整数的转换。 详情见 https://github.com/nim-lang/RFCs/issues/175
  • 左值的新语法:var b {.byaddr.} = expr,通过 import std/decls 连接
  • 编译器支持新的开关 -panics:on,它将运行时错误(例如 IndexError 或 OverflowError)转换为无法通过 try 捕获的致命错误。 这可以提高运行时效率和程序大小。
  • 生成的 JS 代码仅使用空格,而不是空格和制表符的混合。
  • 编译器添加了对 .localPassc pragma 的支持,它可用于处理从当前 Nim 模块生成的 C(++) 文件的特殊 C(++) 后端选项。
  • Nimpretty 不再接受设置缩进的否定参数,因为这会破坏文件。
  • 添加了新的宏(收集、复制、捕获),通过导入糖连接。

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

来源: linux.org.ru

添加评论