Erlang/OTP 24

這個版本的 Erlang/OTP 可以從原始碼建置,或者使用適用於您作業系統的預先建置的套件,或是第三方工具(例如kerlasdf)來安裝。

Erlang/OTP 24 重點 部落格文章

docker run -it erlang:24

重點

編譯器

  • 編譯器現在會內聯只在定義後立即使用一次的 fun。
  • 編譯器警告和錯誤現在除了行號之外,還會包含列號。
  • 在關鍵字 'try''of' 之間綁定的變數現在可以在 'of' 關鍵字之後的子句中使用(也就是說,在沒有引發異常的成功情況下)。
  • 如果產生器的類型不正確,列表和二進位推導式中的產生器現在會引發 {bad_generator,Generator} 異常。同樣地,當過濾器評估結果不是布林值時,將引發 {bad_filter,Filter} 異常。
  • 可以透過使用匿名變數 '_' 來抑制的、忽略表達式結果的警告,現在可以使用以 '_' 開頭的變數來抑制。
  • 選擇性接收優化現在會更頻繁地應用。新的 recv_opt_info 編譯標誌可以用來列印與此優化相關的診斷訊息。您可以在效能指南中閱讀更多關於選擇性接收優化的資訊。

erts、kernel、stdlib

  • 在二進位模組中新增了十六進制編碼和解碼函數
  • BeamAsm JIT 編譯器已新增至 Erlang/OTP,並將為許多應用程式帶來顯著的效能提升。在大多數具有可以編譯 C++17 的 C++ 編譯器的 x86 64 位元平台上,預設會啟用 JIT 編譯器。若要驗證是否有已啟用 JIT 的模擬器正在執行,您可以使用 erlang:system_info(emu_flavor)
  • 實作了 gen_tcp 的相容性適配器,以使用新的 socket API (gen_tcp_socket)。
  • 實作了 EEP 54 中建議的失敗 BIF 呼叫的擴充錯誤資訊。
  • 引入了 EEP 53 中概述的程序別名。
  • 在 supervisor 中實作了 EEP 56。它新增了重要子節點的概念以及 auto_shutdown supervisor 標誌。有關更多資訊,請參閱 supervisor 手冊頁。

ftp

  • 新增對 FTPES (透過 TLS 的顯式 FTP) 的支援。

ssl

  • 讓 Erlang 分散式系統中的 TLS 握手同時進行。
  • TLS 連線現在支援 EdDSA 憑證。

wx

  • 該應用程式已完全重寫,以便使用 wxWidgets 3 版作為其基礎。
  • 新增對 wxWebView 的支援。

edoc

  • EDoc 現在能夠發射 EEP-48 文件區塊。這表示,經過一些設定後,社群專案現在可以像 OTP 函式庫自 OTP 23.0 起所做的那樣,為 shell_docs 提供文件。

有關新功能和潛在不相容性的更多詳細資訊,請參閱

  • https://erlang.dev.org.tw/download/OTP-24.0.README