歡迎您光臨本站 註冊首頁

Crystal 0.31.0 發布,C 的性能,Ruby 的語法

←手機掃碼閱讀     admin @ 2019-09-25 , reply:0

Crystal 0.31.0 發布了。Crystal 是一門基於 LLVM 的可編譯的靜態類型語言,它的整體設計儘可能地接近 Ruby 的體驗,語法與各種標準庫的介面都幾乎和 Ruby 一樣(但兼容 Ruby 不是它的目標)。

開發團隊表示他們熱愛 Ruby 編寫代碼的效率,又傾心於 C 語言的性能,所以打造的 Crystal 語言給開發者提供了 Ruby 一樣的語法體驗,而且還擁有 C 一樣的性能。

新版本附帶多線程預覽、性能改進以及所有常規 std-lib 中的常規修復和改進。以下是此版本的一些更新亮點:

語言變更

Crystal 0.31.0 版本有一種新的、更簡潔的方法來聲明方法中未捕獲的塊的類型限制。

無名參數&現在可以出現在列表的末尾。它可以有選擇地具有類型限制,編譯器和 doc 工具將使用該類型限制。


def foo(x, y, & : Int32 -> Int32)
end

編譯器

從 Crystal 0.29 開始,編譯器可以發出警告。由於默認設置已更改為 --warnings=all,因此該功能現已退出使用。

LLVM 8.0 在 Linux 官方軟體包中使用。 #8155

標準庫

多線程(Multithreading)

這是最令人期待的功能之一,即使在合併 #8112 之後,也有一些迭代可修復極端情況並穩定運行時間。

數字(Numeric)

很久以前曾宣布 std-lib 的數字部分進行了一些更改,終於在此發行版中得到了實現。

默認情況下處理溢出。 Int32::MAX+1 將不再環繞。如果需要非溢出操作,則可以使用 Int32::MAX&+1。與 - 和 * 相同。在某些體系結構中,LLVM 需要compiler-rt 庫。官方表示移植了所需的內容,因此沒有外部依賴性。如果受到新的默認行為的阻止,請使用 -Ddisable_overflow 來保持與 0.30 相同的語義,或者使用 -Dskip_crystal_compiler_rt 來不包含 compiler-rt 埠並鏈接到其另一個版本。另外,disable_overflow 標誌是臨時的。

/ 將始終代表算術除法。這也意味著其結果將是浮點數(某種形式)。表達式 a.sum/a.size 將返回平均值,無論 a 中使用的是哪種數字類型。如果要保留左側運算符類型的整數除法,請使用 //。

集合(Collections)

集合中的主要變化與性能有關。數組和哈希值的變化見 #8017#8042#8048#8087 和 #8116

序列化(Serialization)

XML 有重大更改,但主要 API 並未更改。可能更具影響力的變更是,JSON 和 YAML 反序列化現在可以處理具有 nilable 欄位的 NamedTuple。

Files

優化不僅存在於集合中。Path#join 和 Dir.glob 中也都存在改進。 #8078#8082#8081

Networking

不建議使用 HTTP::Server::Response#respond_with_error,而推薦使用 #respond_with_status,它還將處理連接的最終狀態和默認狀態描述。

內置的 HTTP 伺服器將以更受控的方式響應具有較長 URI 或較大標頭欄位的請求。響應將分別是 414 Request-URI too long 和 431 Request Header Fields Too Large。

Other deprecations

Markdown 模塊不再在 std-lib 中公開,它仍在內部使用。目前,最好的替代品是 icyleaf/marked。

Crystal-db 0.7.0

此次還提供了新版本的 crystal-lang/crystal-db。解決了一些可能導致創建的連接數量達到峰值的併發問題,這也是多線程上下文的重要更新。

為避免支持帶有 Array 值的列的驅動程序存在歧義,還需要進行重大更改。 db.query(「 SELECT ...」,[1,2])現在表示單個參數:[1,2],而 db.query(「 SELECT ...」,args:[1,2])表示將兩個參數傳遞給查詢。

發布公告:https://crystal-lang.org/2019/09/23/crystal-0.31.0-released.html


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/110114/crystal-0-31-0-released
Crystal 0.31.0 發布,C 的性能,Ruby 的語法已經有82次圍觀

http://coctec.com/news/all/show-post-215351.html