2 Removed Functionality

2.1  Introduction

This document lists all removed functionality in Erlang/OTP. For more information regarding the strategy regarding removals see the documentation of Support, Compatibility, Deprecations, and Removal.

2.2  OTP 24

erl_interface registry

The registry functionality part of erl_interface was as of OTP 23 deprecated and was removed in OTP 24.

Compilation of Latin-1 Encoded Erlang Files

The Erlang compiler now refuses to compile source files encoded in Latin-1 without a %% coding: latin-1 comment at the beginning of the file.

igor and erl_tidy modules in syntax_tools

The igor and erl_tidy modules have been removed from OTP and is now maintained by their original author Richard Carlsson. They can be found at github.com/richcarl/igor and github.com/richcarl/erl_tidy, respectively.

Functions Removed in OTP 24

  • crypto:block_decrypt/3 (use crypto:crypto_one_time/4 or crypto:crypto_init/3 + crypto:crypto_update/2 + crypto:crypto_final/1 instead)
  • crypto:block_decrypt/4 (use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_(dyn_iv)?_init + crypto:crypto_(dyn_iv)?_update + crypto:crypto_final instead)
  • crypto:block_encrypt/3 (use crypto:crypto_one_time/4 or crypto:crypto_init/3 + crypto:crypto_update/2 + crypto:crypto_final/1 instead)
  • crypto:block_encrypt/4 (use crypto:crypto_one_time/5, crypto:crypto_one_time_aead/6,7 or crypto:crypto_(dyn_iv)?_init + crypto:crypto_(dyn_iv)?_update + crypto:crypto_final instead)
  • crypto:cmac/3 (use crypto:mac/4 instead)
  • crypto:cmac/4 (use crypto:macN/5 instead)
  • crypto:hmac/3 (use crypto:mac/4 instead)
  • crypto:hmac/4 (use crypto:macN/5 instead)
  • crypto:hmac_final/1 (use crypto:mac_final/1 instead)
  • crypto:hmac_final_n/2 (use crypto:mac_finalN/2 instead)
  • crypto:hmac_init/2 (use crypto:mac_init/3 instead)
  • crypto:hmac_update/2 (use crypto:mac_update/2 instead)
  • crypto:next_iv/_ (see the 'New and Old API' chapter of the CRYPTO User's guide)
  • crypto:poly1305/2 (use crypto:mac/3 instead)
  • crypto:stream_decrypt/2 (use crypto:crypto_update/2 instead)
  • crypto:stream_encrypt/2 (use crypto:crypto_update/2 instead)
  • crypto:stream_init/_ (use crypto:crypto_init/3 + crypto:crypto_update/2 + crypto:crypto_final/1 or crypto:crypto_one_time/4 instead)
  • filename:find_src/_ (use filelib:find_source/1,3 instead)
  • pg2:_/_ (this module was removed in OTP 24. Use 'pg' instead)
  • ssl:cipher_suites/0 (use cipher_suites/2,3 instead)
  • ssl:cipher_suites/1 (use cipher_suites/2,3 instead)
  • ssl:ssl_accept/_ (use ssl_handshake/1,2,3 instead)

2.3  OTP 23

Functions Removed in OTP 23

  • erlang:get_stacktrace/0 (use the new try/catch syntax for retrieving the stack backtrace)
  • httpd_conf:check_enum/2 (use lists:member/2 instead)
  • httpd_conf:clean/1 (use sting:strip/1 instead or possibly the re module)
  • httpd_conf:custom_clean/3 (use sting:strip/1 instead or possibly the re module)
  • httpd_conf:is_directory/1 (use filelib:is_dir/1 instead)
  • httpd_conf:is_file/1 (use filelib:is_file/1 instead)
  • httpd_conf:make_integer/1 (use erlang:list_to_integer/1 instead)

2.4  OTP 22

Functions Removed in OTP 22

  • os_mon_mib:_/_ (this module was removed in OTP 22.0)

2.5  OTP 20

Functions Removed in OTP 20

  • asn1ct:decode/_ (use Mod:decode/2 instead)
  • asn1ct:encode/_ (use Mod:encode/2 instead)
  • erlang:hash/2 (use erlang:phash2/2 instead)
  • ssl:connection_info/1 (use ssl:connection_information/[1,2] instead)
  • ssl:negotiated_next_protocol/1 (use ssl:negotiated_protocol/1 instead)

2.6  OTP 19

Functions Removed in OTP 19

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