重點
編譯器
- 編譯器現在會內聯只在定義後立即使用一次的 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