查看源代码 已移除的功能

简介

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

OTP 27

Vanilla 驱动程序

已移除通过将原子(或字符串)作为第一个参数传递给 open_port() 来打开到外部资源的端口的过时且未记录的支持(由 vanilla 驱动程序实现)。自 OTP 26 发布以来,此功能已计划在 OTP 27 中移除。

在 OTP 27 中移除的函数

  • crypto:crypto_dyn_iv_init/3 (不支持,请使用 crypto:crypto_init/4)
  • crypto:crypto_dyn_iv_update/3 (不支持,请使用 crypto:crypto_update/2)
  • file:pid2name/1 (不再支持此功能)
  • 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 (请改用 zlib:safeInflate/2)
  • zlib:inflateChunk/2 (请改用 zlib:safeInflate/2)
  • zlib:setBufSize/2 (此函数已移除)

OTP 26

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

在没有支持大型节点容器数据类型(版本 4)的情况下,通过 Erlang 分布进行的通信在OTP 24 中已弃用,并且计划在 OTP 26 中移除对其的支持。也就是说,从 OTP 26 开始,对大型节点容器数据类型的支持将成为强制性的。这还包括由 term_to_binary()/term_to_iovec() 生成的外部项格式。

通过 Erlang 分布进行通信时使用的旧链接协议在OTP 24 中已弃用,并且计划在 OTP 26 中移除对其的支持。 从 OTP 26 开始,新链接协议成为强制性的。也就是说,Erlang 节点将拒绝连接到未实现新链接协议的节点。

在 OTP 26 中移除的函数

  • code:is_module_native/1 (HiPE 已移除)
  • code:rehash/0 (代码路径缓存功能已移除)
  • disk_log:accessible_logs/0 (请改用 disk_log:all/0)
  • disk_log:lclose/1 (请改用 disk_log:close/1)
  • disk_log:lclose/2 (请改用 disk_log:close/1)
  • erts_alloc_config:_/_ (此模块自 OTP 26.0 起已移除)
  • ftp:start_service/1 (请改用 ftp:open/2)
  • ftp:stop_service/1 (请改用 ftp:close/1)
  • httpd_util:decode_hex/1 (请改用 uri_string:unquote 函数)
  • httpd_util:encode_hex/1 (请改用 uri_string:quote 函数)
  • httpd_util:flatlength/1 (请改用 erlang:iolist_size/1)
  • httpd_util:hexlist_to_integer/1 (请改用基数为 16 的 erlang:list_to_integer/2)
  • httpd_util:integer_to_hexlist/1 (请改用基数为 16 的 erlang:integer_to_list/2)
  • httpd_util:strip/1 (请改用 string:trim/1)
  • httpd_util:suffix/1 (请改用 filename:extension/1 和 string:trim/2)

在 OTP 26 中移除的函数

  • code:is_module_native/1 (HiPE 已移除)
  • code:rehash/0 (代码路径缓存功能已移除)
  • disk_log:accessible_logs/0 (请改用 disk_log:all/0)
  • disk_log:lclose/1 (请改用 disk_log:close/1)
  • disk_log:lclose/2 (请改用 disk_log:close/1)
  • erts_alloc_config:_/_ (此模块自 OTP 26.0 起已移除)
  • ftp:start_service/1 (请改用 ftp:open/2)
  • ftp:stop_service/1 (请改用 ftp:close/1)
  • httpd_util:decode_hex/1 (请改用 uri_string:unquote 函数)
  • httpd_util:encode_hex/1 (请改用 uri_string:quote 函数)
  • httpd_util:flatlength/1 (请改用 erlang:iolist_size/1)
  • httpd_util:hexlist_to_integer/1 (请改用基数为 16 的 erlang:list_to_integer/2)
  • httpd_util:integer_to_hexlist/1 (请改用基数为 16 的 erlang:integer_to_list/2)
  • httpd_util:strip/1 (请改用 string:trim/1)
  • httpd_util:suffix/1 (请改用 filename:extension/1 和 string:trim/2)

OTP 25

在 OTP 25 中移除的函数

  • filename:safe_relative_path/1 (请改用 filelib:safe_relative_path/2)
  • http_uri:parse/1 (请改用 uri_string 函数)
  • http_uri:parse/2 (请改用 uri_string 函数)
  • http_uri:scheme_defaults/0 (请改用 uri_string 函数)
  • public_key:ssh_decode/2 (请改用 ssh_file:decode/2)
  • public_key:ssh_encode/2 (请改用 ssh_file:encode/2)
  • public_key:ssh_hostkey_fingerprint/1 (请改用 ssh:hostkey_fingerprint/1)
  • public_key:ssh_hostkey_fingerprint/2 (请改用 ssh:hostkey_fingerprint/2)

OTP 24

erl_interface 注册表

erl_interfaceregistry 功能部件在 OTP 23 中已弃用,并在 OTP 24 中移除。

编译 Latin-1 编码的 Erlang 文件

Erlang 编译器现在拒绝编译以 Latin-1 编码的源文件,除非该文件的开头有 %% coding: latin-1 注释。

syntax_tools 中的 igor 和 erl_tidy 模块

igorerl_tidy 模块已从 OTP 中移除,现在由其原始作者 Richard Carlsson 维护。它们可以在 github.com/richcarl/igorgithub.com/richcarl/erl_tidy 中找到。

分布式磁盘日志

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

旧的 Crypto API

旧 API 已在 OTP 24 中移除。该支持已在 OTP 23 中正式弃用。

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

Megaco 版本 3 编码配置

预发布版本 3 编码配置;prev3aprev3bprev3c 在 OTP 24 中已移除。请改用完整版本。

完整版本(编码)的配置选项 {version3, 3} 仍然会被支持,即使没有必要这样指定它。

在 OTP 24 中移除的函数

  • crypto:block_decrypt/3 (请改用 crypto:crypto_one_time/4 或 crypto:crypto_init/3 + crypto:crypto_update/2 + crypto:crypto_final/1)
  • crypto:block_decrypt/4 (请改用 crypto:crypto_one_time/5、crypto:crypto_one_time_aead/6,7 或 crypto:crypto_init + crypto:crypto_update + crypto:crypto_final)
  • crypto:block_encrypt/3 (请改用 crypto:crypto_one_time/4 或 crypto:crypto_init/3 + crypto:crypto_update/2 + crypto:crypto_final/1)
  • crypto:block_encrypt/4 (请改用 crypto:crypto_one_time/5、crypto:crypto_one_time_aead/6,7 或 crypto:crypto_init + crypto:crypto_update + crypto:crypto_final)
  • crypto:cmac/3 (请改用 crypto:mac/4)
  • crypto:cmac/4 (请改用 crypto:macN/5)
  • crypto:hmac/3 (请改用 crypto:mac/4)
  • crypto:hmac/4 (请改用 crypto:macN/5)
  • crypto:hmac_final/1 (请改用 crypto:mac_final/1)
  • crypto:hmac_final_n/2 (请改用 crypto:mac_finalN/2)
  • crypto:hmac_init/2 (请改用 crypto:mac_init/3)
  • crypto:hmac_update/2 (请改用 crypto:mac_update/2)
  • crypto:next_iv/_ (请参阅 CRYPTO 用户指南的“新 API 和旧 API”章节)
  • crypto:poly1305/2 (请改用 crypto:mac/3)
  • crypto:stream_decrypt/2 (请改用 crypto:crypto_update/2)
  • crypto:stream_encrypt/2 (请改用 crypto:crypto_update/2)
  • crypto:stream_init/_ (请改用 crypto:crypto_init/3 + crypto:crypto_update/2 + crypto:crypto_final/1 或 crypto:crypto_one_time/4)
  • filename:find_src/_ (请改用 filelib:find_source/1,3)
  • pg2:_/_ (此模块在 OTP 24 中已移除。请改用 “pg”)
  • ssl:cipher_suites/0 (请改用 ssl:cipher_suites/2,3)
  • ssl:cipher_suites/1 (请改用 ssl:cipher_suites/2,3)
  • ssl:ssl_accept/_ (请改用 ssl:handshake/1,2,3)

OTP 23

VxWorks 支持

OTP 的某些部分(如 erl_interface)对 VxWorks 的支持有限。此支持已在 OTP 23 中移除。此有限支持已在 OTP 22 中正式弃用。

erl_interface 的旧版部件

旧版 erl_interface 库(带有前缀 erl_ 的函数)已在 OTP 23 中移除。erl_interface 的这些部分很早以前就被非正式弃用,并在 OTP 22 中正式弃用。通常,您需要将对 erl_interface 库的使用替换为使用 ei 库,该库也是 erl_interface 应用程序的一部分。

httpd_conf 模块

模块 httpd_conf 中的 API 函数已被弃用,取而代之的是标准模块,例如 listsstringfileliberlang。自 OTP 18 起正式弃用。

inets - httpd Apache 配置文件

对 Apache 兼容配置文件的支持已在 OTP 23 中移除。OTP 12 中引入了一种新的配置文件格式。

SSL/TLS

出于安全原因,完全不再支持 SSL-3.0。

在 OTP 23 中移除的函数

  • erlang:get_stacktrace/0(使用新的 try/catch 语法来检索堆栈回溯)
  • httpd_conf:check_enum/2(改用 lists:member/2)
  • httpd_conf:clean/1(改用 string:strip/1,或可能使用 re 模块)
  • httpd_conf:custom_clean/3(改用 string:strip/1,或可能使用 re 模块)
  • httpd_conf:is_directory/1(改用 filelib:is_dir/1)
  • httpd_conf:is_file/1(改用 filelib:is_file/1)
  • httpd_conf:make_integer/1(改用 erlang:list_to_integer/1)

OTP 22

在 OTP 22 中移除的函数

  • os_mon_mib:_/_(此模块已在 OTP 22.0 中移除)

OTP 20

在 OTP 20 中移除的函数

  • asn1ct:decode/_(改用 Mod:decode/2)
  • asn1ct:encode/_(改用 Mod:encode/2)
  • erlang:hash/2(改用 erlang:phash2/2)
  • ssl:connection_info/1(改用 ssl:connection_information/1,2)
  • ssl:negotiated_next_protocol/1(改用 ssl:negotiated_protocol/1)

OTP 19

在 OTP 19 中移除的函数

  • core_lib:get_anno/1(改用 cerl:get_ann/1)
  • core_lib:is_literal/1(改用 cerl:is_literal/1)
  • core_lib:is_literal_list/1(改用 cerl:is_literal_list/1)
  • core_lib:literal_value/1(改用 cerl:concrete/1)
  • core_lib:set_anno/2(改用 cerl:set_ann/2)
  • erl_lint:modify_line/2(改用 erl_parse:map_anno/2)
  • erl_parse:get_attribute/2(改用 erl_anno:{column,line,location,text}/1)
  • erl_parse:get_attributes/1(改用 erl_anno:{column,line,location,text}/1)
  • erl_parse:set_line/2(改用 erl_anno:set_line/2)
  • erl_scan:attributes_info/_(改用 erl_anno:{column,line,location,text}/1)
  • erl_scan:set_attribute/3(改用 erl_anno:set_line/2)
  • erl_scan:token_info/_(改用 erl_scan:{category,column,line,location,symbol,text}/1)
  • rpc:safe_multi_server_call/2(改用 rpc:multi_server_call/2)
  • rpc:safe_multi_server_call/3(改用 rpc:multi_server_call/3)