Erlang/OTP 18.0 正式版發(fā)布了,這是一個(gè)全新的主要版本,包含全新特性、相當(dāng)多的改進(jìn),以及修復(fù)了一些不兼容。
一個(gè)不是功能改變但也是這個(gè)版本大變化之一:使用APL 2.0 (Apache Public License)許可證。
此版本的亮點(diǎn):
自18.0 Erlang/OTP發(fā)布后,開始支持APL 2.0(Apache Public License);
erts: 擴(kuò)展time功能,包括一個(gè)新的API,以及”time warp” 模式——當(dāng)系統(tǒng)time變化時(shí)隨之更改行為;強(qiáng)烈建議使用新的API替代基于erlang:now/0的老API。因?yàn)?code style="box-sizing: border-box; font-family: 'Source Code Pro', monospace; font-size: 14px; padding: 2px 4px; color: rgb(63, 63, 63); background-color: rgba(128, 128, 128, 0.0745098); border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; white-space: nowrap;">erlang:now/0有擴(kuò)展瓶頸,已經(jīng)被棄用了。想要了解更多信息請參見:Time and Time Correction chapter of the ERTS User’s Guide Erlang
erts: 除了API變化,time warp模式做了很多擴(kuò)展性和性能的改進(jìn),以及實(shí)現(xiàn)time管理。實(shí)例:
scheduler specific timer wheels;
scheduler specific BIF timer management;
parallel retrieval of monotonic time and system time on OS:es that support it。
erts: 之前推出的”eager check I/O”功能現(xiàn)在是默認(rèn)啟用的;
erts/compiler: 增強(qiáng)maps支持,大的maps開始使用HAMT (Hash Array Mapped Trie)實(shí)現(xiàn)內(nèi)部顯示,從而讓他們更加高效。現(xiàn)在也支持map keys變量。
dialyzer: -dialyzer()屬性可用于控制警告,面向有特殊功能的組件或警告選項(xiàng)中;它也可以用在組件中來實(shí)現(xiàn)請求警告。
ssl: 移除SSL-3.0的默認(rèn)支持,以及因?yàn)镻oodle易損性新增TLS-1.0檢測。
ssl: 移除RC4加密套件的默認(rèn)支持,因?yàn)樗麄冋J(rèn)為這個(gè)太弱了。
stdlib: 允許maps有 supervisor flags和child specs。
stdlib: 在ets的新特性
take/2。和ets:delete/2的實(shí)現(xiàn)類似,但需要回滾刪除object(s)。
ets:update_counter/4 有了默認(rèn)的對象。
更多細(xì)節(jié)請參見發(fā)布日志:http://www.erlang.org/download/otp_src_18.0.readme
當(dāng)你使用這個(gè)OTP版本進(jìn)行代碼編譯時(shí)請注意:
由于如果erlang:now被棄用,你正在使用”warnings as errors”可能會(huì)讓你停止編譯。
你可以通過設(shè)置環(huán)境變量來實(shí)現(xiàn)編譯:
export ERL_COMPILER_OPTIONS=nowarn_deprecated_function
你也可以從github.com獲得官方Erlang repository的源代碼:
本站文章版權(quán)歸原作者及原出處所有 。內(nèi)容為作者個(gè)人觀點(diǎn), 并不代表本站贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),本站只提供參考并不構(gòu)成任何投資及應(yīng)用建議。本站是一個(gè)個(gè)人學(xué)習(xí)交流的平臺,網(wǎng)站上部分文章為轉(zhuǎn)載,并不用于任何商業(yè)目的,我們已經(jīng)盡可能的對作者和來源進(jìn)行了通告,但是能力有限或疏忽,造成漏登,請及時(shí)聯(lián)系我們,我們將根據(jù)著作權(quán)人的要求,立即更正或者刪除有關(guān)內(nèi)容。本站擁有對此聲明的最終解釋權(quán)。