OTP 23 發布候選版本 3
2020 年 4 月 22 日 · 作者:Henrik Nord
OTP 23 發布候選版本 3 #
這是 OTP 23 正式發布前,三個計畫發布的候選版本中的第三個也是最後一個。此版本的目的是為了收集使用者的回饋。歡迎所有回饋,即使只是告知您它對您而言運作正常。
Erlang/OTP 23 是一個新的主要版本,包含新功能、改進以及一些不相容之處。
重點 (rc3) #
除了以下變更外,此第三個預發布版本僅包含少量修正。
潛在的不相容性 #
- SSL: * 完全移除對 SSL 3.0 的支援。
- TLS 1.3 加入到預設支援的版本清單中。
erl_interface
:移除erl_interface
中已棄用的部分 (erl_interface.h
和所有以erl_
為字首的 C 函數)。- 已棄用的
erlang:get_stacktrace/0
BIF 現在會返回空列表,而非堆疊追蹤。erlang:get_stacktrace/0
計劃在 OTP 24 中移除。 - …
重點 (rc2) #
- ssh: * OpenSSH 6.5 引入了一種新的金鑰檔案表示方式,稱為
openssh-key-v1
。現在已支援此方式,但加密金鑰的處理除外。 - 現在可以在 .config 檔案中進行演算法設定。例如,這對於啟用預設停用的演算法很有用,而無需變更程式碼。
- ssl: * 對於中介盒相容模式的支援,使 TLS 1.3 交握看起來更像 TLS 1.2 交握,並提高了透過舊有中介盒成功建立 TLS 1.3 連線的機會。
- 新增支援使用愛德華曲線和 PSS-RSA 填充進行金鑰交換,以及在簽名驗證中使用。
- 已擴展在不依賴 EPMD 的情況下運行 Erlang 分散式系統的可能性。為此,已新增一些新的 inet 分散式系統選項。*
-dist_listen false
建立分散式通道,但不監聽傳入連線。 -erl_epmd_port Port
設定內建 EPMD 用戶端應返回的預設連接埠。- …
- 已實作
gen_tcp
和inet
的第一個實驗性socket
後端。gen_udp
和gen_sctp
也將跟進。將{inet_backend, socket}
作為listen()
或connect()
的第一個選項,可以輕鬆地針對現有程式碼進行嘗試。
重點 (rc1) #
- 在核心中新增一個名為
erpc
的新模組,該模組實作了rpc
模組提供的操作的增強子集。增強之處在於,它可以區分傳回的值、引發的例外狀況和其他錯誤。與原始rpc
實作相比,erpc
也具有更好的效能和可擴展性。這是透過利用新引入的spawn_request()
BIF 來實現的。此外,rpc
模組也會在可能的情況下利用erpc
來獲益於這些改進。 - 關於分散式衍生操作的可擴展性和效能改進以及新功能。
- 在二進位匹配中,要匹配的區段大小現在允許是 guard 運算式 (EEP-52)。
- 在使用 map 匹配時,鍵現在可以是 guard 運算式 (EEP-52)。
- ssh:實作了 TCP/IP 連接埠轉發,又稱為通道傳輸或 tcp-forward/direct-tcp。在 OpenSSH 用戶端中,這對應於 -L 和 -R 選項。
- 允許在數值文字中使用底線以提高可讀性。範例:
123_456_789
、16#1234_ABCD
。 - 在 shell 中新增用於顯示 Erlang 模組、函數和類型文件的函數。這些函數包括:*
h/1,2,3
– 列印Module:Function/Arity
的文件。 ht/1,2,3
– 列印Module:Type/Arity
的類型文件。內嵌文件會在建置 Erlang/OTP 文件時建立為 docchunks (EEP 48)。- 核心:引入具有分散式命名程序群組的新實作的
pg
模組。舊的pg2
模組已棄用,並計劃在 OTP 24 中移除。 - 我們的 Windows 套件建置工具鏈已升級為新的 C++ 編譯器、Java 編譯器、OpenSSL 程式庫和 wxWidgets 版本。我們現在使用 WSL (用於建置的 Windows Linux 子系統),這使得處理建置環境更加容易。
- …
如需更多詳細資訊,請參閱 https://erlang.dev.org.tw/download/otp_src_23.0-rc3.readme
Windows 的預建版本可在此處取得:https://erlang.dev.org.tw/download/otp_win32_23.0-rc3.exe https://erlang.dev.org.tw/download/otp_win64_23.0-rc3.exe
線上文件可在此處瀏覽:https://erlang.dev.org.tw/documentation/doc-11.0-rc3/doc Erlang/OTP 原始碼也可以在 GitHub 的官方 Erlang 存放庫中找到:https://github.com/erlang/otp