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 儲存庫中找到

https://github.com/erlang/otp

OTP-22.0-rc1

感謝您的所有貢獻!