亮点
编译器
- 编译器现在将内联仅在定义后立即使用一次的 fun。
- 编译器警告和错误现在除了行号之外还包括列号。
- 在关键字
'try'
和'of'
之间绑定的变量现在可以在'of'
关键字后面的子句中使用(也就是说,在没有引发异常的成功情况下)。 - 如果生成器的类型不正确,列表和二进制推导式中的生成器现在将引发
{bad_generator,Generator}
异常。同样,当过滤器未计算为布尔值时,将引发{bad_filter,Filter}
异常。 - 对于可以使用匿名变量
'_'
抑制的忽略结果的表达式的警告,现在可以使用以'_'
开头的变量抑制。 - 选择性接收优化现在将更频繁地应用。新的
recv_opt_info
编译标志可用于打印与此优化相关的诊断信息。您可以在《效率指南》中阅读有关选择性接收优化的更多信息。
erts,内核,stdlib
- 在二进制模块中添加了十六进制编码和解码函数
- BeamAsm JIT 编译器已添加到 Erlang/OTP 中,这将为许多应用程序带来显著的性能提升。默认情况下,在大多数具有可以编译 C++17 的 C++ 编译器的 x86 64 位平台上启用 JIT 编译器。要验证是否正在运行启用 JIT 的模拟器,您可以使用
erlang:system_info(emu_flavor)
。 - 已实现
gen_tcp
的兼容性适配器,以使用新的套接字 API (gen_tcp_socket
)。 - 已实现 EEP 54 中提议的用于失败的 BIF 调用的扩展错误信息。
- 已引入 EEP 53 中概述的进程别名。
- 在 supervisor 中实现了 EEP 56。它添加了重要子进程的概念以及
auto_shutdown
supervisor 标志。有关更多信息,请参见 supervisor 手册页。
ftp
- 添加对 FTPES(通过 TLS 的显式 FTP)的支持。
ssl
- 使 Erlang 分布中的 TLS 握手并发。
- TLS 连接现在支持 EdDSA 证书。
wx
- 该应用程序已完全重写,以便使用 wxWidgets 版本 3 作为其基础。
- 添加了对 wxWebView 的支持。
edoc
- EDoc 现在能够发出 EEP-48 文档块。这意味着,通过一些配置,社区项目现在可以像 OTP 库自 OTP 23.0 以来所做的那样为 shell_docs 提供文档。
有关新功能和潜在不兼容性的更多详细信息,请参见
- https://erlang.ac.cn/download/OTP-24.0.README