Erlang/OTP 21.0-rc2 可供测试
2018年5月30日 · 作者:Henrik Nord
OTP 21 候选版本 2 #
这是在 OTP 21 发布之前的两个计划中的候选版本中的第二个。
随着我们越来越接近 OTP 21,我们的目标是提高候选版本的质量和稳定性。
此版本的目的是让您作为用户尝试它并向我们提供反馈。
Erlang/OTP 21 是一个新的主要版本,具有新功能、改进以及不兼容性。
潜在的不兼容性 #
- 所有 Corba 应用程序现在都已从 OTP 存储库中移出
- 将创建一个新的 Corba 存储库 https://github.com/erlang
- 新的应用程序 ftp 和 tftp,从 inets 移动
- 默认情况下,ssl 不再支持 3_DES 密码套件或 RSA 密钥交换密码套件
- 在原始节点(erl_interface、jinterface 等)上使用 erlang:monitor 将不再因 badarg 异常而失败。相反,将创建一个监视器,但它只会监视与节点的连接。
亮点 #
Erts: #
- 增强的 IO 可扩展性
- 支持为替代传输、路由等使用分布式控制器进程
- 在 64 位系统上为 4GB 以下的代码使用紧凑指令,加载代码的内存减少 20%
- 使用 NIF 和“Dirty schedulers”重写 efile 驱动程序,从而加快文件操作速度
- 移除了 non-smp VM
- 链接和监视针对可扩展性进行了优化
- os:getenv/putenv 现在在线程安全仿真上工作。不再与 libc getenv(3) 同步。需要手动同步。
编译器: #
- 各种编译器优化,包括来自 Elixir 团队的贡献,使基准测试提高了 10%
- “元组调用”已从运行时系统中删除。
- 现在,诸如
f({ok, Val}) -> {ok, Val}
之类的代码会自动重写为f({ok, Val} = Tuple) -> Tuple.
这减少了代码大小、执行时间,并减少了 GC 压力。 - 来自许多运算符的堆栈跟踪中提供了更多信息
erlang:get_stacktrace/0
已弃用,将被try ... catch C:R:Stacktrace -> ...
取代- 使用文字键创建小映射进行了优化。
安全: #
- SSL 中的 DTLS 支持
- 增强了对通过 TLS 进行分发的支持
- 从 SSL 和 SSH 的默认设置中删除了“不安全”的密码。
- 定义了一个新的选项值,以方便实现 exec 服务器。保留旧选项以实现兼容性,但现在会在 stderror 上给出错误。
标准库: #
- 用于日志记录的新 API,logger
- 用于根据“标准”解析 URI 的新 uri_string 模块
-
新函数 lists:search(list,fun/1) -> {ok, Value} false - 更改了 .erlang 加载的默认行为。escript、erlc、dialyzer 和 typer 不再加载 .erlang。
有关更多详细信息,请参阅 https://erlang.ac.cn/download/otp_src_21.0-rc2.readme
Windows 的预构建版本可以在这里获取:https://erlang.ac.cn/download/otp_win32_21.0-rc2.exe https://erlang.ac.cn/download/otp_win64_21.0-rc2.exe
可以在此处浏览在线文档:https://erlang.ac.cn/documentation/doc-10.0-rc2/doc
Erlang/OTP 源代码也可以在 GitHub 上的官方 Erlang 存储库中找到,
感谢您的所有贡献!