Erlang/OTP 21.0-rc1 開放測試
2018年5月2日 · 作者:Henrik Nord
OTP 21 發布候選版本 1 #
這是 OTP 21 發布前兩個計畫發布候選版本中的第一個。
此版本的目的是讓您作為使用者嘗試並給予我們回饋
Erlang/OTP 21 是一個新的主要版本,具有新功能、改進以及不相容性。
潛在的不相容性 #
- 所有 Corba 應用程式現在都已從 OTP 儲存庫中移除
- 將建立一個新的 Corba 儲存庫 https://github.com/erlang
- 新的 ftp 和 tftp 應用程式,從 inets 移動
- ssl 預設不再支援 3_DES 加密套件或 RSA 金鑰交換加密套件
- 在原始節點(erl_interface、jinterface 等)上執行 erlang:monitor 不再會因 badarg 例外而失敗。相反,將會建立一個監視器,但它只會監督與節點的連線。
重點 #
Erts: #
- 增強的 IO 可擴展性
- 支援使用分佈控制器程序來處理替代傳輸、路由等
- 在 64 位元系統上,針對 4GB 以下的程式碼使用精簡指令,載入的程式碼記憶體減少 20%
- 使用 NIF 和「Dirty schedulers」重寫 efile-driver,加快檔案操作速度
- 移除 non-smp VM
- link 和 monitor 針對可擴展性進行了最佳化
- os:getenv/putenv 現在在執行緒安全模擬中運作。不再與 libc getenv(3) 同步。需要手動同步。
編譯器:#
- 各種編譯器最佳化,包括 Elixir 團隊的貢獻,使基準測試效能提升了 10%
- 「Tuple 呼叫」已從執行階段系統中移除。
- 現在會自動將諸如
f({ok, Val}) -> {ok, Val}
之類的程式碼重寫為f({ok, Val} = Tuple) -> Tuple.
,這樣可以減少程式碼大小、執行時間並降低 GC 壓力。 - 來自多個運算子的堆疊追蹤中提供更多資訊
erlang:get_stacktrace/0
已棄用,將被try ... catch C:R:Stacktrace -> ...
取代- 最佳化了使用文字鍵建立小型 map 的過程。
安全性:#
- SSL 中的 DTLS 支援
- 增強對透過 TLS 進行分佈的支援
- 從 SSL 和 SSH 中的預設值中移除「不安全」的加密套件。
- 定義了一個新的選項值,以方便實作執行伺服器。舊選項保留以實現相容性,但現在會在 stderror 上給出錯誤。
標準程式庫:#
- 新的日誌記錄 API,logger
- 新的 uri_string 模組,用於根據「標準」解析 URI
-
新函數 lists:search(list,fun/1) -> {ok, Value} false - 變更了 .erlang 載入的預設行為。escript、erlc、dialyzer 和 typer 完全不再載入 .erlang。
如需更多詳細資訊,請參閱 https://erlang.dev.org.tw/download/otp_src_21.0-rc1.readme
可在這裡取得 Windows 的預先建置版本: https://erlang.dev.org.tw/download/otp_win32_21.0-rc1.exe https://erlang.dev.org.tw/download/otp_win64_21.0-rc1.exe
您可以在這裡瀏覽線上文件:https://erlang.dev.org.tw/documentation/doc-10.0-rc1/doc
Erlang/OTP 原始碼也可以在 GitHub 上的官方 Erlang 儲存庫中找到,
感謝您的所有貢獻!