Erlang OTP 22.0-rc3 可供測試!

2019 年 4 月 24 日 · 作者:Henrik Nord

這是 OTP 22.0 的第三個候選版本 #

Erlang/OTP 22 是一個新的主要版本,具有新功能和改進,以及不相容之處。

此版本沒有主要亮點,因為主要重點是錯誤修復和潤飾。

請參閱 readme 以獲取此版本的詳細變更日誌。

此版本的目的是獲得我們用戶的回饋。歡迎所有回饋,即使只是說它對您有效,因為它可以讓我們知道候選版本經過了一些測試。

候選版本 2 中的亮點 #

潛在的不相容性 #

  • gen_* 行為:如果伺服器啟用了透過 sys:log/2,3 記錄最後 N 條訊息,則此記錄將包含在終止報告中。
  • reltool:現在可以在 reltool 版本特定配置格式的 rel 元組中包含一個新元素 Opts:{rel, Name, Vsn, RelApps, Opts}
  • erlang:list_to_pid 和類似函式建立的所有外部 pid/port/refs 現在與來自該節點的任何其他具有相同數字的 pid/port/ref 比較相等。
  • 舊的遺留 erl_interface 庫自 OTP 22 起已棄用,並將在 OTP 23 中移除。這不適用於 ei 庫。
  • VxWorks 自 OTP 22 起已棄用,並將在 OTP 23 中移除。

候選版本 2 中的其他亮點 #

  • 透過 socket 模組提供了一個簡單的 socket API。這是一個低階 API,它取代 gen_[tcp|udp|sctp]。它旨在最終取代 inet 驅動程式。它還提供了一個基本的 API,有助於實作 TCP、UDP 和 SCTP 以外的其他協定。已知問題是:不支援 Windows OS(目前),一個小的 term 洩漏。此功能將在 OTP 22 中歸類為實驗性功能。
  • ssl:基本支援用於實驗性使用的 TLS 1.3 伺服器。
  • 在 OTP 22 中,HiPE(原生程式碼編譯器)尚未完全正常運作。原因是 HiPE 原生程式碼編譯器不支援用於二進位匹配的新 BEAM 指令。如果使用 +native 選項叫用 erlc,並且如果使用了任何新的二進位匹配指令,編譯器將發出警告並產生沒有原生程式碼的 BEAM 檔案。
  • erts:新增了 NIF 函式 enif_term_type,透過傳回給定 term 的型別,有助於避免冗長的 enif_is_xyz 序列。這對於序列化 term 的 NIF 特別有用,例如 JSON 編碼器,在這種情況下它可以提高效能和可讀性。
  • crypto:新的 hash_info/1cipher_info/1 函式會傳回具有引數中 hash 或 cipher 相關資訊的映射。

候選版本 1 中的亮點 #

Erts: #

  • 支援 Erlang 分散式協定,將大型訊號的 payload 分割成多個片段。
  • ETS 選項 write_concurrency 現在也會影響並提高 ordered_set 資料表的可擴展性。
  • length/1 BIF 過去會一次性計算列表的長度,而不會產生讓步,即使列表非常長。現在,當使用長列表呼叫時,它會產生讓步。
  • 引入了一個新的(仍處於實驗階段)模組 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-rc3.readme

可以在此處取得適用於 Windows 的預先建置版本:https://erlang.dev.org.tw/download/otp_win32_22.0-rc3.exe https://erlang.dev.org.tw/download/otp_win64_22.0-rc3.exe

可以在此處瀏覽線上文件:https://erlang.dev.org.tw/documentation/doc-11.0-rc3/doc

Erlang/OTP 原始碼也可以在 GitHub 上官方 Erlang 存放庫中找到

https://github.com/erlang/otp

OTP-22.0-rc3

感謝各位的貢獻!