Erlang/OTP 18.0 正式版发布了,这是一个全新的主要版本,包含全新特性、相当多的改进,以及修复了一些不兼容。
一个不是功能改变但也是这个版本大变化之一:使用APL 2.0 (Apache Public License)许可证。
此版本的亮点:
自18.0 Erlang/OTP发布后,开始支持APL 2.0(Apache Public License);
erts: 扩展time功能,包括一个新的API,以及”time warp” 模式——当系统time变化时随之更改行为;强烈建议使用新的API替代基于erlang:now/0
的老API。因为erlang:now/0
有扩展瓶颈,已经被弃用了。想要了解更多信息请参见:Time and Time Correction chapter of the ERTS User’s Guide Erlang
erts: 除了API变化,time warp模式做了很多扩展性和性能的改进,以及实现time管理。实例:
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”功能现在是默认启用的;
erts/compiler: 增强maps支持,大的maps开始使用HAMT (Hash Array Mapped Trie)实现内部显示,从而让他们更加高效。现在也支持map keys变量。
dialyzer: -dialyzer()
属性可用于控制警告,面向有特殊功能的组件或警告选项中;它也可以用在组件中来实现请求警告。
ssl: 移除SSL-3.0的默认支持,以及因为Poodle易损性新增TLS-1.0检测。
ssl: 移除RC4加密套件的默认支持,因为他们认为这个太弱了。
stdlib: 允许maps有 supervisor flags和child specs。
stdlib: 在ets的新特性
take/2。和ets:delete/2
的实现类似,但需要回滚删除object(s)
。
ets:update_counter/4
有了默认的对象。
更多细节请参见发布日志:http://www.erlang.org/download/otp_src_18.0.readme
当你使用这个OTP版本进行代码编译时请注意:
由于如果erlang:now
被弃用,你正在使用”warnings as errors”可能会让你停止编译。
你可以通过设置环境变量来实现编译:
export ERL_COMPILER_OPTIONS=nowarn_deprecated_function
你也可以从github.com获得官方Erlang repository的源代码:
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是一个个人学习交流的平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽,造成漏登,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。