新版本的 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