Erlang/OTP 18

這個版本的 Erlang/OTP 可以從原始碼建置,或使用適用於您的作業系統的預先建置的套件或第三方工具(例如kerlasdf)安裝。

docker run -it erlang:18

重點

  • 從 18.0 開始,Erlang/OTP 在 APL 2.0(Apache 公共許可證)下發布
  • erts:時間功能已擴展。這包括一個新的時間 API,以及在系統時間變更時會改變行為的「時間扭曲」模式。強烈建議您使用新的 API,而不是基於 erlang:now/0 的舊 API。 erlang:now/0 已被棄用,因為它是一個可擴展性的瓶頸。如需更多資訊,請參閱 ERTS 使用者指南的「時間和時間校正」章節。這裡有一個連結
  • erts:除了 API 變更和時間扭曲模式外,還在時間管理方面進行了許多可擴展性和效能改進。範例包括
    • 排程器特定的計時器輪,
    • 排程器特定的 BIF 計時器管理,
    • 在支援它的作業系統上平行擷取單調時間和系統時間。
  • erts:先前導入的「急切檢查 I/O」功能現在預設為啟用。
  • erts/compiler:增強了對 map 的支援。大型 map 現在內部使用 HAMT (雜湊陣列映射樹) 表示法,使其更有效率。現在也支援變數作為 map 的鍵。
  • dialyzer:-dialyzer() 屬性可用於透過指定函數或警告選項來抑制模組中的警告。它也可以用於請求模組中的警告。
  • ssl:由於 Poodle 漏洞,移除對 SSL-3.0 的預設支援,並為 TLS-1.0 新增填充檢查。
  • ssl:移除對 RC4 加密套件的預設支援,因為它們被認為太弱。
  • stdlib:允許將 map 用於 supervisor 旗標和子程序規格
  • stdlib:ets 中的新函數
    • take/2。其作用與 ets:delete/2 相同,但也返回已刪除的物件。
    • ets:update_counter/4 帶有預設物件作為引數
  • kernel、stdlib、sasl:引入了一種機制,用於限制內建錯誤記錄器事件產生的文字量。它有助於限制日誌檔的大小以及產生它們所使用的 CPU 時間。(18.1)
    此機制是實驗性的,因為它可能會根據回饋意見進行變更。請參閱 Kernel 應用程式中的 config 參數 error_logger_format_depth。
  • ssl:為工作階段快取新增可配置的上限。(18.2)