查看源代码 已移除的功能
简介
本文档列出了 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_interface
的 registry
功能部件在 OTP 23 中已弃用,并在 OTP 24 中移除。
编译 Latin-1 编码的 Erlang 文件
Erlang 编译器现在拒绝编译以 Latin-1 编码的源文件,除非该文件的开头有 %% coding: latin-1
注释。
syntax_tools 中的 igor 和 erl_tidy 模块
igor
和 erl_tidy
模块已从 OTP 中移除,现在由其原始作者 Richard Carlsson 维护。它们可以在 github.com/richcarl/igor 和 github.com/richcarl/erl_tidy 中找到。
分布式磁盘日志
分布式 disk_log
功能在 OTP 23 中已弃用,并在 OTP 24 中移除。
旧的 Crypto API
旧 API 已在 OTP 24 中移除。该支持已在 OTP 23 中正式弃用。
有关替换函数,请参阅新 API。
Megaco 版本 3 编码配置
预发布版本 3 编码配置;prev3a
、prev3b
和 prev3c
在 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 函数已被弃用,取而代之的是标准模块,例如 lists
、string
、filelib
和 erlang
。自 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)