Erlang/OTP 18.0 已发布

2015年6月24日 · 作者:Henrik Nord

Erlang/OTP 18.0 是一个主要的新版本,具有新功能、许多(特性)改进以及一些不兼容之处。此版本的一个非功能性但主要的更改是将许可证更改为 Apache License 2.0。

该版本的一些亮点包括:

  • 从 18.0 版本开始,Erlang/OTP 在 Apache License 2.0 下发布
  • erts:时间功能已扩展。这包括一个新的时间 API,以及在系统时间更改时改变行为的“时间扭曲”模式。强烈建议您使用新的 API,而不是基于 erlang:now/0 的旧 API。 erlang:now/0 已被弃用,因为它是一个可扩展性瓶颈。 有关详细信息,请参阅 ERTS 用户指南的时间和时间校正章节。 这是一个链接:https://erlang.ac.cn/doc/apps/erts/time_correction.html
  • erts:除了 API 更改和时间扭曲模式外,在时间管理方面还进行了许多可扩展性和性能改进。例如:* 调度器特定的定时器轮,
  • 调度器特定的 BIF 定时器管理,
  • 在支持它的操作系统上并行检索单调时间和系统时间。
  • erts:先前引入的“急切检查 I/O”功能现在默认启用。
  • erts/compiler:增强了对 map 的支持。大型 map 现在在内部使用 HAMT(哈希数组映射 Trie)表示,这使它们更有效率。现在还支持使用变量作为 map 的键。
  • dialyzer:-dialyzer() 属性可用于通过指定函数或警告选项来抑制模块中的警告。它也可用于请求模块中的警告。
  • ssl:删除对 SSL-3.0 的默认支持,并由于 Poodle 漏洞为 TLS-1.0 添加了填充检查。
  • ssl:删除对 RC4 密码套件的默认支持,因为它们被认为太弱。
  • stdlib:允许将 map 用于 supervisor 标志和子规范
  • stdlib:ets 中的新函数:* take/2。其工作方式与 ets:delete/2 相同,但也会返回已删除的对象。
  • ets:update_counter/4,使用默认对象作为参数

您可以在以下位置找到包含更多详细信息的发行说明:

https://erlang.ac.cn/download/otp_src_18.0.readme

使用此 OTP 版本构建自己的代码时的重要信息

由于 erlang:now 已被弃用,如果您使用“将警告视为错误”,则您的构建可能会停止。要让构建通过,您可以通过设置如下环境变量来关闭对已弃用函数的警告:export ERL_COMPILER_OPTIONS=nowarn_deprecated_function

您可以在 github.com 上的官方 Erlang 存储库中找到源代码。

Git 标签 OTP-18.0

https://github.com/erlang/otp/tree/OTP-18.0

您还可以在此处在线阅读文档:(请参阅上面提到的发行说明,了解文档中未更新的发行说明,但新功能已更新)

https://erlang.ac.cn/doc/

我们还要感谢那些向我们发送补丁、建议和错误报告的人。

爱立信的 Erlang/OTP 团队