1  已弃用功能

1 已弃用功能

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

  • dbg:stop_clear/0 (使用 dbg:stop/0 代替)
  • disk_log:inc_wrap_file/1 (使用 disk_log:next_file/1 代替)
  • file:pid2name/1 (此功能不再支持)
  • crypto:crypto_dyn_iv_init/3 (请参阅文档以了解更多信息)
  • crypto:crypto_dyn_iv_update/3 (请参阅文档以了解更多信息)
  • ct_slave:_/_ (使用 ?CT_PEER() 或 'peer' 模块代替)
  • slave:_/_ (使用 'peer' 模块代替)

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

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

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

  • 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 23 开始,旧 API已弃用,并在OTP 24 中移除

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

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

由于使用 SHA1,公共密钥算法 'ssh-rsa 被认为不安全,因此已弃用。它在 OTP-24 中默认不可用。

由于使用 SHA1 以及密钥长度短,公共密钥算法 'ssh-dss 被认为不安全,因此已弃用。它在 OTP-23 中默认不可用。

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

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

  • http_uri:decode/1 (使用 uri_string:unquote 函数代替)
  • http_uri:encode/1 (使用 uri_string:quote 函数代替)
  • httpd:parse_query/1 (使用 uri_string:dissect_query/1 代替)

OTP 的某些部分具有有限的 VxWorks 支持,例如erl_interface。从 OTP 22 开始,此支持正式弃用,并在OTP 23 中移除

从 OTP 22 开始,旧的遗留erl_interface库(以 erl_ 为前缀的函数)已弃用。这些 erl_interface 部分已在很长一段时间内非正式地弃用。通常,您希望用 ei 库的使用来替换 erl_interface 库的使用,ei 库也是 erl_interface 应用程序的一部分。旧的遗留erl_interface库也已在OTP 23 中移除

已澄清和清理了 sys 手册页中定义的“系统事件”的格式。因此,依赖于 OTP 的“系统事件”之前(此更改之前)内部未记录的格式的代码需要更改。

鉴于此,返回具有未记录和内部格式(因此实际上无用)数据的函数 sys:get_debug/3 已弃用,并且添加了一个新函数 sys:get_log/1,希望它能达到已弃用函数的预期效果。

  • 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 代替)
  • crypto:rand_uniform/2 (使用 rand:uniform/1 代替)
  • gen_fsm:_/_ (使用 'gen_statem' 模块代替)

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

  • queue:lait/1 (使用 queue:liat/1 代替)
  • random:_/_ (使用 'rand' 模块代替)

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

模块 httpd_conf 中的 API 函数已被弃用,转而使用标准模块,例如 listsstringfileliberlang

  • erlang:now/0 (有关更多信息,请参阅 ERTS 用户指南的“Erlang 中的时间和时间校正”章节)
  • wxCalendarCtrl:enableYearChange/1 (在 wxWidgets-2.9 及更高版本中不可用)
  • wxCalendarCtrl:enableYearChange/2 (在 wxWidgets-2.9 及更高版本中不可用)

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

  • auth:cookie/0 (使用 erlang:get_cookie/0 代替)
  • auth:cookie/1 (使用 erlang:set_cookie/2 代替)
  • auth:is_auth/1 (使用 net_adm:ping/1 代替)
  • auth:node_cookie/_ (使用 erlang:set_cookie/2 和 net_adm:ping/1 代替)
  • calendar:local_time_to_universal_time/1 (使用 calendar:local_time_to_universal_time_dst/1 代替)