查看源代码 弃用

简介

本文档列出了 Erlang/OTP 中所有已弃用的功能。有关弃用策略的更多信息,请参阅 支持、兼容性、弃用和删除 的文档。

OTP 27

归档

以下归档功能已被弃用

  • 使用归档将单个应用程序或单个应用程序的部分打包到代码路径中包含的归档文件中。

  • 模块 erl_prim_loader 中处理归档的所有功能。

  • erl-code_path_choice 标志。

在 Escript 中使用单个归档文件来保存 BEAM 文件和其他数据文件**未**被弃用。但是,要访问归档中的文件,必须使用 escript:extract/2 函数。

erl 标志

以下 erl 标志已被弃用

  • -epmd_module Module - 已弃用,建议使用 kernel 应用程序参数 epmd_module

  • -erl_epmd_port Port - 已弃用,建议使用 kernel 应用程序参数 erl_epmd_node_listen_port

在 OTP 27 中弃用的函数

  • code:lib_dir/2(此功能将在未来的版本中删除)
  • mnesia_registry:create_table/_(请改用 mnesia:create_table/2)
  • ssl:prf/5(请改用 export_key_materials/4。请注意,在 OTP 28 中将不再支持此函数的“测试”调用方式。)

OTP 26

在 OTP 26 中弃用的函数

OTP 25

在 OTP 25 中弃用的函数

  • ct_slave:_/_(请改用 ?CT_PEER() 或 'peer' 模块)
  • slave:_/_(请改用 'peer' 模块)

OTP 24

不支持大型节点容器的 Erlang 分布

在 OTP 24 中,不支持大型 节点容器数据类型(版本 4)的 Erlang 分布上的通信已被弃用,并计划在 OTP 26 中删除。也就是说,从 OTP 26 开始,对大型节点容器数据类型的支持将成为强制性的。

在 OTP 24 中,通过 Erlang 分布进行通信时使用的旧链接协议已被弃用,并且计划在 OTP 26 中删除对它的支持。从 OTP 26 开始,新链接协议 将成为强制性的。也就是说,Erlang 节点将拒绝连接到未实现新链接协议的节点。但是,如果您自己实现 Erlang 分布,则建议您尽快实现新链接协议,因为旧协议可能导致链接进入不一致的状态。

?NO_APP 宏

edoc 包含文件 edoc_doclet.hrl 中的 ?NO_APP 宏已被弃用。

在 OTP 24 中弃用的函数

  • erlang:phash/2(请改用 erlang:phash2/2)
  • zlib:adler32/2(请改用 erlang:adler32/1)
  • zlib:adler32/3(请改用 erlang:adler32/2)
  • zlib:adler32_combine/4(请改用 erlang:adler_combine/3)
  • zlib:crc32/1(请改用未压缩数据上的 erlang:crc32/1)
  • zlib:crc32/2(请改用 erlang:crc32/1)
  • zlib:crc32/3(请改用 erlang:crc32/2)
  • zlib:crc32_combine/4(请改用 erlang:crc32_combine/3)
  • zlib:getBufSize/1(此函数将在未来的版本中删除)
  • zlib:inflateChunk/1(请改用 safeInflate/2)
  • zlib:inflateChunk/2(请改用 safeInflate/2)
  • zlib:setBufSize/2(此函数将在未来的版本中删除)

在 OTP 24 中弃用的函数

OTP 23

Crypto 旧 API

从 OTP 23 开始,旧 API 已被弃用,并已在 OTP 24 中删除

有关替换函数,请参阅 新 API

http_uri

自 OTP 21 以来,处理 URI 的推荐模块是 uri_string。模块 http_uri 没有提供满足 RFC 的实现。

ssh

由于使用 SHA1,公钥算法 'ssh-rsa 被认为是不安全的,因此已被弃用。从 OTP-24 开始,默认情况下它将不可用。

由于使用 SHA1 及其较短的密钥长度,公钥算法 'ssh-dss 被认为是不安全的,因此已被弃用。从 OTP-23 开始,默认情况下它不可用。

分布式磁盘日志

从 OTP 23 开始,分布式 disk_log 功能已被弃用,并且已在 OTP 24 中删除

erl_interface 注册表

从 OTP 23 开始,erl_interfaceregistry 功能部分已被弃用,并且已在 OTP 24 中删除

在 OTP 23 中弃用的函数

在 OTP 23 中弃用的函数

OTP 22

VxWorks 支持

OTP 的某些部分(例如 erl_interface)对 VxWorks 的支持有限。从 OTP 22 开始,此支持正式被弃用,并且已在 OTP 23 中删除

erl_interface 的旧部分

从 OTP 22 开始,旧的旧版 erl_interface 库(带有前缀 erl_ 的函数)已被弃用。erl_interface 的这些部分已被非正式弃用很长时间了。您通常希望使用 ei 库来替换 erl_interface 库的使用,该库也是 erl_interface 应用程序的一部分。旧的旧版 erl_interface 库也已在 OTP 23 中删除

系统事件

已澄清并清理了 sys 的手册页中定义的“系统事件”的格式。因此,依赖于 OTP 的“系统事件”内部文档不完善的先前(此更改之前)格式的代码需要进行更改。

因此,返回具有未文档化和内部格式(因此实际上无用)的数据的函数 sys:get_debug/3 已被弃用,并添加了一个新函数 sys:get_log/1,希望它可以完成已弃用函数预期的功能。

在 OTP 22 中弃用的函数

  • net:broadcast/3(请改用 rpc:eval_everywhere/3)
  • net:call/4(请改用 rpc:call/4)
  • net:cast/4(请改用 rpc:cast/4)
  • net:ping/1(请改用 net_adm:ping/1)
  • net:sleep/1(请改用 'receive after T -> ok end')
  • sys:get_debug/3(文档不正确且仅供内部使用。通常可以使用 sys:get_log/1 替换)

在 OTP 22 中弃用的函数

  • net:broadcast/3(请改用 rpc:eval_everywhere/3)
  • net:call/4(请改用 rpc:call/4)
  • net:cast/4(请改用 rpc:cast/4)
  • net:ping/1(请改用 net_adm:ping/1)
  • net:sleep/1(请改用 'receive after T -> ok end')
  • sys:get_debug/3(文档不正确且仅供内部使用。通常可以使用 sys:get_log/1 替换)

OTP 20

在 OTP 20 中弃用的函数

OTP 19

SSL/TLS

出于安全原因,默认情况下不再支持 SSL-3.0,但可以进行配置。

在 OTP 19 中弃用的函数

  • queue:lait/1(请改用 queue:liat/1)
  • random:_/_(请改用 'rand' 模块)

OTP 18

erlang:now/0

引入了新的时间功能和一个新的时间 API。有关更多信息,请参阅 ERTS 用户指南中的 时间和时间校正 章节,特别是关于如何替换 erlang:now/0 使用的 注意事项 部分。

httpd_conf 模块

模块 httpd_conf 中的 API 函数已被弃用,取而代之的是标准模块,如 listsstringfileliberlang

在 OTP 18 中弃用的函数

  • erlang:now/0 (有关更多信息,请参阅 ERTS 用户指南中的“Erlang 中的时间和时间校正”章节)

OTP 16

在 OTP 16 中弃用的函数

OTP 12

inets - httpd Apache 配置文件

引入了一种新的配置文件格式。

在 OTP 12 中弃用的函数