Erlang 不一樣版本內容

OTP 22.0
Erlang/OTP 22是一個新的主要版本,具備新的特性和改進,同時也具備不兼容性。
要更深刻地瞭解OTP 22發行版的亮點,您能夠閱讀咱們的博客:
http://blog.erlang.org/OTP-22-Highlights/
潛在的不兼容
  • gen_*行爲:若是經過sys:log/2,3記錄服務器上的最後N條消息是活動的,則此日誌包含在終止報告中。
  • reltool:一個新元素Opts如今能夠包含在reltool發行版特定配置格式的rel元組中:{rel, Name, Vsn, RelApps, Opts}。
  • 由erlang:list_to_pid和相似函數建立的全部外部pid/port/ref如今都與該節點中具備相同編號的其餘pid/port/ref進行比較。
  • 舊的遺留erl_interface庫在otp22中被棄用,並將在otp23中刪除。這不適用於ei庫。
  • VxWorks在otp22中被棄用,將在otp23中刪除。
ERTS:
  • 支持Erlang分發協議,將大信號的有效負載拆分爲多個片斷。
  • ETS選項write_concurrency如今也影響和改進了ordered_set表的可伸縮性。
  • length/1 BIF用於一次性計算列表的長度,即便列表很是長,也不會放棄。如今,當調用長列表時,它將放棄。
  • 介紹了一種新的(仍處於實驗階段)模塊socket。它被實現爲一個NIF,其思想是它應該「儘量接近」OS級套接字接口。
  • 添加了NIF函數enif_term_type,經過返回給定項的類型,能夠幫助避免enif_is_xyz的長序列。這對於序列化術語(如JSON編碼器)的NIFs尤爲有用,它能夠提升性能和可讀性。
Compiler:
  • 編譯器被重寫爲在內部使用基於靜態單賦值(SSA)的中間表示形式。新的中間表示使更多的優化成爲可能。
  • 新的中間表示使更多的優化成爲可能
    • 二進制匹配優化如今比之前適用於更多的環境。
    • 類型優化如今跨本地函數調用應用,並將比之前刪除更多的冗餘類型測試。
  • 能夠在源文件中給出的全部編譯器選項如今均可以在erlc命令行上的選項列表中給出。
  • 在OTP 22中,HiPE(本機代碼編譯器)沒有徹底發揮功能。緣由是HiPE本機代碼編譯器不支持用於二進制匹配的新的BEAM指令。若是使用+native選項調用erlc,而且使用任何新的二進制匹配指令,編譯器將發出警告並生成一個沒有native代碼的BEAM文件。
標準庫:
  • Cover如今使用計數器模塊而不是ets來更新計數器。新函數cover:local_only/0容許以受限但更快的本地模式運行cover。速度的提升將根據被覆蓋編譯的代碼類型而有所不一樣,例如編譯器測試套件在新覆蓋下運行的速度將是原來的兩倍多。
  • 經過套接字模塊提供了一個簡單的套接字API。這是一個低級別的API,不取代gen_[tcp|udp|sctp]。它的目的是「最終」替換inet驅動程序。它還提供了一個基本的API,便於實現TCP、UDP和SCTP以外的其餘協議。已知問題;不支持Windows操做系統(目前),一個小的術語泄漏。這個特性將被歸爲otp22中的實驗性特性。
  • SSL:如今使用新的logger API,包括日誌級別和詳細的調試日誌記錄。
  • SSL:實驗使用的對TLS 1.3服務器的基本支持。
  • crypto:新的hash_info/1和cipher_info/1函數返回參數中包含散列或密碼信息的映射。
 
OTP 21.3
Erlang/OTP 21.3是version 21發行版的第三個服務發行版,有一些改進和一些特性!
重點
kernel:
        標準的logger處理程序logger_std_h如今有一個新的內部特性,用於日誌旋轉。有關詳細信息,請參閱文檔。
SSL:
  • 鏈接和握手函數返回錯誤的部分緣由具備更好的文檔格式。這是潛在的不兼容。見文檔。
  • 狀態處理的重構提升了TLS應用程序的數據吞吐量,下降了CPU開銷
  • 代碼優化下降了加密/解密的CPU負載,特別是對於Erlang的TLS分發協議
  • 如今支持 active N
Erl_interface:
        添加了對用戶提供的套接字實現插件的支持。
OTP:
  • HTML參考文檔如今顯示了最初引入模塊和函數的OTP版本。
  • 在參考文檔中沒有顯示比R13B04更老的OTP版本
 
OTP 21.2
SSH:
公鑰方法:添加了ssh-ed25519和ssh-ed448。在OTP應用程序下須要OpenSSL 1.1.1或更高版本做爲cryptolib
SSL:
ssl如今在內部使用active n來提高性能。經過設置應用程序變量能夠恢復舊的活動一次行爲。
ERTS,Kernel:
新的計數器和原子模塊提供對可變固定字大小變量的高效操做的訪問。
新模塊persistent_term!。查找是在恆定的時間!沒有複製Terms!
用於處理使用{active,true}或{active,N}的套接字的新pollset。由普通的調度程序投票!
 
在fds上再也不有ONESHOT機制開銷!僅適用於Linux和BSD。
 
OTP 21.1
SSH:
若是將OpenSSL 1.1.1或更高版本用做cryptolib,則如今支持密碼'chacha20-poly1305@openssh.com'。
實現了密鑰交換方法'curve25519-sha256@libssh.org','curve25519-sha256'和'curve448-sha512'。
它們都取決於用做cryptolib的OpenSSL 1.1.1或更高版本。
Crypto:
鍵入加密和public_key應用程序將被從新設置並更正。
用戶指南中有關算法詳細信息的新章節
ERTS,Kernel:
套接字選項recvtos,recvttl,recvtclass和pktoptions已在套接字模塊中實現。
有關更多信息,請參閱gen_tcp,gen_udp和inet模塊中的文檔!
 
OTP 21
Erlang/OTP 21是一個新的主要版本,具備新特性、改進和不兼容性。
潛在的不兼容
  • 全部Corba應用程序如今都從OTP存儲庫中移出
  • 將建立一個新的Corba存儲庫 https://github.com/erlang
  • 新應用程序ftp和tftp,從inets遷移
  • 默認狀況下,ssl再也不支持3_DES密碼套件或rsa密鑰交換密碼套件
  • erlang:monitor在原始節點(erl_interface、jinterface等)上將不在badarg異常時失敗。相反,將建立一個監視器,但它只監視到節點的鏈接。
重點
Erts:
  • 加強的IO可伸縮性
  • 支持使用分佈控制器進程進行替代傳輸、路由等
  • 壓縮指令64位系統代碼,低於4GB內存的20%的已加載代碼
  • 使用NIFs和「髒調度程序」重寫efile驅動程序,從而加快文件操做
  • non-smp VM刪除
  • 爲可伸縮性優化的連接和監視器
  • 操做系統:getenv/putenv如今致力於線程安全模擬。再也不與libc getenv(3)同步。須要手動同步。
Compiler:
  • Misc編譯器優化,包括Elixir團隊的貢獻,在基準測試中獲得10%的改進
  • 「元組調用」已從運行時系統中刪除。
  • 像f({ok, Val}) -> {ok, Val}這樣的代碼如今被自動重寫爲f({ok, Val} = Tuple) -> Tuple。這減小了代碼大小、執行時間和消除了GC壓力。
  • stacktrace中的更多信息來自多個操做符
  • erlang:get_stacktrace/0不同意使用,代以 try … catch C:R:Stacktrace -> …
  • 優化建立具備文字鍵的小映射。
  • 一個新的預編譯宏' OTP_RELEASE '和預處理器指令' -if '和' -elif '
安全:
  • SSL應用程序如今支持DTLS
  • 加強了對TLS分發的支持
  • 從SSL和SSH的缺省值中刪除「不安全」密碼。
  • 定義一個新選項值,以方便實現exec服務器。舊選項保持兼容性,但如今在stderror上出現錯誤。
標準庫:
  • 新的日誌API, logger
  • 根據「標準」解析uri的新uri_string模塊
  • 新函數:lists:search(list,fun/1) -> {ok, Value} | false
  • 更改了.erlang加載的默認行爲。escript、erlc、dialyzer和typer再也不加載.erlang。
 
OTP 20.3
Erlang/OTP 20.3是20個主要版本的第三個服務版本。服務版本主要包含bug修復和特性改進,但也包含一些新特性。
ssl
        增長了新的API函數,以方便密碼套件的處理
erts,observer
        更多的崩潰轉儲信息,例如:進程二進制虛擬堆統計信息、致使GC期間mem超時的進程的完整信息、更多的端口相關信息和髒調度程序信息。
inet
        在http客戶機中添加對unix域套接字的支持。
 
OTP 20.2
Erlang/OTP 20.2是20個主要版本的第二個服務版本。服務版本主要包含bug修復和特性改進,但也包含一些新特性。
crypto,ssl
    crypto API被擴展爲使用存儲在引擎中的私鑰/公鑰進行簽名/驗證或加密/解密操做。
    ssl應用程序提供了一個API來在TLS中使用這個新的引擎概念。
ssh
    SSH如今能夠從存儲在引擎中的私鑰獲取主機密鑰。有關引擎的詳細信息,請參閱crypto應用程序。
ssl
    添加了一個新的命令行選項-ssl_dist_optfile,以便在使用SSL做爲分發協議時指定所需的許多選項。
stdlib
    在處理ASCII字符時提升新字符串功能的性能。
 
 
OTP 20.1
20.1的一些亮點
crypto, public_key:crypto和public_key函數簽名擴展,用下面方式驗證:
  • 支持rsasa - ps填充簽名和鹽長設置
  • X9.31 RSA填充。
  • 如NIST SP 800-57第1部分所述,用於dss簽名的sha、sha22四、sha25六、sha384和sha512。
  • 用於rsa簽名的ripemd160。
一個新的元組在 crypto:supports/0 報告支持MAC算法。
diameters
  • 添加服務選項decode_format,容許將傳入的消息解碼爲映射,而不是記錄。
  • 解碼性能獲得了提升。
  • 添加服務/傳輸選項avp_dictionary,以便更好地支持只定義AVPs的字典。
erts:將erts內部PCRE庫從8.40版本升級到8.41版本。
erts、kernel、tools:如今能夠在運行時在鎖計數模擬器(-emu_type lcnt)中徹底切換帶有鎖計數的分析。默認狀況下,全部內容都啓用了與舊行爲匹配的功能,可是在禁用特定類別時,能夠隨意切換,而運行時開銷最小。有關詳細信息,請參閱lcnt:rt_mask/1上的文檔。
lcnt:collect和lcnt:clear將再也不阻塞運行時系統中的全部其餘線程。這使得在較重的負載下運行鎖計數成爲可能。
erts:zlib模塊已經被重構,它的全部操做如今都將獲得適當的處理,容許它們在併發應用程序中自由使用。
erts,tools:添加erlang:iolist_to_iovec/1,它將iolist()轉換爲erlang:iovec(),後者適合與enif_inspect_iovec()一塊兒使用。
erts:添加新的nif API函數來管理I/O隊列。
添加的函數有:enif_ioq_create()、enif_ioq_destroy()、enif_ioq_enq_binary()、enif_ioq_enqv()、enif_ioq_deq()、enif_ioq_peek()、enif_inspect_iovec()、enif_free_iovec()
observer/crashdump_viewer
  • 對包含許多二進制文件的崩潰轉儲文件的讀取進行了優化。
  • 當打開流程的詳細信息視圖時,將顯示一個進度條。
  • cdv腳本如今將ERL_CRASH_DUMP_SECONDS設置爲0,以免從運行Crashdump查看器的節點生成新的崩潰轉儲。
observer
在observer中將系通通計信息和限制添加到frontpage。
public_key,ssl * *:
改進了錯誤傳播和報告
ssh:實現了一個新的選項modify_algorithms。它支持在默認算法列表上指定更改。參見參考手冊和SSH用戶指南「在SSH中配置算法」一章。
tools/xref:預約義的xref analysis locals_not_used如今理解-on_load()屬性,而且不報告未使用的函數。
tools/fprof:當採樣多個進程並將total設置爲true進行分析時,輸出如今將全部涉及相同函數的調用者和被調用者條目彙總在一塊兒。之前的行爲是分別報告每一個貢獻條目。
 
OTP 20.0
潛在的不兼容
ERTS:
  • 不支持SMP Erlang VM,默認狀況下不構建它
  • 移除棄用erlang:hash/2
  • erlang:statistics/1 使用 scheduler_wall_time如今還包含關於髒CPU調度程序的信息。
  • OTP 19.1中引入的新清除策略是強制性的,對於持有funs的進程來講,它稍微有些不兼容,見erlang: check_process_code/3。
  • 再也不支持NIF庫從新加載。
  • 原子如今能夠包含任意unicode字符,這意味着若是OTP 20節點應該接受與另外一個節點或庫的鏈接,那麼必須支持分佈協議中的DFLAG_UTF8_ATOMS功能。使用分發協議的第三方庫須要使用此更新。
Asn1:已刪除模塊和函數(asn1rt, asn1ct:encode/3 和 decode/3)
Ssh:啓動守護進程的調用中的client only選項如今將失敗
重點
Erts:
  • 髒調度程序在VM上啓用並支持SMP支持。
  • 支持「髒」BIFs和「髒」GC。
  • erlang:garbage_collect/2用於控制次要GC或主要GC
  • 發送消息時再也不復制Erlang文本。
  • 改進了大型ETS表的性能,>256條目(ordered_set除外)
  • erlang:system_info/1 atom_count和atom_limit
  • 經過在GC期間將子二進制文件轉換爲堆二進制文件來下降內存壓力
  • enif_select將外部事件映射到消息
  • VM內部計時器的改進致使內存消耗的減小和計時器的更高效管理
Compiler:
  • 改進了複雜保護的代碼生成。
  • 警告重複相同的映射鍵。# {' a ' = > 1, b = > 2, 'a ' = > 3}將警告爲重複的鍵。
  • 默認狀況下,當使用export_all時,如今會有一個警告。能夠禁用。
  • 優化了maps模式匹配
  • 新選項肯定省略路徑到源+選項信息的beam文件。
  • 原子如今能夠包含任意unicode字符。
  • compile:file/2有一個選項,能夠在beam文件中包含額外的塊。
Misc其餘應用程序:
  • 顯著更新了字符串模塊,使用unicode支持和許多新函數
  • crypto如今支持OpenSSL 1.1
  • 優化的未命名ets表
  • gen_fsm被棄用,取而代之的是gen_statem
  • 一個新的事件管理器,用於處理Erlang中操做系統信號的子集
  • 優化集add_element、del_element和union
  • rand:jump/ 0 - 1
  • 當gen_server崩潰時,將打印客戶機的stacktrace以方便調試。
  • take/2已添加到dict、orddict和gb_trees中。
  • take_any/2已添加到gb_trees中
  • erl_tar支持長路徑名和新文件格式
  • asn1:新的映射選項將序列的表示形式改成映射而不是記錄
  • TLS客戶機將在缺省狀況下調用public_key:pkix_verify_hostname/2來驗證主機名
  • ssl:API中記錄的DTLS,實驗性的
  • ssh:改進安全性,刪除和添加算法
  • 新的math:fmod / 2
 
OTP 19.3
19.3的一些亮點
crypto, ssh:對diffie-hellman-group exchange-sha*密鑰交換算法的實現進行了優化,對於最慢(=最大和最安全)的組大小,優化係數高達11。
dialyzer:峯值內存消耗下降。
用二進制結構分析帶有巨大字符串的模塊如今要快得多。
erts:接收到的發送到beam的SIGTERM信號將向init進程生成一條「stop」消息,並很好地終止Erlang VM。這至關於調用init:stop/0。
kernel:「file」模塊中獲取路徑列表的函數(例如:file:path_consult/2)如今將繼續在路徑中搜索,若是路徑包含的內容不是目錄。
已知接收許多消息的兩個OTP進程是「rex」(由「rpc」使用)和「error_logger」。這些進程如今將把未處理的消息存儲在進程堆以外,這將提升它們處理大型消息隊列的能力。
public_key:新函數pkix_verify_hostname/2,3實現證書主機名檢查。參見手冊和RFC 6125。
public_key, ssh:ssh主機密鑰指紋生成如今還接受一個算法列表,並返回相應的指紋列表。請參見public_key:ssh_hostkey_fingerprint/2和ssh:connect中的選項silently_accept_hosts。
ssl:將PEM緩存移動到專用進程,以免使ssl管理器進程成爲瓶頸。這提升了TLS鏈接的可伸縮性。
stdlib:添加了用於清理相對路徑的filename:safe_relative_path/1。
 
OTP 19.2
19.2的一些亮點
STDLIB:新的行爲gen_statem經過3個新特性獲得了改進:能夠爲gen_statem:call/二、三、狀態代碼和狀態超時使用舊式的非代理超時。它們是向後兼容的。已經執行了一些小的代碼和文檔改進,包括超時零處理的邊界語義糾正。
SSL: DTLS的實驗性版本。它是可運行的,但不完整,不能被認爲是可靠的生產使用。要使用DTLS,請將選項{protocol, DTLS}添加到ssl:connect和ssl:listen中。
SSH:爲SSH:connect擴展了silently_accept_hosts選項,使客戶機可以檢查SSH主機密鑰指紋字符串。見SSH參考手冊。
 
OTP 19.1
改進的髒調度程序支持。模塊的清除沒必要等待全部正在進行的髒NIF調用的完成。
erts:提升了MacOS X上超時的準確性。
內核:在運行時添加net_kernel:setopts/2和net_kernel:getopts/2來控制分佈套接字的選項。
用並行make (make -j)編譯同一目錄中的多個ASN.1模塊如今應該是安全的。
httpd:在mod_esi中支持PUT和DELETE
 
OTP 19.0
這次發佈的一些亮點包括:
compiler,stdlib:
  • 新的預處理器宏?FUNCTION_NAME, ?FUNCTION_ARITY
  • 新的預處理器指令-error(Term)和-warning(Term)分別致使編譯錯誤或警告。
gen_statem: 一個新的狀態機行爲
mnesia_ext:mnesia外部存儲解決方案的插件
crypto:在OpenSSL中使用EVP接口,從而得到更好的性能和對HW加速的支持
ssh:性能改進,使用新的gen_statem行爲
ssl:加強的錯誤日誌消息
dialyzer:對映射的支持在很大程度上擴展了類型規範語法和類型分析。
erts:
  • erlang:open_port(spawn,…)快3-5倍
  • 跟蹤,普遍的改進(可伸縮性,速度,匹配發送/接收規範,支持lttng,…)
  • 骯髒的調度程序改進
  • 每一個進程對message_queue的可配置處理
  • 快速加載多個模塊
  • max_heap_size 進程標記
erts/kernel:
  • Unix域套接字的實驗支持
  • 例子: gen_udp:open(0, [{ifaddr,{local,"/tmp/socket"}}])
還有更多……
 
OTP 18.3
這次發佈的一些亮點包括:
關於可運行和活動進程和端口的新統計信息。
調用erlang:statistics使用total_run_queue_length | run_queue_lengths | total_active_tasks | active_tasks。
時間誤差的改進:dbg:p/2和erlang:trace/3使用monotonic_timestamp | strict_monotonic_timestamp。
爲heart引入了一個驗證回調。
已經不同意sasl中的模塊重載。
 
OTP 18.2.1
這個補丁包包含了新的windows二進制文件
因爲在處理路徑在windows上的一個錯誤,如下將不會工做的路徑包含一個空間:
ct_run
dialyzer
erlc
escript
typer
這還包含一個針對FreeBSD啓用HiPE的模擬器的修復。
 
OTP 18.2
這次發佈的一些亮點包括:
ssl:爲會話緩存添加可配置的上限。
erts:添加函數enif_getenv以可移植的方式從NIFs讀取OS環境變量。
kernel:將{line_delim, byte()}選項添加到inet:setopts/2和decode_packet/3
ssh:實現了用於ssh的「ecdsa-sha2-nistp256」、「ecdsa-sha2-nistp384」和「ecdsa-sha2-nistp521」簽名算法。看到RFC 5656。
ssh:ssh:daemon選項dh_gex_groups被擴展爲讀取用戶提供的具備生成器-模數對的ssh模塊文件。該文件採用openssh格式。
 
OTP 18.1
這次發佈的一些亮點包括:
ssl:添加將ssl /TLS鏈接降級爲tcp鏈接的可能性,並將套接字控制權交還給用戶進程。
ssh:實現瞭如下新的密鑰交換算法:'ecdh-sha2-nistp256'、'ecdh-sha2-nistp384'、'ecdh-sha2-nistp521'、'diffie-hellman-group14-sha1'、'diffie-hellman-group exchange-sha1'和'diffie-hellman-group exchange-sha256'。這大大提升了安全級別。
kernel、stdlib、sasl:引入了一種限制內置錯誤日誌事件將生成的文本數量的機制。它對於限制日誌文件的大小和用於生成它們的CPU時間都頗有用。
這個機制是實驗性的,由於它能夠根據反饋進行更改。請參閱內核應用程序中的配置參數error_logger_format_depth。
 
OTP 18.0
這次發佈的一些亮點包括:
從18.0開始Erlang/OTP在APL 2.0 (Apache Public License)下發布
erts:時間功能已經擴展。這包括一個新的API for time,以及「time warp」模式,當系統時間發生變化時,這種模式會改變行爲。強烈建議您使用新的API,而不是基於erlang:now/0的舊API。erlang:因爲/0是一個可伸縮性瓶頸,因此不推薦使用它。
有關更多信息,請參閱ERTS用戶指南的時間和時間校訂章節。這裏有一個連接http://www.erlang.org/doc/apps/erts/time_correction.html
erts:除了API的變化和時間間隔模式以外,還在時間管理方面進行了大量的可伸縮性和性能改進。例子有:
  • 特定於調度程序的計時器輪,
  • 特定於調度程序的BIF計時器管理,
  • 在支持它的操做系統上並行檢索單調時間和系統時間。
erts:之前引入的「即時檢查I/O」特性如今默認啓用。
erts/compiler:加強了對映射的支持。新的大映射在內部使用了HAMT(哈希數組映射Trie)表示,這使它們更加高效。如今還支持將變量做爲映射鍵。 
dialyzer: -dialyzer() 屬性可用於抑制警告
在模塊中指定函數或警告選項。
它還能夠用於請求模塊中的警告。
ssl:刪除對ssl -3.0的默認支持,併爲TLS-1.0添加填充檢查(因爲貴賓犬的漏洞)。
ssl:刪除對RC4密碼套件的默認支持,由於它們被認爲太弱。
stdlib:容許maps用於監督者標誌和子規範
stdlib:ets新增函數:
take/2 工做原理與ets:delete/2相同,但也返回被刪除的對象。
ets:update_counter/4 使用默認對象做爲參數。
 
OTP 17.5
這次發佈的一些亮點包括:
ERTS:添加了用於設置進程字典初始大小的命令行參數選項。
Diameter:可爲Diameter消息配置incoming_max len和string_decode
bug修復和應用程序中的一些小功能,如compiler、common_test、crypto、debugger、eldap、erts、hipe、inets、ssh、ssl……
 
OTP 17.4
Erlang/OTP 17.4是17軌道上的一個服務版本,主要修復了bug,但它也包含了一些新特性和特性改進。
這次發佈的一些亮點包括:
eldap:幾乎全部TCP選項均可以在eldap:open/2調用中給出。
ssh:添加API函數ptty_alloc/3和ptty_alloc/4,以分配僞tty。
ssl:處理可能向客戶機發送空SNI擴展名的服務器。
 
OTP 17.3
Erlang/OTP 17.3是17軌道上的一個服務版本,主要修復了bug,但它也包含了一些新特性和特性改進。
這次發佈的一些亮點包括:
erts:引入了enif_schedule_nif(),它容許將長時間運行的NIF分解爲單獨的NIF調用,而無需使用用Erlang編寫的包裝器函數
common_test:添加了對運行Quickcheck的實驗支持,以及來自common_test套件的PropEr測試。ssh和inets應用程序套件中的使用示例
修正了asn一、erts、kernel、stdlib、diameter、ssh、mnesia、ssl、jinterface等應用程序中的bug和一些次要的新特性
與多核可伸縮性相關的一些功能是做爲EU FP7發佈項目的一部分開發的。
 
OTP 17.1
Erlang/OTP 17.1是17軌道上的一個服務版本,主要修復了bug,但它也包含了許多新特性和特性改進。
這次發佈的一些亮點包括:
crypto:將aes_cfb8 cypher添加到crypto:block_encrypt和block_decrypt。
diameter:爲CEA、DWA和DPA添加結果代碼計數器。
erts:在erlang和二進制模塊中內置的如下函數如今能夠進行適當的reductions,超出reductions會出讓:
binary_to_list/1, binary_to_list/3, bitstring_to_list/1, list_to_binary/1,iolist_to_binary/1,list_to_bitstring/1,binary:list_to_bin/1
hipe:在hipe本機代碼編譯器中處理maps指令get_map_elements、put_map_assoc、put_map_exact。
mnesia:爲具備大量鎖的事務插入鎖的時間大大減小。
ssh:選項max_sessions添加到ssh:daemon/{2,3}。
stdlib:Add maps:get/3 to maps模塊。若是鍵在映射中不存在,函數將返回提供的默認值。
 
OTP 17.0
Erlang/OTP 17.0是一個新的主要版本,有新的特性、特性改進以及一些不兼容的地方。有關詳細信息,請參閱自述文件和文檔。
這次發佈的一些亮點包括:
  • Erlang/OTP已被移植到實時操做系統OSE。
  • maps,一種新的字典數據類型(實驗性的)
  • 一個更天然的映射,從ASN.1八位串和位串到Erlang類型,以及其餘ASN.1的改進和優化
  • TCP、UDP和SCTP的{active, N}套接字選項
  • 一個新的(可選的)調度程序使用平衡機制
  • 默認狀況下,全部ERTS內部內存分配器都啓用了內存載體的遷移
  • 提升垃圾收集保留率
  • 實驗性的「髒調度程序」功能
  • Funs如今能夠命名了
  • 其餘unicode支持加強
  • 介紹了一種新的OTP應用方案
您能夠在README文件中找到更詳細的信息。
 
OTP R16B03-1
這是一個服務版本,它糾正了R16B03版本中發現的一些問題。更正的是:
  • 在預構建的Windows安裝程序中缺乏ODBC應用程序
  • SSL應用程序中的3個更正:
    • 添加server_name_indicator選項缺乏的驗證,並對其顯式使用進行測試。
    • 若是可能的話,服務器模式下的橢圓曲線選擇如今正確地選擇客戶端建議的曲線。
    • 服務器沒有代表在TLS擴展處理期間支持安全的從新協商。
  • 在語法工具的應用中引入了一個bug,它破壞了本地函數的恢復。如今糾正過來了(多虧了安東尼·拉明)
  • wx - 解決了在關閉窗口時致使調試器崩潰的問題。修復了Mac上的靜態連接。
  • xmerl - 修正了使用xmerl_sax_parser:stream/2函數時,當下一個文檔的頭出如今緩衝區中時,sax-parser中的一個問題。
相關文章
相關標籤/搜索