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