TOP

Erlang 不同版本内容(一)
2019-09-14 00:51:25 】 浏览:116
Tags:Erlang 不同 版本 内容

OTP 22.0
Erlang/OTP 22是一个新的主要版本,具有新的特性和改进,同时也具有不兼容性。
要更深入地了解OTP 22发行版的亮点,您可以阅读我们的博客:
http://blog.erlang.org/OTP-22-Highlights/
潜在的不兼容
  • gen_*行为:如果通过sys:log/2,3记录服务器上的最后N条消息是活动的,则此日志包含在终止报告中。
  • reltool:一个新元素Opts现在可以包含在reltool发行版特定配置格式的rel元组中:{rel, Name, Vsn, RelApps, Opts}。
  • 由erlang:list_to_pid和类似函数创建的所有外部pid/port/ref现在都与该节点中具有相同编号的其他pid/port/ref进行比较。
  • 旧的遗留erl_interface库在otp22中被弃用,并将在otp23中删除。这不适用于ei库。
  • VxWorks在otp22中被弃用,将在otp23中删除。
ERTS:
  • 支持Erlang分发协议,将大信号的有效负载拆分为多个片段。
  • ETS选项write_concurrency现在也影响和改进了ordered_set表的可伸缩性。
  • length/1 BIF用于一次性计算列表的长度,即使列表非常长,也不会放弃。现在,当调用长列表时,它将放弃。
  • 介绍了一种新的(仍处于实验阶段)模块socket。它被实现为一个NIF,其思想是它应该“尽可能接近”OS级套接字接口。
  • 添加了NIF函数enif_term_type,通过返回给定项的类型,可以帮助避免enif_is_xyz的长序列。这对于序列化术语(如JSON编码器)的NIFs尤其有用,它可以提高性能和可读性。
Compiler:
  • 编译器被重写为在内部使用基于静态单赋值(SSA)的中间表示形式。新的中间表示使更多的优化成为可能。
  • 新的中间表示使更多的优化成为可能
    • 二进制匹配优化现在比以前适用于更多的环境。
    • 类型优化现在跨本地函数调用应用,并将比以前删除更多的冗余类型测试。
  • 可以在源文件中给出的所有编译器选项现在都可以在erlc命令行上的选项列表中给出。
  • 在OTP 22中,HiPE(本机代码编译器)没有完全发挥功能。原因是HiPE本机代码编译器不支持用于二进制匹配的新的BEAM指令。如果使用+native选项调用erlc,并且使用任何新的二进制匹配指令,编译器将发出警告并生成一个没有native代码的BEAM文件。
标准库:
  • Cover现在使用计数器模块而不是ets来更新计数器。新函数cover:local_only/0允许以受限但更快的本地模式运行cover。速度的提高将根据被覆盖编译的代码类型而有所不同,例如编译器测试套件在新覆盖下运行的速度将是原来的两倍多。
  • 通过套接字模块提供了一个简单的套接字API。这是一个低级别的API,不取代gen_[tcp|udp|sctp]。它的目的是“最终”替换inet驱动程序。它还提供了一个基本的API,便于实现TCP、UDP和SCTP之外的其他协议。已知问题;不支持Windows操作系统(目前),一个小的术语泄漏。这个特性将被归为otp22中的实验性特性。
  • SSL:现在使用新的logger API,包括日志级别和详细的调试日志记录。
  • SSL:实验使用的对TLS 1.3服务器的基本支持。
  • crypto:新的hash_info/1和cipher_info/1函数返回参数中包含散列或密码信息的映射。
 
OTP 21.3
Erlang/OTP 21.3是version 21发行版的第三个服务发行版,有一些改进和一些特性!
重点
kernel:
        标准的logger处理程序logger_std_h现在有一个新的内部特性,用于日志旋转。有关详细信息,请参阅文档。
SSL:
  • 连接和握手函数返回错误的部分原因具有更好的文档格式。这是潜在的不兼容。见文档。
  • 状态处理的重构提高了TLS应用程序的数据吞吐量,降低了CPU开销
  • 代码优化降低了加密/解密的CPU负载,特别是对于Erlang的TLS分发协议
  • 现在支持 active N
Erl_interface:
        添加了对用户提供的套接字实现插件的支持。
OTP:
  • HTML参考文档现在显示了最初引入模块和函数的OTP版本。
  • 在参考文档中没有显示比R13B04更老的OTP版本
 
OTP 21.2
SSH:
公钥方法:添加了ssh-ed25519和ssh-ed448。在OTP应用程序下需要OpenSSL 1.1.1或更高版本作为cryptolib
SSL:
ssl现在在内部使用active n来提升性能。通过设置应用程序变量可以恢复旧的活动一次行为。
ERTS,Kernel:
新的计数器和原子模块提供对可变固定字大小变量的高效操作的访问。
新模块persistent_term!。查找是在恒定的时间!没有复制Terms!
用于处理使用{active,true}或{active,N}的套接字的新pollset。由普通的调度程序投票!
 
在fds上不再有ONESHOT机制开销!仅适用于Linux和BSD。
 
OTP 21.1
SSH:
如果将OpenSSL 1.1.1或更高版本用作cryptolib,则现在支持密码'chacha20-poly1305@openssh.com'。
实现了密钥交换方法'curve25519-sha256@libssh.org','curve25519-sha256'和'curve448-sha512'。
它们都取决于用作cryptolib的OpenSSL 1.1.1或更高版本。
Crypto:
键入加密和public_key应用程序将被重新设置并更正。
用户指南中有关算法详细信息的新章节
ERTS,Kernel:
套接字选项recvtos,recvttl,recvtclass和pktoptions已在套接字模块中实现。
有关更多信息,请参阅gen_tcp,gen_udp和inet模块中的文档!
 
OTP 21
Erlang/OTP 21是一个新的主要版本,具有新特性、改进和不兼容性。
潜在的不兼容
  • 所有Corba应用程序现在都从OTP存储库中移出
  • 将创建一个新的Corba存储库 https://github.com/erlang
  • 新应用程序ftp和tftp,从inets迁移
  • 默认情况下,ssl不再支持3_DES密码套件或rsa密钥交换密码套件
  • erlang:monitor在原始节点(erl_interface、jinterface等)上将不在badarg异常时失败。相反,将创建一个监视器,但它只监视到节点的连接。
重点
Erts:
首页 上一页 1 2 3 4 5 下一页 尾页 1/5/5
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇没有了 下一篇Linux(centOS6.5)安装RabbitMQ