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
