Erlang OTP 22.0-rc1 可供测试!

2019年2月13日 · 作者:Henrik Nord

OTP 22 Release Candidate 1 #

这是 OTP 22 发布之前计划的三个候选版本中的第一个。

此版本的目的是获取用户的反馈。欢迎所有反馈,即使只是说它对你有效,因为它让我们知道候选版本经过了一些测试。

Erlang/OTP 22 是一个新的主要版本,具有新功能和改进以及不兼容性。

潜在的不兼容性 #

  • gen_* 行为:如果服务器启用了通过 sys:log/2,3 记录最后 N 条消息,则此日志将包含在终止报告中。
  • 新的元素 Opts 现在可以包含在 reltool 发布特定配置格式的 rel 元组中:{rel, Name, Vsn, RelApps, Opts}。
  • 由 erlang:list_to_pid 和类似函数创建的所有外部 pid/端口/引用现在与来自该节点的具有相同编号的任何其他 pid/端口/引用比较相等。
  • 旧的传统 erl_interface 库已从 OTP 22 开始弃用,并将在 OTP 23 中删除。这不适用于 ei 库。
  • VxWorks 已从 OTP 22 开始弃用,并将在 OTP 23 中删除。

已知问题 #

由于 HiPE 本机编译器不支持新的 BEAM 指令,因此本机代码生成并非对所有模块都有效。但是,dialyzer 的自动编译为本机代码仍然有效。在此候选版本中,使用配置选项 enable-native-libs 构建 OTP 将不起作用。

亮点 #

Erts: #

  • 支持 Erlang 分布协议将大型信号的有效负载拆分为多个片段。
  • ETS 选项 write_concurrency 现在也影响并提高了 ordered_set 表的可扩展性。
  • 用于一次性计算列表长度而不产生 yield 的 length/1 BIF,即使列表非常长也是如此。现在,当使用长列表调用时,它会产生 yield。
  • 引入了一个新的(仍处于实验阶段的)模块 socket。它以 NIF 的形式实现,其想法是使其尽可能“接近”操作系统级别的套接字接口。

编译器: #

  • 编译器已被重写为在内部使用基于静态单赋值 (SSA) 的中间表示。新的中间表示使更多优化成为可能。 * 二进制匹配优化现在比以前适用于更多情况。
  • 类型优化现在应用于本地函数调用,并将删除比以前更多的冗余类型测试。
  • 可以在源文件中给出的所有编译器选项现在都可以在 erlc 的命令行上的选项列表中给出。

标准库: #

  • Cover 现在使用 counters 模块而不是 ets 来更新计数器。新的函数 cover:local_only/0 允许在受限但更快的本地模式下运行 Cover。速度的提高将取决于正在 cover 编译的代码类型,例如,使用新的 Cover 时,编译器测试套件的运行速度快了两倍以上。
  • SSL 现在使用新的 logger API,包括日志级别和详细的调试日志。

有关更多详细信息,请参阅 https://erlang.ac.cn/download/otp_src_22.0-rc1.readme

Windows 的预构建版本可在此处获取:https://erlang.ac.cn/download/otp_win32_22.0-rc1.exe https://erlang.ac.cn/download/otp_win64_22.0-rc1.exe

可以在此处浏览在线文档:https://erlang.ac.cn/documentation/doc-11.0-rc1/doc

Erlang/OTP 源代码也可以在 GitHub 上的官方 Erlang 存储库中找到

https://github.com/erlang/otp

OTP-22.0-rc1

感谢您的所有贡献!