潛在的不相容性
- Erlang 執行時系統
- 已棄用的
erlang:get_stacktrace/0
BIF 現在會返回一個空列表而不是堆疊追蹤。erlang:get_stacktrace/0
預計在 OTP 24 中移除。
- 已棄用的
- ssl
- 完全移除對 SSL 3.0 的支援。
- TLS 1.3 已新增至預設支援版本清單。
- erl_interface
- 移除了
erl_interface
中已棄用的部分 (erl_interface.h
和所有具有erl_
前綴的 C 函式)。
- 移除了
- stdlib
- 在 OTP-23.2 中,uri_string 中的錯誤修正導致百分比編碼字元的解碼可能與之前不同。
如需完整列表,請參閱OTP 23.0 - 潛在的不相容性。
重點
ssh
- OpenSSH 6.5 引入了一種新的金鑰檔案表示方式,稱為
openssh-key-v1
。現在已支援此格式,但不包括處理加密金鑰。 - 現在可以在 .config 檔案中完成演算法組態。這對於啟用預設情況下停用的演算法非常有用,而無需更改程式碼。
- 已實作對 TCP/IP 埠轉發(又稱通道或 tcp-forward/direct-tcp)的支援。在 OpenSSH 用戶端中,這對應於 -L 和 -R 選項。
ssl
- 對中介盒相容模式的支援使 TLS 1.3 交握看起來更像 TLS 1.2 交握,並增加了透過舊式中介盒成功建立 TLS 1.3 連線的機會。
- 支援使用 Edward 曲線進行金鑰交換,以及在簽名驗證中使用 PSS-RSA 填充。
語言和執行時
- 在二進制匹配中,要匹配的段的大小現在可以是一個 guard 表達式 (EEP-52)。
- 使用 map 匹配時,鍵現在可以是 guard 表達式 (EEP-52)。
- 允許在數值文字中使用底線以提高可讀性。範例:
123_456_789
、16#1234_ABCD
。 - shell 中用於顯示 Erlang 模組、函式和類型文件的的新函式。函式如下:
h/1,2,3
– 列印Module:Function/Arity
的文件。ht/1,2,3
– 列印Module:Type/Arity
的類型文件。
當建置 Erlang/OTP 文件時,內嵌文件會建立為 docchunk (EEP 48)。
- 我們的 Windows 套件建置工具鏈已使用新的 C++ 編譯器、Java 編譯器、OpenSSL 程式庫和 wxWidgets 版本進行升級。我們現在使用 WSL(用於建置的 Windows 的 Linux 子系統),這使得處理建置環境更加容易。
網路
- 已擴展在不依賴 EPMD 的情況下執行 Erlang 分散式運算的選項。為實現此目的,已新增一些 inet 分散式運算的新選項。
-dist_listen false
設定分散式通道,但不監聽傳入連線。-erl_epmd_port Port
設定內建 EPMD 用戶端應返回的預設埠。
- 已實作
gen_tcp
和inet
的第一個實驗性socket
後端。gen_udp
和gen_sctp
將隨後推出。將{inet_backend, socket}
作為listen()
或connect()
的第一個選項可以輕鬆地在現有程式碼中嘗試此選項。 - 核心中新增了一個名為
erpc
的新模組,該模組實作了rpc
模組提供的增強子集運算。增強的地方在於它可以區分傳回值、引發的例外和其他錯誤。erpc
也比原始rpc
實作具有更好的效能和可擴展性。這是透過利用新引入的spawn_request()
BIF 來實現的。rpc
模組也可以在可能的情況下透過利用erpc
從這些改進中受益。 - 關於分散式 spawn 運算的可擴展性和效能改進,以及新功能。
- 引入了一個具有分散式命名處理程序組的新實作的
pg
模組。舊的pg2
模組已棄用,並預計在 OTP 24 中移除。