Erlang/OTP 18.0 正式版发布

更新时间:2015-06-26 10:30:10点击次数:1007次

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的源代码:

Git tag OTP-18.0


  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息
  • 项目经理 点击这里给我发消息