Nim 1.2.0 リリース

Nim システム プログラミング言語の新しいバージョンがリリースされました。 バージョン 1.0 とは部分的に互換性がありません。たとえば、型変換が強化されているためです。 ただし、この場合、フラグ -useVersion:1.0 があります。

主な革新は、--gc:arc オプションによって有効になる新しいガベージ コレクターです。 この言語の作者である Andreas Rumpf は、ARC の利点について詳細な記事を書く予定ですが、今のところは、次の記事を読むことを勧めています。 彼のFOSDEMの講演とともに、ベンチマーク結果を示します。

  • コンパイラーは --asm オプションをサポートするようになり、生成されたアセンブラー コードを簡単に検査できるようになりました。
  • align プラグマは、C/C++ の alignas と同様に、オブジェクト変数およびフィールドで使用できます。
  • =sink 演算子はオプションになりました。 コンパイラは、=destroy と copyMem の組み合わせを使用して、オブジェクトを効率的に移動できるようになりました。
  • 符号なし整数への変換は実行時にチェックされません。 詳細は https://github.com/nim-lang/RFCs/issues/175
  • lvalue の新しい構文: var b {.byaddr.} = expr、import std/decls 経由で含まれる
  • コンパイラーは、IndexError や OverflowError などのランタイム エラーを、try では捕捉できない致命的なエラーに変える新しい --panics:on オプションをサポートします。 これにより、実行時の効率とプログラムのサイズが向上します。
  • 生成された JS コードでは、スペースとタブの寄せ集めではなく、スペースのみが使用されます。
  • .localPassc プラグマのサポートがコンパイラーに追加されました。これを使用すると、現在の Nim モジュールから生成された C(++) ファイルの特別な C(++) バックエンド オプションを処理できます。
  • Nimpretty は、ファイルを破損する可能性があるため、インデントに対する負の引数を受け入れなくなりました。
  • import Sugar を介して接続される新しいマクロ (収集、dup、キャプチャ) を追加しました。

さらに、標準ライブラリに多くの変更が追加され、多くのバグが修正されました。

出所: linux.org.ru

コメントを追加します