Erlang OTP 22.0-rc1 開放測試!
2019年2月13日 · 作者:Henrik Nord
OTP 22 發布候選版本 1 #
這是 OTP 22 正式發布前的三個計畫發布候選版本中的第一個。
此版本的目的是為了獲取使用者的回饋。任何回饋都歡迎,即使只是告知它對您來說運作正常,這也讓我們知道發布候選版本有被測試到。
Erlang/OTP 22 是一個新的主要版本,具有新功能和改進,以及不相容性。
潛在的不相容性 #
- gen_* 行為:如果伺服器透過 sys:log/2,3 記錄最後 N 條訊息的功能是啟用的,則此日誌會包含在終止報告中。
- 現在可以在 reltool 版本特定的組態格式中的 rel 元組中包含新的元素 Opts:{rel, Name, Vsn, RelApps, Opts}。
- 所有由 erlang:list_to_pid 和類似函數建立的外部 pid/port/ref,現在會與來自該節點的任何其他具有相同編號的 pid/port/ref 視為相等。
- 舊的傳統 erl_interface 函式庫已在 OTP 22 中棄用,並將在 OTP 23 中移除。這不適用於 ei 函式庫。
- VxWorks 已在 OTP 22 中棄用,並將在 OTP 23 中移除。
已知問題 #
由於 HiPE 原生編譯器不支援新的 BEAM 指令,原生程式碼產生不適用於所有模組。但是,dialyzer 自動編譯為原生程式碼仍然有效。在此發布候選版本中,使用 configure 選項 enable-native-libs
建置 OTP 將無法運作。
重點 #
Erts: #
- 支援 Erlang 分散式協定,將大型訊號的有效負載分割成多個片段。
- ETS 選項 write_concurrency 現在也影響並提高了 ordered_set 表的可擴展性。
- 用於計算列表長度的 BIF length/1 過去會在一次性計算長度時不會讓步,即使列表非常長。現在,當使用長列表呼叫時,它會讓步。
- 引入了一個新的(仍處於實驗階段的)模組
socket
。它以 NIF 實作,並且其想法是使其盡可能「接近」作業系統層級的 socket 介面。
編譯器: #
- 編譯器已重寫為內部使用基於靜態單賦值 (SSA) 的中間表示法。新的中間表示法使更多最佳化成為可能。* 二進制匹配最佳化現在比以前適用於更多情況。
- 類型最佳化現在跨本地函數呼叫應用,並將消除比以前更多的冗餘類型測試。
- 所有可以在原始程式碼檔案中提供的編譯器選項,現在都可以在 erlc 的命令列上的選項列表中提供。
標準函式庫: #
- Cover 現在使用 counters 模組而不是 ets 來更新計數器。新的函數 cover:local_only/0 允許在受限制但更快的僅限本機模式下執行 Cover。速度的提升會因正在進行 cover 編譯的程式碼類型而異,例如,編譯器測試套件使用新的 Cover 運行速度快了兩倍以上。
- SSL 現在使用新的 logger API,包括日誌級別和詳細的偵錯日誌。
有關更多詳細信息,請參閱 https://erlang.dev.org.tw/download/otp_src_22.0-rc1.readme
Windows 的預構建版本可以在這裡獲取:https://erlang.dev.org.tw/download/otp_win32_22.0-rc1.exe https://erlang.dev.org.tw/download/otp_win64_22.0-rc1.exe
線上文件可以在這裡瀏覽:https://erlang.dev.org.tw/documentation/doc-11.0-rc1/doc
Erlang/OTP 原始程式碼也可以在 GitHub 上的官方 Erlang 儲存庫中找到
感謝您的所有貢獻!