Erlang OTP 23.0 发布候选版本 2
2020年3月26日 · 作者:Kenneth Lundin
OTP 23 发布候选版本 2 #
这是 OTP 23 发布之前的三个计划发布候选版本中的第二个。此版本的目的是获取我们用户的反馈。欢迎所有反馈,即使只是说它对您有效。
Erlang/OTP 23 是一个新的主要版本,具有新功能、改进以及一些不兼容之处。
潜在的不兼容性 #
- SSL:* 完全移除了对 SSL 3.0 的支持。
- TLS 1.3 已添加到默认支持的版本列表中。
erl_interface
:移除了erl_interface
的已弃用部分(erl_interface.h
以及所有前缀为erl_
的 C 函数)。- 已弃用的
erlang:get_stacktrace/0
BIF 现在返回一个空列表而不是堆栈跟踪。erlang:get_stacktrace/0
计划在 OTP 24 中移除。 - …
亮点(rc2) #
- ssh:* OpenSSH 6.5 引入了一种新的密钥文件表示形式,称为
openssh-key-v1
。现在支持此格式,但处理加密密钥除外。 - 现在可以在 .config 文件中进行算法配置。例如,这对于启用默认情况下禁用的算法而无需更改代码非常有用。
- ssl:* 对中间件兼容模式的支持使 TLS 1.3 握手看起来更像 TLS 1.2 握手,并增加了通过旧中间件成功建立 TLS 1.3 连接的可能性。
- 增加了对使用 Edward 曲线进行密钥交换以及在签名验证中使用 PSS-RSA 填充的支持。
- 扩展了在不依赖 EPMD 的情况下运行 Erlang 分布式的可能性。为了实现这一点,已向 inet 分布式添加了一些新选项。*
-dist_listen false
设置分布式通道,但不监听传入连接。 -erl_epmd_port Port
配置内置 EPMD 客户端应返回的默认端口。- …
- 已经实现了
gen_tcp
和inet
的第一个实验性的socket
后端。gen_udp
和gen_sctp
将会跟进。将{inet_backend, socket}
作为listen()
或connect()
的第一个选项,可以很容易地为现有代码尝试此功能。
亮点(rc1) #
- 内核中的一个新模块
erpc
,它实现了rpc
模块提供的操作的增强子集。增强的意义在于,它可以区分返回值、引发的异常和其他错误。erpc
还比原始rpc
实现具有更好的性能和可扩展性。这是通过利用新引入的spawn_request()
BIF 实现的。此外,rpc
模块在可能的情况下通过利用erpc
也从这些改进中受益。 - 关于分布式 spawn 操作的可扩展性和性能改进以及新功能。
- 在二进制匹配中,现在允许将要匹配的段的大小作为 guard 表达式 (EEP-52)。
- 当使用 map 进行匹配时,现在 key 可以是 guard 表达式 (EEP-52)。
- ssh:实现了对 TCP/IP 端口转发的支持,也称为隧道,也称为 tcp-forward/direct-tcp。在 OpenSSH 客户端中,这对应于选项 -L 和 -R。
- 允许在数字字面量中使用下划线以提高可读性。示例:
123_456_789
,16#1234_ABCD
。 - shell 中用于显示 Erlang 模块、函数和类型的文档的新函数。 这些函数是:*
h/1,2,3
– 打印Module:Function/Arity
的文档。 ht/1,2,3
– 打印Module:Type/Arity
的类型文档。当构建 Erlang/OTP 文档时,嵌入式文档被创建为 docchunk (EEP 48)。- kernel:引入了具有分布式命名进程组新实现的模块
pg
。旧模块pg2
已被弃用,并计划在 OTP 24 中移除。 - 我们用于构建 Windows 包的工具链已使用新的 C++ 编译器、Java 编译器、OpenSSL 库和 wxWidgets 版本进行了升级。我们现在在使用 WSL(构建时的 Windows Linux 子系统),这使得处理构建环境更加容易。
- …
有关更多详细信息,请参阅 https://erlang.ac.cn/download/otp_src_23.0-rc2.readme
可以在此处获取 Windows 预构建版本:https://erlang.ac.cn/download/otp_win32_23.0-rc2.exe https://erlang.ac.cn/download/otp_win64_23.0-rc2.exe
可以在此处浏览在线文档:https://erlang.ac.cn/documentation/doc-11.0-rc2/doc Erlang/OTP 源代码也可以在 GitHub 的官方 Erlang 存储库中找到,https://github.com/erlang/otp