From 81c74ac328118d6168c2946008617286ca750b3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Wed, 13 May 2020 11:26:39 +0200 Subject: OTP-23.0 --- early-plugins.mk | 8 +- release-notes/OTP-23.0.README.txt | 3199 +++++++++++++++++++++++++++++++++++++ 2 files changed, 3204 insertions(+), 3 deletions(-) create mode 100644 release-notes/OTP-23.0.README.txt diff --git a/early-plugins.mk b/early-plugins.mk index a04ff61..6cf8a8c 100644 --- a/early-plugins.mk +++ b/early-plugins.mk @@ -28,7 +28,7 @@ OTP-19 := OTP-19.0.7 OTP-19.1.6 OTP-19.2.3 OTP-19.3.6.13 OTP-20 := OTP-20.0.5 OTP-20.1.7 OTP-20.2.4 OTP-20.3.8.26 OTP-21 := OTP-21.0.9 OTP-21.1.4 OTP-21.2.7 OTP-21.3.8.15 OTP-22 := OTP-22.0.7 OTP-22.1.8 OTP-22.2.8 OTP-22.3.4 -OTP-23 := OTP-23.0-rc3 +OTP-23 := OTP-23.0 OTP-18+ := $(OTP-18) $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) OTP-19+ := $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) @@ -84,7 +84,7 @@ OTP-22-DROPPED := OTP-22.0-rc1 OTP-22.0-rc2 OTP-22.0-rc3 OTP-22.0 \ OTP-22.1.6 OTP-22.1.7 OTP-22.2 OTP-22.2.1 OTP-22.2.2 OTP-22.2.3 \ OTP-22.2.4 OTP-22.2.6 OTP-22.2.7 OTP-22.3 OTP-22.3.1 OTP-22.3.2 \ OTP-22.3.3 -OTP-23-DROPPED := OTP-23.0-rc1 OTP-23.0-rc2 +OTP-23-DROPPED := OTP-23.0-rc1 OTP-23.0-rc2 OTP-23.0-rc3 OTP-DROPPED := $(OTP-18-DROPPED) $(OTP-19-DROPPED) $(OTP-20-DROPPED) \ $(OTP-21-DROPPED) $(OTP-22-DROPPED) $(OTP-23-DROPPED) @@ -162,7 +162,7 @@ WINDOWS-OTP-19 := 19.0 19.1 19.2 19.3 WINDOWS-OTP-20 := 20.0 20.1 20.2 20.3 WINDOWS-OTP-21 := 21.0.1 21.1 21.2 21.3 WINDOWS-OTP-22 := 22.0 22.1 22.2 22.3 -WINDOWS-OTP-23 := +WINDOWS-OTP-23 := 23.0 WINDOWS-OTP-18+ := $(WINDOWS-OTP-18) $(WINDOWS-OTP-19) $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) \ $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) @@ -215,6 +215,8 @@ WINDOWS-OTP-22.1-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl10.5/bin) WINDOWS-OTP-22.2-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl10.6/bin) WINDOWS-OTP-22.3-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl10.7/bin) +WINDOWS-OTP-23.0-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl11.0/bin) + # We have to duplicate this for it to work as # it is not yet defined when we define this. ci_windows_verbose_0 = @echo " CI " $(1); diff --git a/release-notes/OTP-23.0.README.txt b/release-notes/OTP-23.0.README.txt new file mode 100644 index 0000000..e8b2150 --- /dev/null +++ b/release-notes/OTP-23.0.README.txt @@ -0,0 +1,3199 @@ +Inital Release: OTP 23.0 +Git Tag: OTP-23.0 +Date: 2020-05-13 +Trouble Report Id: OTP-10278, OTP-11688, OTP-13450, OTP-13812, + OTP-14708, OTP-14734, OTP-14790, OTP-15077, + OTP-15232, OTP-15247, OTP-15251, OTP-15299, + OTP-15434, OTP-15517, OTP-15589, OTP-15603, + OTP-15618, OTP-15695, OTP-15744, OTP-15800, + OTP-15812, OTP-15835, OTP-15837, OTP-15840, + OTP-15842, OTP-15866, OTP-15868, OTP-15915, + OTP-15925, OTP-15948, OTP-15950, OTP-15956, + OTP-15967, OTP-15995, OTP-15998, OTP-15999, + OTP-16005, OTP-16007, OTP-16008, OTP-16014, + OTP-16026, OTP-16029, OTP-16055, OTP-16072, + OTP-16073, OTP-16105, OTP-16120, OTP-16127, + OTP-16128, OTP-16148, OTP-16155, OTP-16160, + OTP-16168, OTP-16171, OTP-16189, OTP-16210, + OTP-16214, OTP-16215, OTP-16222, OTP-16229, + OTP-16232, OTP-16237, OTP-16244, OTP-16250, + OTP-16251, OTP-16252, OTP-16260, OTP-16264, + OTP-16270, OTP-16273, OTP-16275, OTP-16276, + OTP-16283, OTP-16284, OTP-16289, OTP-16312, + OTP-16327, OTP-16328, OTP-16329, OTP-16345, + OTP-16346, OTP-16347, OTP-16362, OTP-16363, + OTP-16367, OTP-16368, OTP-16369, OTP-16370, + OTP-16386, OTP-16391, OTP-16394, OTP-16395, + OTP-16398, OTP-16400, OTP-16402, OTP-16406, + OTP-16407, OTP-16419, OTP-16429, OTP-16431, + OTP-16432, OTP-16453, OTP-16454, OTP-16455, + OTP-16463, OTP-16469, OTP-16470, OTP-16478, + OTP-16480, OTP-16482, OTP-16483, OTP-16484, + OTP-16487, OTP-16489, OTP-16490, OTP-16492, + OTP-16494, OTP-16495, OTP-16496, OTP-16497, + OTP-16499, OTP-16500, OTP-16501, OTP-16502, + OTP-16503, OTP-16504, OTP-16505, OTP-16506, + OTP-16508, OTP-16509, OTP-16510, OTP-16511, + OTP-16512, OTP-16513, OTP-16516, OTP-16519, + OTP-16521, OTP-16523, OTP-16530, OTP-16531, + OTP-16532, OTP-16533, OTP-16535, OTP-16540, + OTP-16541, OTP-16543, OTP-16544, OTP-16545, + OTP-16547, OTP-16549, OTP-16550, OTP-16551, + OTP-16552, OTP-16554, OTP-16557, OTP-16561, + OTP-16562, OTP-16563, OTP-16570, OTP-16571, + OTP-16573, OTP-16576, OTP-16579, OTP-16583, + OTP-16584, OTP-16585, OTP-16589, OTP-16594, + OTP-16596, OTP-16601, OTP-16602, OTP-16603, + OTP-16604, OTP-16607, OTP-16615, OTP-16616, + OTP-16617, OTP-16620, OTP-16622, OTP-16623, + OTP-16624, OTP-16626, OTP-16627, OTP-16630, + OTP-16632, OTP-16633, OTP-16634, OTP-16635, + OTP-16638 +Seq num: ERIERL-402, ERIERL-476, ERIERL-477, ERL-1002, + ERL-1003, ERL-1051, ERL-1053, ERL-1057, + ERL-1058, ERL-1105, ERL-1115, ERL-1134, + ERL-1150, ERL-1154, ERL-1168, ERL-1178, + ERL-1186, ERL-1189, ERL-1196, ERL-1206, + ERL-1208, ERL-1227, ERL-1232, ERL-1234, + ERL-303, ERL-476, ERL-496, ERL-560, ERL-592, + ERL-700, ERL-708, ERL-716, ERL-825, ERL-927, + ERL-991 +System: OTP +Release: 23 +Application: asn1-5.0.13, common_test-1.19, compiler-7.6, + crypto-4.7, debugger-5.0, dialyzer-4.2, + edoc-0.12, erl_docgen-1.0, erl_interface-4.0, + erts-11.0, eunit-2.5, hipe-4.0, inets-7.2, + jinterface-1.11, kernel-7.0, megaco-3.19, + mnesia-4.17, observer-2.9.4, odbc-2.13, + os_mon-2.5.2, parsetools-2.2, public_key-1.8, + runtime_tools-1.15, sasl-4.0, snmp-5.6, + ssh-4.10, ssl-10.0, stdlib-3.13, + syntax_tools-2.3, tools-3.4, wx-1.9.1, + xmerl-1.3.25 +Predecessor: OTP + + Check out the git tag OTP-23.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-13450 Application(s): kernel + Related Id(s): OTP-15251 + + *** POTENTIAL INCOMPATIBILITY *** + + A new module erpc has been introduced in the kernel + application. The erpc module implements an enhanced + subset of the operations provided by the rpc module. + Enhanced in the sense that it makes it possible to + distinguish between returned value, raised exceptions, + and other errors. erpc also has better performance and + scalability than the original rpc implementation. This + by utilizing the newly introduced spawn_request() BIF. + Also the rpc module benefits from these improvements by + utilizing erpc when it is possible. + + This change has been marked as a potential + incompatibility since rpc:block_call() now only is + guaranteed to block other block_call() operations. The + documentation previously claimed that it would block + all rpc operations. This has however never been the + case. It previously did not block node-local + block_call() operations. + + + OTP-14708 Application(s): compiler, debugger, erts + + EEP-52 has been implemented. + + In binary matching, the size of the segment to be + matched is now allowed to be a guard expression, and + similarly in map matching the keys can now be guard + expressions. See the Erlang Reference Manual and + Programming Examples for more details. + + Language compilers or code generators that generate + Core Erlang code may need to be updated to be + compatible with the compiler in OTP 23. For more + details, see the section Backwards Compatibility in EEP + 52. + + + OTP-15247 Application(s): public_key, ssl + + Added support for RSA-PSS signature schemes + + + OTP-15251 Application(s): erts + + Improvements of distributed spawn operations. These + include both scalability and performance improvements + as well as new functionality. + + New functionality: + + -- A distributed spawn_monitor() BIF. + + -- Support for monitor option in the distributed + spawn_opt() BIF. + + -- New spawn_request() BIFs for asynchronous spawn of + processes. spawn_request() supports all options that + spawn_opt() support plus a few more. + + + OTP-15434 Application(s): ssh + + OpenSSH 6.5 introduced a new file representation of + keys called openssh-key-v1. + + OTP/SSH had an experimental implementation of this + format. That implementation is now improved and + supported with the exception of handling encrypted + keys. + + + OTP-15589 Application(s): ssl + + Improve interoperability by implementing the middlebox + compatiblity mode. + + The middlebox compatibility mode makes the TLS 1.3 + handshake look more like a TLS 1.2 handshake and + increases the chance of successfully establishing TLS + 1.3 connections through legacy middleboxes. + + + OTP-15744 Application(s): erts, stdlib + Related Id(s): OTP-15623, PR-2229 + + Improved ETS scalability of concurrent calls that + change the size of a table, like ets:insert/2 and + ets:delete/2. + + This performance feature was implemented for + ordered_set in OTP 22.0 and does now apply for all ETS + table types. + + The improved scalability may come at the cost of longer + latency of ets:info(T,size) and ets:info(T,memory). A + new table option decentralized_counters has therefore + been added. It is default true for ordered_set with + write_concurrency enabled and default false for all + other table types. + + + OTP-15998 Application(s): ssh + Related Id(s): PR-2368, PR-2376 + + TCP/IP port forwarding, a.k.a tunneling a.k.a + tcp-forward/direct-tcp is implemented. In the OpenSSH + client, this corresponds to the options -L and -R. + + The client or server listens to a specified socket, and + when something connects to it with TCP/IP, that + connection is forwarded in an encrypted tunnel to the + peer. The peer then connects to a predefined IP/port + pair and then acts as a proxy. + + See the manual, ssh:tcpip_tunnel_to_server/6 and + ssh:tcpip_tunnel_from_server/6. + + The functionality is disabled per default but can be + enabled when starting a daemon. + + + OTP-16007 Application(s): compiler + Related Id(s): PR-2324 + + Allow underscores in numeric literals to improve + readability. Examples: 123_456_789, 16#1234_ABCD. + + + OTP-16214 Application(s): compiler + Related Id(s): PR-2460 + + Improved the type optimization pass' inference of types + that depend on themselves, giving us more accurate + types and letting us track the content types of lists. + + + OTP-16222 Application(s): stdlib + + New functions have been added to c(3) for printing + embedded documentation for Erlang modules. The + functions are: + + -- h/1,2,3 -- Print the documentation for a + Module:Function/Arity. + + -- ht/1,2,3 -- Print the type documentation for a + Module:Type/Arity. + + The embedded documentation is created when building the + Erlang/OTP documentation. + + + OTP-16232 Application(s): crypto + + As announced in OTP 22.0, a New API was introduced in + CRYPTO. See the New and Old API chapter in the CRYPTO + User's Guide for more information and suggested + replacement functions. + + The Old API is now deprecated in OTP-23.0 and will be + removed in OTP-24.0. + + This deprecation includes cipher names. See the section + Retired cipher names in the crypto User's Guide, + chapter The Old API. + + + OTP-16250 Application(s): erts, kernel + + The possibility to run Erlang distribution without + relying on EPMD has been extended. To achieve this a + couple of new options to the inet distribution has been + added. + + -- -dist_listen false -- Setup the distribution + channel, but do not listen for incoming connection. + This is useful when you want to use the current node to + interact with another node on the same machine without + it joining the entire cluster. + + -- -erl_epmd_port Port -- Configure a default port that + the built-in EPMD client should return. This allows the + local node to know the port to connect to for any other + node in the cluster. + + The erl_epmd callback API has also been extended to + allow returning -1 as the creation which means that a + random creation will be created by the node. + + In addition a new callback function called + listen_port_please has been added that allows the + callback to return which listen port the distribution + should use. This can be used instead of + inet_dist_listen_min/max if the listen port is to be + fetched from an external service. + + + OTP-16260 Application(s): kernel + Related Id(s): OTP-15403 + + A first EXPERIMENTAL module that is a socket backend to + gen_tcp and inet has been implemented. Others will + follow. Feedback will be appreciated. + + + OTP-16400 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + This change adds TLS-1.3 to the list of default + supported versions. That is, TLS-1.3 and TLS-1.2 are + configured when ssl option 'versions' is not explicitly + set. + + + OTP-16406 Application(s): erl_docgen, otp + + Embedded documentation (also known as Documentation + Chunks) is now also available in the form of files + according to EEP-48. The Documentation Chunks are + produced by default when building the other Erlang/OTP + documentation. If you want to only build the embedded + documentation you can pass the DOC_TARGETS=chunks + environment variable to make. + + + OTP-16453 Application(s): kernel + Related Id(s): PR-2524 + + A new implementation of distributed named process + groups has been introduced. It is available in the pg + module. + + Note that this pg module only has the name in common + with the experimental pg module that was present in + stdlib up until OTP 17. + + Thanks to Maxim Fedorov for the implementation. + + + OTP-16484 Application(s): debugger, erts, hipe + + *** POTENTIAL INCOMPATIBILITY *** + + The deprecated erlang:get_stacktrace/0 BIF now returns + an empty list instead of a stacktrace. To retrieve the + stacktrace, use the extended try/catch syntax that was + introduced in OTP 21. erlang:get_stacktrace/0 is + scheduled for removal in OTP 24. + + + OTP-16501 Application(s): stdlib + Related Id(s): ERL-708, OTP-16222, OTP-16406, + OTP-16494, OTP-16499, OTP-16500, PR-2545 + + Module and function auto-completion in the shell now + looks at all available modules instead of only those + loaded. A module is considered available if it either + is loaded already or would be loaded if called. + + The auto-completion has also been expanded to work in + the new h/1,2,3 function in c(3). + + + OTP-16506 Application(s): ssh + + The default known_hosts file handling is improved to + include ports. + + The handling of the contents in that file is updated to + support the full syntax, with exception of 1) the + wildcard '?', 2) wildcards in canonical names and 3) + the option '@cert-authority' + + + OTP-16513 Application(s): ssh + + The ssh agent is now implemented in the ssh_agent key + callback module. + + Enable with the the option {key_cb, {ssh_agent, []}} in + for example ssh:connect/3. + + See the ssh_agent manual for details. + + + OTP-16540 Application(s): ssh + + Algorithm configuration could now be done in a .config + file. + + This is useful for example to enable an algorithm that + is disabled by default. It could now be enabled in an + .config-file without changing the code, + + See the SSH User's Guide chapter "Configuration in + SSH". + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-13450 Application(s): kernel + Related Id(s): OTP-15251 + + *** HIGHLIGHT *** + + A new module erpc has been introduced in the kernel + application. The erpc module implements an enhanced + subset of the operations provided by the rpc module. + Enhanced in the sense that it makes it possible to + distinguish between returned value, raised exceptions, + and other errors. erpc also has better performance and + scalability than the original rpc implementation. This + by utilizing the newly introduced spawn_request() BIF. + Also the rpc module benefits from these improvements by + utilizing erpc when it is possible. + + This change has been marked as a potential + incompatibility since rpc:block_call() now only is + guaranteed to block other block_call() operations. The + documentation previously claimed that it would block + all rpc operations. This has however never been the + case. It previously did not block node-local + block_call() operations. + + + OTP-14790 Application(s): ssl + + Drop support for SSL-3.0. Support for this legacy TLS + version has not been enabled by default since OTP 19. + Now all code to support it has been removed, that is + SSL-3.0 protocol version can not be used and is + considered invalid. + + + OTP-16168 Application(s): erts + Related Id(s): ERL-1053 + + erlang:decode_packet with type set to httph no longer + accepts http headers that have whitespaces in between + the header name and the colon. That is: + + Content-Type : text/html + + is no longer allowed. This has been changed to conform + with RFC 7230 and thus protect against http desync + attacks. + + + OTP-16215 Application(s): erts + + Removed the scheduler_poll and async I/O dtrace and + LTTng trace probes. + + + OTP-16244 Application(s): erts + Related Id(s): ERL-1051 + + Fix the quoting rules in erl -args_file, ERL_FLAGS, + ERL_AFLAGS and ERL_ZFLAGS to work as unix sh quoting. + + This bug fix can make previous configuration options to + erl passed through ERL_FLAGS, ERL_AFLAGS, ERL_ZFLAGS or + -args_file not be interpreted in the same way as before + the fix. + + + OTP-16328 Application(s): erl_interface + + As announced in OTP 22.0, the deprecated parts of + erl_interface have now been removed (essentially all C + functions with prefix erl_). + + + OTP-16329 Application(s): erl_interface, erts, otp + Related Id(s): OTP-15621 + + As announced in OTP 22.0, the previously existing + limited support for VxWorks has now been removed. + + + OTP-16400 Application(s): ssl + + *** HIGHLIGHT *** + + This change adds TLS-1.3 to the list of default + supported versions. That is, TLS-1.3 and TLS-1.2 are + configured when ssl option 'versions' is not explicitly + set. + + + OTP-16455 Application(s): kernel + + The pg2 module has been deprecated. It has also been + scheduled for removal in OTP 24. + + You are advised to replace the usage of pg2 with the + newly introduced pg module. pg has a similar API, but + with a more scalable implementation. + + + OTP-16484 Application(s): debugger, erts, hipe + + *** HIGHLIGHT *** + + The deprecated erlang:get_stacktrace/0 BIF now returns + an empty list instead of a stacktrace. To retrieve the + stacktrace, use the extended try/catch syntax that was + introduced in OTP 21. erlang:get_stacktrace/0 is + scheduled for removal in OTP 24. + + + OTP-16495 Application(s): kernel + + As of OTP 23, the distributed disk_log feature has been + deprecated. It has also been scheduled for removal in + OTP 24. + + + OTP-16502 Application(s): kernel + + code:lib_dir/1 has been fixed to also return the lib + dir for erts. + + This is been marked as an incompatibility for any + application that depended on {error,bad_name} to be + returned for erts. + + + OTP-16503 Application(s): erl_docgen + + The seealso tag has been replaced with type aware tags + instead. The new tags are: + seemfa|seeerl|seetype|seeapp|seecom|seecref|seefile|seeguide. + + fsdescription has been added for adding a title to + groups of functions, for instance Module Callbacks. + + The dtds of all documentation files have been trimmed + from all unused or rarely-used tags. + + Unused dtds have been removed. + + + OTP-16509 Application(s): ssh + + The key-exchange algorithms + 'diffie-hellman-group14-sha1' and + 'diffie-hellman-group-exchange-sha1' are disabled per + default. The reason is that SHA1 now is considered + insecure. + + They can be enabled if needed, see SSH (App). + + + OTP-16510 Application(s): ssh + + The public key algorithm 'ssh-dss' is disabled per + default. The reason is that it is now considered as + insecure. + + It can be enabled if needed, see SSH (App). + + + OTP-16511 Application(s): ssh + + The public key 'ssh-rsa' is now considered as insecure + because of its usage of SHA1. + + It is therefore deprecated and will no longer be + enabled per default in OTP-24.0. + + + OTP-16603 Application(s): sasl + + systools:make_tar/1,2 now filters out any tools from + erts if included in the release tar ball. See the + documentation for more details. + + + OTP-16630 Application(s): erl_interface + + The erl_interface registry functionality is deprecated + as of OTP 23, and will be removed in OTP 24. Reasonably + new gcc compilers will issue deprecation warnings when + using this functionality. In order to disable these + warnings, define the macro EI_NO_DEPR_WARN. + + + --------------------------------------------------------------------- + --- OTP-23.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16394 Application(s): otp + Related Id(s): PR-2450 + + The Android cross-compilation support has been updated + to support Android 4.1 and 5.0. + + + --- Improvements and New Features --- + + OTP-15812 Application(s): otp + + Add new "make test" target for simplified test + execution. Read more in HOWTO/TESTING.md. + + + OTP-15915 Application(s): otp + + Added make dialyzer to top-level makefile and each + application. + + + OTP-16264 Application(s): otp + + Updated the Android build instructions + + + OTP-16329 Application(s): erl_interface, erts, otp + Related Id(s): OTP-15621 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced in OTP 22.0, the previously existing + limited support for VxWorks has now been removed. + + + OTP-16406 Application(s): erl_docgen, otp + + *** HIGHLIGHT *** + + Embedded documentation (also known as Documentation + Chunks) is now also available in the form of files + according to EEP-48. The Documentation Chunks are + produced by default when building the other Erlang/OTP + documentation. If you want to only build the embedded + documentation you can pass the DOC_TARGETS=chunks + environment variable to make. + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + OTP-16551 Application(s): otp + + Starting from OTP 23, the pages in the documentation + for which functions that are deprecated and scheduled + for removal are now up to date. + + + --------------------------------------------------------------------- + --- asn1-5.0.13 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16490 Application(s): asn1 + + Adhere to the ASN.1 specification for hstring & + bstring lexical items. That is they may include white + space. + + + --- Improvements and New Features --- + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + OTP-16554 Application(s): asn1 + Related Id(s): ERL-1189 + + Improve handling of ellipsis in a CHOICE + + + Full runtime dependencies of asn1-5.0.13: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.19 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16029 Application(s): common_test + Related Id(s): PR-2145 + + The function ct_property_test:init_tool/1 is added for + the cases when the user does not want ct_property_test + to compile properties. init_tool/1 can be used to set + the property_test_tool config value. + + + OTP-16273 Application(s): common_test + + The built-in Common Test Hook, cth_log_redirect, has + been updated to use the system default Logger handler's + configuration instead of its own. See the section on + Built-in Hooks in the Common Test User's Guide. + + + OTP-16346 Application(s): common_test, public_key, snmp, ssh, + ssl + + Calls of deprecated functions in the Old Crypto API are + replaced by calls of their substitutions. + + + Full runtime dependencies of common_test-1.19: compiler-6.0, + crypto-3.6, debugger-4.1, erts-7.0, ftp-1.0.0, inets-6.0, kernel-4.0, + observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0, + stdlib-3.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 + + + --------------------------------------------------------------------- + --- compiler-7.6 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15837 Application(s): compiler, erts + + erlang:fun_info(fun foo/1, name/1) used to return a + function name based on the name of the function that + fun foo/1 was used in. The name returned is now + -fun.foo/1-. + + + OTP-16516 Application(s): compiler, stdlib + + Initialization of record fields using _ is no longer + allowed if the number of affected fields is zero. + + + --- Improvements and New Features --- + + OTP-14708 Application(s): compiler, debugger, erts + + *** HIGHLIGHT *** + + EEP-52 has been implemented. + + In binary matching, the size of the segment to be + matched is now allowed to be a guard expression, and + similarly in map matching the keys can now be guard + expressions. See the Erlang Reference Manual and + Programming Examples for more details. + + Language compilers or code generators that generate + Core Erlang code may need to be updated to be + compatible with the compiler in OTP 23. For more + details, see the section Backwards Compatibility in EEP + 52. + + + OTP-16007 Application(s): compiler + Related Id(s): PR-2324 + + *** HIGHLIGHT *** + + Allow underscores in numeric literals to improve + readability. Examples: 123_456_789, 16#1234_ABCD. + + + OTP-16214 Application(s): compiler + Related Id(s): PR-2460 + + *** HIGHLIGHT *** + + Improved the type optimization pass' inference of types + that depend on themselves, giving us more accurate + types and letting us track the content types of lists. + + + OTP-16367 Application(s): compiler + Related Id(s): OTP-15251 + + Support message queue optimization also for references + returned from the new spawn_request() BIFs. + + + OTP-16429 Application(s): compiler, stdlib + Related Id(s): ERL-303 + + The compiler will now raise a warning when inlining is + used in modules that load NIFs. + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + OTP-16505 Application(s): compiler + Related Id(s): ERL-1178 + + Line information was sometimes incorrect for + floating-point math exceptions. + + + OTP-16523 Application(s): compiler + Related Id(s): ERL-1058 + + The debug_info option can now be specified in + -compile() attributes. + + + OTP-16543 Application(s): compiler, erts + Related Id(s): ERL-1186 + + Reduced the resource usage of erlc in parallel builds + (e.g. make -j128). + + + Full runtime dependencies of compiler-7.6: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-4.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16579 Application(s): crypto + Related Id(s): ERL-825 + + Crypto reported unsupported elliptic curves as + supported on e.g Fedora distros. + + + --- Improvements and New Features --- + + OTP-15967 Application(s): crypto + Related Id(s): PR-2329 + + Support for ed25519 and ed448 added to + crypto:generate_key. + + + OTP-16160 Application(s): crypto + + The new crypto functions api (crypto_init, + crypto_update and crypto_one_time) has been updated. + + There is now a function crypto_final/1 and a + possibility to set options in crypto_init/3 and + crypto_init/4. See the manual for details. + + + OTP-16232 Application(s): crypto + + *** HIGHLIGHT *** + + As announced in OTP 22.0, a New API was introduced in + CRYPTO. See the New and Old API chapter in the CRYPTO + User's Guide for more information and suggested + replacement functions. + + The Old API is now deprecated in OTP-23.0 and will be + removed in OTP-24.0. + + This deprecation includes cipher names. See the section + Retired cipher names in the crypto User's Guide, + chapter The Old API. + + + OTP-16369 Application(s): crypto + Related Id(s): PR-2474 + + Fix C-compilation without deprecated OpenSSL cryptolib + APIs + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + OTP-16583 Application(s): crypto + + Added missing 'eddh' to crypto:supports(public_keys). + + + Full runtime dependencies of crypto-4.7: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-5.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-14708 Application(s): compiler, debugger, erts + + *** HIGHLIGHT *** + + EEP-52 has been implemented. + + In binary matching, the size of the segment to be + matched is now allowed to be a guard expression, and + similarly in map matching the keys can now be guard + expressions. See the Erlang Reference Manual and + Programming Examples for more details. + + Language compilers or code generators that generate + Core Erlang code may need to be updated to be + compatible with the compiler in OTP 23. For more + details, see the section Backwards Compatibility in EEP + 52. + + + OTP-16484 Application(s): debugger, erts, hipe + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The deprecated erlang:get_stacktrace/0 BIF now returns + an empty list instead of a stacktrace. To retrieve the + stacktrace, use the extended try/catch syntax that was + introduced in OTP 21. erlang:get_stacktrace/0 is + scheduled for removal in OTP 24. + + + Full runtime dependencies of debugger-5.0: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16055 Application(s): dialyzer + Related Id(s): ERL-1002 + + Improve handling of maps:remove/2. + + + Full runtime dependencies of dialyzer-4.2: compiler-7.0, erts-9.0, + hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-0.12 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15999 Application(s): edoc + Related Id(s): PR-2317 + + Remove Inets dependency from EDoc. + + + OTP-16407 Application(s): edoc + Related Id(s): PR-2430 + + Add support for overloaded Erlang specifications. + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + Full runtime dependencies of edoc-0.12: erts-6.0, kernel-3.0, + stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_docgen-1.0 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16406 Application(s): erl_docgen, otp + + *** HIGHLIGHT *** + + Embedded documentation (also known as Documentation + Chunks) is now also available in the form of files + according to EEP-48. The Documentation Chunks are + produced by default when building the other Erlang/OTP + documentation. If you want to only build the embedded + documentation you can pass the DOC_TARGETS=chunks + environment variable to make. + + + OTP-16497 Application(s): erl_docgen + + Minor DTD additions. + + + OTP-16503 Application(s): erl_docgen + + *** POTENTIAL INCOMPATIBILITY *** + + The seealso tag has been replaced with type aware tags + instead. The new tags are: + seemfa|seeerl|seetype|seeapp|seecom|seecref|seefile|seeguide. + + fsdescription has been added for adding a title to + groups of functions, for instance Module Callbacks. + + The dtds of all documentation files have been trimmed + from all unused or rarely-used tags. + + Unused dtds have been removed. + + + Full runtime dependencies of erl_docgen-1.0: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-4.0 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15800 Application(s): erl_interface, erts, odbc, os_mon, wx + + Fix various compiler warnings on 64-bit Windows. + + + OTP-16604 Application(s): erl_interface + + erl_call will now work properly on systems that cannot + resolve their own hostname. + + + OTP-16623 Application(s): erl_interface + + Various bug fixes: + + -- Internal error checking in various functions. + + -- ei_rpc() accepted any 2-tuple message as an rpc + response. + + -- ei_decode_ref() now refuse to write outside of + allocated memory in case a huge reference is decoded. + + -- ei_decode_ei_term() now reports the same term types + as ei_get_type(). + + + --- Improvements and New Features --- + + OTP-13812 Application(s): erl_interface, kernel + + A client node can receive its node name dynamically + from the node that it first connects to. This featured + can by used by + + -- starting with erl -sname undefined + + -- erl_interface functions ei_connect_init and friends + + -- erl_call -R + + + OTP-15603 Application(s): erl_interface, erts, jinterface + + Increased size of node incarnation numbers (aka + "creation"), from 2 bits to 32 bits. This will reduce + the risk of pids/ports/refs, from different node + incarnation with the same name, being mixed up. + + + OTP-15866 Application(s): erl_interface, erts + Related Id(s): PR-2110 + + Fix various build issues when compiling Erlang/OTP to + the IBM AIX platform. + + + OTP-16229 Application(s): erl_interface, jinterface, kernel + + Improved node connection setup handshake protocol. Made + possible to agree on protocol version without + dependence on epmd or other prior knowledge of peer + node version. Also added exchange of node incarnation + ("creation") values and expanded the distribution + capability flag field from 32 to 64 bits. + + + OTP-16251 Application(s): erl_interface + + New erl_call option -address [Host]:Port to connect + directly to a node without being dependent on epmd to + resolve the node name. + + + OTP-16328 Application(s): erl_interface + + *** POTENTIAL INCOMPATIBILITY *** + + As announced in OTP 22.0, the deprecated parts of + erl_interface have now been removed (essentially all C + functions with prefix erl_). + + + OTP-16329 Application(s): erl_interface, erts, otp + Related Id(s): OTP-15621 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced in OTP 22.0, the previously existing + limited support for VxWorks has now been removed. + + + OTP-16496 Application(s): erl_interface + Related Id(s): OTP-16251 + + New function ei_connect_host_port and friends to allow + node connection without being dependent on epmd for + node name resolution. + + + OTP-16594 Application(s): erl_interface + + A number of new functions have been added to the + erl_interface API: + + -- ei_cmp_pids() + + -- ei_cmp_ports() + + -- ei_cmp_refs() + + -- ei_decode_iodata() + + -- ei_make_pid() + + -- ei_make_ref() + + + OTP-16624 Application(s): erl_interface + + Added a -timeout option to erl_call. + + + OTP-16630 Application(s): erl_interface + + *** POTENTIAL INCOMPATIBILITY *** + + The erl_interface registry functionality is deprecated + as of OTP 23, and will be removed in OTP 24. Reasonably + new gcc compilers will issue deprecation warnings when + using this functionality. In order to disable these + warnings, define the macro EI_NO_DEPR_WARN. + + + OTP-16633 Application(s): erl_interface + + Documentation improvements. + + + --- Known Bugs and Problems --- + + OTP-16607 Application(s): erl_interface + Related Id(s): OTP-16608 + + The ei API for decoding/encoding terms is not fully + 64-bit compatible since terms that have a + representation on the external term format larger than + 2 GB cannot be handled. + + + --------------------------------------------------------------------- + --- erts-11.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14734 Application(s): erts + Related Id(s): ERL-496 + + BIFs now behave like ordinary functions with regard to + tracing, allowing call_count tracing and fixing a few + bugs where return trace messages were lost when BIFs + tail-called themselves or other functions ("trapping"). + + + OTP-15800 Application(s): erl_interface, erts, odbc, os_mon, wx + + Fix various compiler warnings on 64-bit Windows. + + + OTP-15837 Application(s): compiler, erts + + erlang:fun_info(fun foo/1, name/1) used to return a + function name based on the name of the function that + fun foo/1 was used in. The name returned is now + -fun.foo/1-. + + + OTP-16155 Application(s): erts + Related Id(s): PR-2408 + + file:allocate/3 will now update the file size on all + platforms. + + + OTP-16168 Application(s): erts + Related Id(s): ERL-1053 + + *** POTENTIAL INCOMPATIBILITY *** + + erlang:decode_packet with type set to httph no longer + accepts http headers that have whitespaces in between + the header name and the colon. That is: + + Content-Type : text/html + + is no longer allowed. This has been changed to conform + with RFC 7230 and thus protect against http desync + attacks. + + + OTP-16244 Application(s): erts + Related Id(s): ERL-1051 + + *** POTENTIAL INCOMPATIBILITY *** + + Fix the quoting rules in erl -args_file, ERL_FLAGS, + ERL_AFLAGS and ERL_ZFLAGS to work as unix sh quoting. + + This bug fix can make previous configuration options to + erl passed through ERL_FLAGS, ERL_AFLAGS, ERL_ZFLAGS or + -args_file not be interpreted in the same way as before + the fix. + + + OTP-16284 Application(s): erts, kernel + + Fix the Erlang distribution to handle the scenario when + a node connects that can handle message fragmentation + but can not handle the atom cache. This bug only + affects users that have implemented a custom + distribution carrier. It has been present since OTP-21. + + The DFLAG_FRAGMENT distribution flag was added to the + set of flags that can be rejected by a distribution + implementation. + + + OTP-16431 Application(s): erts, stdlib + Related Id(s): ERL-592 + + Compiling a match specification with excessive nesting + caused the runtime system to crash due to scheduler + stack exhaustion. Instead of crashing the runtime + system, effected functions will now raise a + system_limit error exception in this situation. + + + OTP-16478 Application(s): erts + Related Id(s): ERL-1115 + + Fixed a bug that prevented Erlang from being started on + Windows if it were installed on certain paths. + + + OTP-16521 Application(s): erts + Related Id(s): ERL-716 + + Fix bug on Windows causing bad performance when + standard input is closed, especially if the VM is only + assigned one CPU core. Could be provoked for example by + starting erl or escript via function os:cmd/1. Could be + avoided with command line option -noinput. + + The bad performance was caused by an io thread spinning + indefinitely. + + + OTP-16571 Application(s): erts + + Fixed a bug on Unix platforms that would cause + file:read_file_info/1 to return incorrect results if + the emulator's effective user or group id differed from + its actual ones. + + + OTP-16576 Application(s): erts + Related Id(s): ERL-1208 + + socket: Compile problems on Android when + PACKET_FASTROUTE and PACKET_USER are both defined and + has the same value. Use of PACKET_FASTROUTE has been + removed as it may be unused and also only for none + user-land. + + + OTP-16596 Application(s): erts + Related Id(s): ERL-1105, PR-2606 + + Fixed bug in erl_crash.dump generation that could cause + a SEGV core dump if a recently cancelled timer was + found. + + + --- Improvements and New Features --- + + OTP-10278 Application(s): erts + + Improved concurrency of erlang:load_nif/2 as it does no + longer block other schedulers from executing during + initial load of a NIF library. + + + OTP-14708 Application(s): compiler, debugger, erts + + *** HIGHLIGHT *** + + EEP-52 has been implemented. + + In binary matching, the size of the segment to be + matched is now allowed to be a guard expression, and + similarly in map matching the keys can now be guard + expressions. See the Erlang Reference Manual and + Programming Examples for more details. + + Language compilers or code generators that generate + Core Erlang code may need to be updated to be + compatible with the compiler in OTP 23. For more + details, see the section Backwards Compatibility in EEP + 52. + + + OTP-15077 Application(s): erts + + Internally in BEAM, handling of continuation pointers + has been simplified. This change is not user-visible, + except when examing a process stack in the crashdump + viewer. The continuation pointer for a function will + now be stored below the y(0) for that function. + + + OTP-15232 Application(s): erts + Related Id(s): ERL-700 + + seq_trace tokens are now propagated to spawned + processes. + + + OTP-15251 Application(s): erts + + *** HIGHLIGHT *** + + Improvements of distributed spawn operations. These + include both scalability and performance improvements + as well as new functionality. + + New functionality: + + -- A distributed spawn_monitor() BIF. + + -- Support for monitor option in the distributed + spawn_opt() BIF. + + -- New spawn_request() BIFs for asynchronous spawn of + processes. spawn_request() supports all options that + spawn_opt() support plus a few more. + + + OTP-15517 Application(s): erts + Related Id(s): ERL-560 + + Make ets:insert/2 and ets:insert_new/2 yield scheduler + execution on long lists of records to insert. + + + OTP-15603 Application(s): erl_interface, erts, jinterface + + Increased size of node incarnation numbers (aka + "creation"), from 2 bits to 32 bits. This will reduce + the risk of pids/ports/refs, from different node + incarnation with the same name, being mixed up. + + + OTP-15618 Application(s): erts + + The runtime system can now encode Erlang terms to the + Erlang external term format as I/O vectors. The main + benefit of this is that reference counted binaries can + be referred to directly instead of copied into a new + binary. + + The default Erlang distribution over TCP will always + utilize this. Alternate distribution implementations + utilizing a port as distribution controller will + utilize this if the driver implements the outputv + callback. Alternate Erlang distribution implementations + utilizing a process as distribution controller will + utilize this if I/O vectors are utilized by the + functionality that processes the data returned from + erlang:dist_ctrl_get_data(). + + The return type for data returned by + erlang:dist_ctrl_get_data() has been changed from + iodata() to iovec(). Note that iovec() data is valid + iodata() so old implementations using + erlang:dist_ctrl_get_data() do not need to be changed, + but may benefit from being changed depending on usage + scenario. + + The new BIFs term_to_iovec/1 and term_to_iovec/2 have + been introduced. These work exactly as term_to_binary() + with the corresponding arity except the return type. + + + OTP-15744 Application(s): erts, stdlib + Related Id(s): OTP-15623, PR-2229 + + *** HIGHLIGHT *** + + Improved ETS scalability of concurrent calls that + change the size of a table, like ets:insert/2 and + ets:delete/2. + + This performance feature was implemented for + ordered_set in OTP 22.0 and does now apply for all ETS + table types. + + The improved scalability may come at the cost of longer + latency of ets:info(T,size) and ets:info(T,memory). A + new table option decentralized_counters has therefore + been added. It is default true for ordered_set with + write_concurrency enabled and default false for all + other table types. + + + OTP-15835 Application(s): erts, kernel + Related Id(s): PR-2212 + + Directories can now be opened by file:open/2 when + passing the directory option. + + + OTP-15840 Application(s): erts + + Add Hygon Dhyana as known processor to enable support + for atomic operations. + + + OTP-15842 Application(s): erts + Related Id(s): PR-2182 + + Make erlang:phash2 functions consume reductions + proportional to the size of the input term and yield + scheduler when reductions are depleted. + + + OTP-15866 Application(s): erl_interface, erts + Related Id(s): PR-2110 + + Fix various build issues when compiling Erlang/OTP to + the IBM AIX platform. + + + OTP-15868 Application(s): erts + + Add configure options --enable-pie and --disable-pie to + control the build of position independent executables. + + + OTP-15956 Application(s): erts, kernel + Related Id(s): PR-2231 + + file:read_file_info/2 can now be used on opened files + and directories. + + + OTP-15995 Application(s): erts + Related Id(s): PR-2358 + + Add arity-1 versions of atom_to_binary, binary_to_atom + and binary_to_existing_atom, all with utf8 as default + encoding. + + + OTP-16014 Application(s): erts + Related Id(s): PR-2345 + + Optimized the erts internal hash table implementation + for faster lookups. The internal hash is used for + things like; the process registry, executing + erlang:apply/2, executing M:func(test), and more. + + + OTP-16105 Application(s): erts + Related Id(s): ERL-927 + + CPU quotas are now taken into account when deciding the + default number of online schedulers, improving + performance in container environments where quotas are + applied, such as docker with the --cpus flag. + + + OTP-16148 Application(s): erts, kernel + Related Id(s): PR-2373 + + The -config option to erl now can take multiple config + files without repeating the -config option. Example: + + erl -config sys local + + + OTP-16215 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Removed the scheduler_poll and async I/O dtrace and + LTTng trace probes. + + + OTP-16237 Application(s): erts + Related Id(s): PR-2389 + + Optimized persistent_term:put/2 and erase/1 to consume + less CPU in many cases. + + + OTP-16250 Application(s): erts, kernel + + *** HIGHLIGHT *** + + The possibility to run Erlang distribution without + relying on EPMD has been extended. To achieve this a + couple of new options to the inet distribution has been + added. + + -- -dist_listen false -- Setup the distribution + channel, but do not listen for incoming connection. + This is useful when you want to use the current node to + interact with another node on the same machine without + it joining the entire cluster. + + -- -erl_epmd_port Port -- Configure a default port that + the built-in EPMD client should return. This allows the + local node to know the port to connect to for any other + node in the cluster. + + The erl_epmd callback API has also been extended to + allow returning -1 as the creation which means that a + random creation will be created by the node. + + In addition a new callback function called + listen_port_please has been added that allows the + callback to return which listen port the distribution + should use. This can be used instead of + inet_dist_listen_min/max if the listen port is to be + fetched from an external service. + + + OTP-16270 Application(s): erts + + On systems without closefrom(), such as Linux, + iterating over all possible file descriptors and + calling close() for each is inefficient. This is + markedly so when the maximum number of file descriptors + has been tuned to a large number. + + Instead, in erl_child_setup, walk the open descriptors + under /dev/fd and close only those which are open. + + This optimization affects the CPU usage of starting a + new Erlang instance. + + + OTP-16283 Application(s): erts + Related Id(s): PR-2441 + + Optimized maps:merge/2 for trivial cases of an empty + map(s) or same map. + + + OTP-16312 Application(s): erts, kernel + + The new experimental socket module has been moved to + the Kernel application. + + + OTP-16327 Application(s): erts, runtime_tools, tools + + Improved the presentation of allocations and carriers + in the instrument module. + + + OTP-16329 Application(s): erl_interface, erts, otp + Related Id(s): OTP-15621 + + *** POTENTIAL INCOMPATIBILITY *** + + As announced in OTP 22.0, the previously existing + limited support for VxWorks has now been removed. + + + OTP-16347 Application(s): erts + Related Id(s): PR-2466 + + The return value when using the httph and httph_bin + option to erlang:decode_packet/3 and inet:setopts/2 has + been changed to also include the original header + unmodified. See erlang:decode_packet/3. Example: + + > erlang:decode_packet(httph_bin,<<"HELLO: + hi\r\n\r\n">>,[]). + {ok,{http_header,0,<<"Hello">>,<<"HELLO">>,<<"hi">>},<<"\r\n">>} + + + OTP-16362 Application(s): erts + + Ensure net_kernel:monitor_nodes/1 sends nodedown + messages of a failed connection before nodeup messages + of a reestablished connection toward the same node. + + + OTP-16370 Application(s): erts, kernel + Related Id(s): OTP-15232, OTP-15251 + + Update of sequential tracing to also support other + information transfers than message passing. + + + OTP-16398 Application(s): erts + Related Id(s): ERL-1154 + + socket: It is now possible to create a socket from an + already existing file descriptor. + + + OTP-16432 Application(s): erts + + socket: The socket:supports/1 function now also report + if netns is supported or not. + + + OTP-16454 Application(s): erts + + =:= has been optimized to return false immediately when + comparing two maps of different sizes. + + + OTP-16482 Application(s): erts + + Changed the behaviour of passing the erl command line + argument +A 0 to silently imply +A 1. That is, it will + no longer be possible to completely disable the async + thread pool. Disabling of the async thread pool has + since OTP 21 had no benefits; only lots of drawbacks. + + + OTP-16484 Application(s): debugger, erts, hipe + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The deprecated erlang:get_stacktrace/0 BIF now returns + an empty list instead of a stacktrace. To retrieve the + stacktrace, use the extended try/catch syntax that was + introduced in OTP 21. erlang:get_stacktrace/0 is + scheduled for removal in OTP 24. + + + OTP-16492 Application(s): erts + Related Id(s): PR-2461 + + init:restart/1 has been introduced. init:restart/1 can + be utilized for changing the code loading mode during a + restart. + + + OTP-16530 Application(s): erts, kernel + Related Id(s): OTP-16464 + + Improve configure for the net nif, which should + increase portability. + + + OTP-16535 Application(s): erts, kernel + + socket: Socket counters and socket global counters are + now represented as maps (instead of property lists). + + + OTP-16543 Application(s): compiler, erts + Related Id(s): ERL-1186 + + Reduced the resource usage of erlc in parallel builds + (e.g. make -j128). + + + OTP-16550 Application(s): erts, kernel + Related Id(s): ERIERL-476 + + The experimental socket module has gotten restrictions + removed so now the 'seqpacket' socket type should work + for any communication domain (protocol family) where + the OS supports it, typically the Unix Domain. + + + OTP-16557 Application(s): erts, stdlib + + Updated the internal pcre library to 8.44. + + + OTP-16601 Application(s): erts + Related Id(s): OTP-16577 + + There is now cost in terms of reductions when copying + binary data using the binary syntax. + + + OTP-16602 Application(s): erts + + The executable erl_call is now part of the erts + distribution in addition to erl_interface. + + + OTP-16615 Application(s): erts + + Fix a buffer overflow bug that caused EPMD to consume + 100% CPU after many nodes had been connected on the + same time on NetBSD. + + + OTP-16616 Application(s): erts + + erl -remsh now uses the dynamic node names feature by + default. See the erl documentation for details. + + + OTP-16620 Application(s): erts, kernel + + socket: By default the socket options rcvtimeo and + sndtimeo are now disabled. To enable these, OTP now has + to be built with the configure option + --enable-esock-rcvsndtimeo + + + OTP-16635 Application(s): erts + Related Id(s): ERL-476, PR-2390 + + The environment variable $HOME does no longer have to + be set before Erlang can be started. + + + Full runtime dependencies of erts-11.0: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- eunit-2.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15950 Application(s): eunit + Related Id(s): ERL-991, PR-2316 + + Let eunit_surefire skip invalid XML 1.0 characters. + + + OTP-16275 Application(s): eunit + Related Id(s): PR-2424 + + Add new macro ?capturedOutput for enabling to write + test cases that verify data printed to standard out + + + OTP-16549 Application(s): eunit + Related Id(s): PR-2532 + + Add option to limit print depth of exceptions generated + by eunit test suites. + + + Full runtime dependencies of eunit-2.5: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- hipe-4.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16470 Application(s): hipe + + Fixed a rare miss-compilation of tuple matching. + + + --- Improvements and New Features --- + + OTP-16484 Application(s): debugger, erts, hipe + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + The deprecated erlang:get_stacktrace/0 BIF now returns + an empty list instead of a stacktrace. To retrieve the + stacktrace, use the extended try/catch syntax that was + introduced in OTP 21. erlang:get_stacktrace/0 is + scheduled for removal in OTP 24. + + + Full runtime dependencies of hipe-4.0: compiler-5.0, erts-9.3, + kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-7.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16252 Application(s): inets + + Remove support for deprecated functionality. Support + for mod_esi eval scheme, mod_htacess, mod_browser, + apache config files and deprecated httpd_conf functions + are dropped. Module http_uri is deprecated. + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + Full runtime dependencies of inets-7.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.11 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15603 Application(s): erl_interface, erts, jinterface + + Increased size of node incarnation numbers (aka + "creation"), from 2 bits to 32 bits. This will reduce + the risk of pids/ports/refs, from different node + incarnation with the same name, being mixed up. + + + OTP-16229 Application(s): erl_interface, jinterface, kernel + + Improved node connection setup handshake protocol. Made + possible to agree on protocol version without + dependence on epmd or other prior knowledge of peer + node version. Also added exchange of node incarnation + ("creation") values and expanded the distribution + capability flag field from 32 to 64 bits. + + + --------------------------------------------------------------------- + --- kernel-7.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16008 Application(s): kernel + Related Id(s): PR-2302 + + Fix race condition during shutdown when shell_history + is enabled. The race condition would trigger crashes in + disk_log. + + + OTP-16284 Application(s): erts, kernel + + Fix the Erlang distribution to handle the scenario when + a node connects that can handle message fragmentation + but can not handle the atom cache. This bug only + affects users that have implemented a custom + distribution carrier. It has been present since OTP-21. + + The DFLAG_FRAGMENT distribution flag was added to the + set of flags that can be rejected by a distribution + implementation. + + + OTP-16395 Application(s): kernel + Related Id(s): PR-2444 + + Fix bug where a binary was not allowed to be the format + string in calls to logger:log. + + + OTP-16489 Application(s): kernel + Related Id(s): ERL-1134 + + Fix bug where logger would end up in an infinite loop + when trying to log the crash of a handler or formatter. + + + OTP-16502 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + code:lib_dir/1 has been fixed to also return the lib + dir for erts. + + This is been marked as an incompatibility for any + application that depended on {error,bad_name} to be + returned for erts. + + + OTP-16504 Application(s): kernel + Related Id(s): PR-2328 + + The application stop/1 callback was not called if the + application master of the application terminated. + + + OTP-16627 Application(s): kernel + Related Id(s): PR-2601 + + Fix bug in application:loaded_applications/0 that could + cause it to fail with badarg if for example a + concurrent upgrade/downgrade is running. + + + --- Improvements and New Features --- + + OTP-13450 Application(s): kernel + Related Id(s): OTP-15251 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + A new module erpc has been introduced in the kernel + application. The erpc module implements an enhanced + subset of the operations provided by the rpc module. + Enhanced in the sense that it makes it possible to + distinguish between returned value, raised exceptions, + and other errors. erpc also has better performance and + scalability than the original rpc implementation. This + by utilizing the newly introduced spawn_request() BIF. + Also the rpc module benefits from these improvements by + utilizing erpc when it is possible. + + This change has been marked as a potential + incompatibility since rpc:block_call() now only is + guaranteed to block other block_call() operations. The + documentation previously claimed that it would block + all rpc operations. This has however never been the + case. It previously did not block node-local + block_call() operations. + + + OTP-13812 Application(s): erl_interface, kernel + + A client node can receive its node name dynamically + from the node that it first connects to. This featured + can by used by + + -- starting with erl -sname undefined + + -- erl_interface functions ei_connect_init and friends + + -- erl_call -R + + + OTP-15299 Application(s): kernel, stdlib + + Improved the printout of single line logger events for + most of the OTP behaviours in STDLIB and Kernel. This + includes proc_lib, gen_server, gen_event, gen_statem, + gen_fsm, supervisor, supervisor_bridge and application. + + Improved the chars_limit and depth handling in proc_lib + and when formatting of exceptions. + + + OTP-15695 Application(s): kernel, mnesia, parsetools, sasl, + snmp, stdlib + + Remove usage and documentation of old requests of the + I/O-protocol. + + + OTP-15835 Application(s): erts, kernel + Related Id(s): PR-2212 + + Directories can now be opened by file:open/2 when + passing the directory option. + + + OTP-15948 Application(s): kernel + Related Id(s): PR-2356 + + The check of whether to log or not based on the log + level in logger has been optimized by using + persistent_term to store the log level. + + + OTP-15956 Application(s): erts, kernel + Related Id(s): PR-2231 + + file:read_file_info/2 can now be used on opened files + and directories. + + + OTP-16148 Application(s): erts, kernel + Related Id(s): PR-2373 + + The -config option to erl now can take multiple config + files without repeating the -config option. Example: + + erl -config sys local + + + OTP-16229 Application(s): erl_interface, jinterface, kernel + + Improved node connection setup handshake protocol. Made + possible to agree on protocol version without + dependence on epmd or other prior knowledge of peer + node version. Also added exchange of node incarnation + ("creation") values and expanded the distribution + capability flag field from 32 to 64 bits. + + + OTP-16250 Application(s): erts, kernel + + *** HIGHLIGHT *** + + The possibility to run Erlang distribution without + relying on EPMD has been extended. To achieve this a + couple of new options to the inet distribution has been + added. + + -- -dist_listen false -- Setup the distribution + channel, but do not listen for incoming connection. + This is useful when you want to use the current node to + interact with another node on the same machine without + it joining the entire cluster. + + -- -erl_epmd_port Port -- Configure a default port that + the built-in EPMD client should return. This allows the + local node to know the port to connect to for any other + node in the cluster. + + The erl_epmd callback API has also been extended to + allow returning -1 as the creation which means that a + random creation will be created by the node. + + In addition a new callback function called + listen_port_please has been added that allows the + callback to return which listen port the distribution + should use. This can be used instead of + inet_dist_listen_min/max if the listen port is to be + fetched from an external service. + + + OTP-16260 Application(s): kernel + Related Id(s): OTP-15403 + + *** HIGHLIGHT *** + + A first EXPERIMENTAL module that is a socket backend to + gen_tcp and inet has been implemented. Others will + follow. Feedback will be appreciated. + + + OTP-16312 Application(s): erts, kernel + + The new experimental socket module has been moved to + the Kernel application. + + + OTP-16345 Application(s): kernel + + Replace usage of deprecated function in the group + module. + + + OTP-16368 Application(s): kernel, observer, runtime_tools, + stdlib, tools + Related Id(s): OTP-15251 + + Minor updates due to the new spawn improvements made. + + + OTP-16370 Application(s): erts, kernel + Related Id(s): OTP-15232, OTP-15251 + + Update of sequential tracing to also support other + information transfers than message passing. + + + OTP-16402 Application(s): kernel + + code:module_status/1 now accepts a list of modules. + code:module_status/0, which returns the statuses for + all loaded modules, has been added. + + + OTP-16419 Application(s): kernel + + filelib:wildcard/1,2 is now twice as fast when a double + star (**) is part of the pattern. + + + OTP-16453 Application(s): kernel + Related Id(s): PR-2524 + + *** HIGHLIGHT *** + + A new implementation of distributed named process + groups has been introduced. It is available in the pg + module. + + Note that this pg module only has the name in common + with the experimental pg module that was present in + stdlib up until OTP 17. + + Thanks to Maxim Fedorov for the implementation. + + + OTP-16455 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The pg2 module has been deprecated. It has also been + scheduled for removal in OTP 24. + + You are advised to replace the usage of pg2 with the + newly introduced pg module. pg has a similar API, but + with a more scalable implementation. + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + OTP-16487 Application(s): kernel + Related Id(s): PR-2516 + + The internal hosts file resolver cache inet_hosts has + been rewritten to behave better when the hosts file + changes. For example the cache is updated per entry + instead of cleared and reloaded so lookups do not + temporarily fail during reloading, and; when multiple + processes simultaneously request reload these are now + folded into one instead of all done in sequence. + Reported and first solution suggestion by Maxim + Fedorov. + + + OTP-16494 Application(s): kernel + + Add code:all_available/0 that can be used to get all + available modules. + + + OTP-16495 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + As of OTP 23, the distributed disk_log feature has been + deprecated. It has also been scheduled for removal in + OTP 24. + + + OTP-16499 Application(s): kernel + + Add the function code:fetch_docs/1 for fetching + embedded documentation for aa Erlang module. + + + OTP-16530 Application(s): erts, kernel + Related Id(s): OTP-16464 + + Improve configure for the net nif, which should + increase portability. + + + OTP-16535 Application(s): erts, kernel + + socket: Socket counters and socket global counters are + now represented as maps (instead of property lists). + + + OTP-16550 Application(s): erts, kernel + Related Id(s): ERIERL-476 + + The experimental socket module has gotten restrictions + removed so now the 'seqpacket' socket type should work + for any communication domain (protocol family) where + the OS supports it, typically the Unix Domain. + + + OTP-16563 Application(s): kernel + Related Id(s): PR-2523 + + Allow using custom IO devices in logger_std_h. + + + OTP-16570 Application(s): kernel + Related Id(s): PR-2565 + + Added file:del_dir_r/1 which deletes a directory + together with all of its contents, similar to rm -rf on + Unix systems. + + + OTP-16620 Application(s): erts, kernel + + socket: By default the socket options rcvtimeo and + sndtimeo are now disabled. To enable these, OTP now has + to be built with the configure option + --enable-esock-rcvsndtimeo + + + OTP-16632 Application(s): kernel + Related Id(s): ERL-1234 + + The experimental gen_tcp compatibility code utilizing + the socket module could loose buffered data when + receiving a specified number of bytes. This bug has + been fixed. Reported by Maksim Lapshin on + bugs.erlang.org ERL-1234 + + + Full runtime dependencies of kernel-7.0: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-3.19 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + OTP-16531 Application(s): megaco + + The preliminary version 3 codec(s) prev3a, prev3b and + prev3c has been deprecated and will be *removed* in OTP + 24. The encoding config option 'version3' will continue + to work until OTP 24. + + + Full runtime dependencies of megaco-3.19: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.17 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16072 Application(s): mnesia + Related Id(s): PR-2320 + + Make mnesia:create_table/2 return correct badarg value. + + + OTP-16634 Application(s): mnesia + Related Id(s): ERL-1227, PR-2610 + + Fixed a bug where mnesia was sometimes not waiting + during start for a commit decision on asymmetric + transactions. + + + --- Improvements and New Features --- + + OTP-15695 Application(s): kernel, mnesia, parsetools, sasl, + snmp, stdlib + + Remove usage and documentation of old requests of the + I/O-protocol. + + + OTP-16189 Application(s): mnesia + + Avoid using rpc calls to do table reads, which will + reduce the load on rpc server and improve performance. + + + Full runtime dependencies of mnesia-4.17: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.9.4 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16368 Application(s): kernel, observer, runtime_tools, + stdlib, tools + Related Id(s): OTP-15251 + + Minor updates due to the new spawn improvements made. + + + Full runtime dependencies of observer-2.9.4: erts-11.0, et-1.5, + kernel-7.0, runtime_tools-1.8.14, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.13 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15800 Application(s): erl_interface, erts, odbc, os_mon, wx + + Fix various compiler warnings on 64-bit Windows. + + + --- Improvements and New Features --- + + OTP-16544 Application(s): odbc + Related Id(s): OTP-16328 + + Rewrite due to the removal of erl_interface legacy + functions. + + + Full runtime dependencies of odbc-2.13: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.5.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15800 Application(s): erl_interface, erts, odbc, os_mon, wx + + Fix various compiler warnings on 64-bit Windows. + + + --- Improvements and New Features --- + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + Full runtime dependencies of os_mon-2.5.2: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15695 Application(s): kernel, mnesia, parsetools, sasl, + snmp, stdlib + + Remove usage and documentation of old requests of the + I/O-protocol. + + + Full runtime dependencies of parsetools-2.2: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.8 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15247 Application(s): public_key, ssl + + *** HIGHLIGHT *** + + Added support for RSA-PSS signature schemes + + + OTP-16346 Application(s): common_test, public_key, snmp, ssh, + ssl + + Calls of deprecated functions in the Old Crypto API are + replaced by calls of their substitutions. + + + Full runtime dependencies of public_key-1.8: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.15 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16327 Application(s): erts, runtime_tools, tools + + Improved the presentation of allocations and carriers + in the instrument module. + + + OTP-16368 Application(s): kernel, observer, runtime_tools, + stdlib, tools + Related Id(s): OTP-15251 + + Minor updates due to the new spawn improvements made. + + + Full runtime dependencies of runtime_tools-1.15: erts-11.0, + kernel-7.0, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15695 Application(s): kernel, mnesia, parsetools, sasl, + snmp, stdlib + + Remove usage and documentation of old requests of the + I/O-protocol. + + + OTP-16561 Application(s): sasl + Related Id(s): PR-2420 + + systools:make_script/2 now accepts the name of the boot + file to create, it is not restricted to only + RelName.boot or start.boot. + + systools:make_tar/2 now accepts the option extra_files + to add any extra non release related files to the tar + file. + + + OTP-16603 Application(s): sasl + + *** POTENTIAL INCOMPATIBILITY *** + + systools:make_tar/1,2 now filters out any tools from + erts if included in the release tar ball. See the + documentation for more details. + + + Full runtime dependencies of sasl-4.0: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.6 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16541 Application(s): snmp + Related Id(s): #2544 + + For manager, fix PrivParams for SNMPv3 USM with AES + privacy; * In `snmp_usm:do_decrypt/3`, pass full + UsmSecParams to `snmp_usm:try_decrypt/5` as expected by + AES clause. * Change `snmpm_usm:aes_encrypt/3` to use + EngineBoots and EngineTime as cached by + `snmpm_config:get_usm_eboots/1` and + `snmpm_config:get_usm_etime/1` instead of + `snmpm_config:get_engine_boots/0` and + `snmpm_config:get_engine_time/0`. This ensures correct + msgPrivacyParameters are sent when AES is used. * Add + test `snmp.snmp_manager_SUITE.usm_priv_aes/1` to avoid + regression. + + + OTP-16552 Application(s): snmp + Related Id(s): ERL-1196 + + Invalid character in (manager) usm config entry + generator function. + + + --- Improvements and New Features --- + + OTP-15695 Application(s): kernel, mnesia, parsetools, sasl, + snmp, stdlib + + Remove usage and documentation of old requests of the + I/O-protocol. + + + OTP-16346 Application(s): common_test, public_key, snmp, ssh, + ssl + + Calls of deprecated functions in the Old Crypto API are + replaced by calls of their substitutions. + + + OTP-16463 Application(s): snmp + + Finalize deprecation. Already deprecated functions has + a "remove version 24" set and "new" functions added to + list of deprecated functions. + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + Full runtime dependencies of snmp-5.6: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.10 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16363 Application(s): ssh + + Fix error in ssh_sftpd typespec. + + + --- Improvements and New Features --- + + OTP-11688 Application(s): ssh + Related Id(s): OTP-12699 + + The plug-in file ssh_file.erl, that is responsible for + default file handling, is re-factored, optimized and + re-written. + + + OTP-15434 Application(s): ssh + + *** HIGHLIGHT *** + + OpenSSH 6.5 introduced a new file representation of + keys called openssh-key-v1. + + OTP/SSH had an experimental implementation of this + format. That implementation is now improved and + supported with the exception of handling encrypted + keys. + + + OTP-15998 Application(s): ssh + Related Id(s): PR-2368, PR-2376 + + *** HIGHLIGHT *** + + TCP/IP port forwarding, a.k.a tunneling a.k.a + tcp-forward/direct-tcp is implemented. In the OpenSSH + client, this corresponds to the options -L and -R. + + The client or server listens to a specified socket, and + when something connects to it with TCP/IP, that + connection is forwarded in an encrypted tunnel to the + peer. The peer then connects to a predefined IP/port + pair and then acts as a proxy. + + See the manual, ssh:tcpip_tunnel_to_server/6 and + ssh:tcpip_tunnel_from_server/6. + + The functionality is disabled per default but can be + enabled when starting a daemon. + + + OTP-16026 Application(s): ssh + Related Id(s): (OTP-15998), PR-2368 + + The client-side of the supervisor tree (under sshc_sup) + was previously not complete; the channel handling + processes were handled with links but had no + supervisors. + + This is now corrected with a client-side supervisor + tree under sshc_sup, similar to the server-side + supervisor tree under sshd_sup. + + + OTP-16289 Application(s): ssh + Related Id(s): PR-2448 + + The extension posix-rename@openssh.com is added to the + ssh/sftp rename operation. + + + OTP-16346 Application(s): common_test, public_key, snmp, ssh, + ssl + + Calls of deprecated functions in the Old Crypto API are + replaced by calls of their substitutions. + + + OTP-16506 Application(s): ssh + + *** HIGHLIGHT *** + + The default known_hosts file handling is improved to + include ports. + + The handling of the contents in that file is updated to + support the full syntax, with exception of 1) the + wildcard '?', 2) wildcards in canonical names and 3) + the option '@cert-authority' + + + OTP-16508 Application(s): ssh + + The MAC (Message Authorization Code) algorithms + + -- hmac-sha1-etm@openssh.com + + -- hmac-sha2-256-etm@openssh.com + + -- hmac-sha2-512-etm@openssh.com + + are implemented. + + + OTP-16509 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The key-exchange algorithms + 'diffie-hellman-group14-sha1' and + 'diffie-hellman-group-exchange-sha1' are disabled per + default. The reason is that SHA1 now is considered + insecure. + + They can be enabled if needed, see SSH (App). + + + OTP-16510 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The public key algorithm 'ssh-dss' is disabled per + default. The reason is that it is now considered as + insecure. + + It can be enabled if needed, see SSH (App). + + + OTP-16511 Application(s): ssh + + *** POTENTIAL INCOMPATIBILITY *** + + The public key 'ssh-rsa' is now considered as insecure + because of its usage of SHA1. + + It is therefore deprecated and will no longer be + enabled per default in OTP-24.0. + + + OTP-16512 Application(s): ssh + + An option optimize (optimize_key_lookup) is introduced + for the file interface ssh_file.erl + + The option enables the user to select between the + default handling which is fast but memory consuming vs + memory efficient but not as fast. The effect might be + observable only for large files. + + See the manual for ssh_file:is_host_key/5 and + ssh_file:is_auth_key/3. + + + OTP-16513 Application(s): ssh + + *** HIGHLIGHT *** + + The ssh agent is now implemented in the ssh_agent key + callback module. + + Enable with the the option {key_cb, {ssh_agent, []}} in + for example ssh:connect/3. + + See the ssh_agent manual for details. + + + OTP-16540 Application(s): ssh + + *** HIGHLIGHT *** + + Algorithm configuration could now be done in a .config + file. + + This is useful for example to enable an algorithm that + is disabled by default. It could now be enabled in an + .config-file without changing the code, + + See the SSH User's Guide chapter "Configuration in + SSH". + + + OTP-16589 Application(s): ssh + + Documented which gen_tcp socket options can't be used + in calls to ssh:connect and ssh:daemon. + + + OTP-16622 Application(s): ssh + Related Id(s): PR-2604 + + Added kb_int_fun_4() to the + authentication_daemon_options() to enable generating + dynamic keyboard-interactive prompts from the user's + state returned from the authentication fun pwdfun_4(). + + + Full runtime dependencies of ssh-4.10: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16562 Application(s): ssl + Related Id(s): ERL-1168 + + Fix a bug that causes cross-build failure. + + This change excludes the ssl.d dependency file from the + source tar balls. + + + OTP-16573 Application(s): ssl + Related Id(s): ERIERL-477 + + Correct translation of OpenSSL legacy names for two + legacy cipher suites + + + OTP-16585 Application(s): ssl + + Correct documentation for PSK identity and SRP + username. + + + OTP-16626 Application(s): ssl + Related Id(s): ERL-1232 + + Make sure client hostname check is run when client uses + its own verify_fun + + + OTP-16638 Application(s): ssl + Related Id(s): ERL-1206 + + Improved signature selection mechanism in TLS 1.3 for + increased interoperability. + + + --- Improvements and New Features --- + + OTP-14790 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Drop support for SSL-3.0. Support for this legacy TLS + version has not been enabled by default since OTP 19. + Now all code to support it has been removed, that is + SSL-3.0 protocol version can not be used and is + considered invalid. + + + OTP-15247 Application(s): public_key, ssl + + *** HIGHLIGHT *** + + Added support for RSA-PSS signature schemes + + + OTP-15589 Application(s): ssl + + *** HIGHLIGHT *** + + Improve interoperability by implementing the middlebox + compatiblity mode. + + The middlebox compatibility mode makes the TLS 1.3 + handshake look more like a TLS 1.2 handshake and + increases the chance of successfully establishing TLS + 1.3 connections through legacy middleboxes. + + + OTP-16127 Application(s): ssl + Related Id(s): OTP-15618 + + Utilize new properties of erlang:dist_ctrl_get_data() + for performance improvement of Erlang distribution over + TLS. + + + OTP-16346 Application(s): common_test, public_key, snmp, ssh, + ssl + + Calls of deprecated functions in the Old Crypto API are + replaced by calls of their substitutions. + + + OTP-16391 Application(s): ssl + + Implement cipher suite TLS_AES_128_CCM_8_SHA256. + + + OTP-16400 Application(s): ssl + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + This change adds TLS-1.3 to the list of default + supported versions. That is, TLS-1.3 and TLS-1.2 are + configured when ssl option 'versions' is not explicitly + set. + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + OTP-16519 Application(s): ssl + + Extended ssl:versions so that it lists supported, + available and implemented TLS/DTLS versions. + + + OTP-16532 Application(s): ssl + + Added new option exclusive for ssl:cipher_suites/2,3 + + + OTP-16533 Application(s): ssl + + Avoid DoS attack against stateful session_tickets by + making session ticket ids unpredictable. + + + OTP-16547 Application(s): ssl + Related Id(s): PR-2547 + + Add support for the max_fragment_length extension (RFC + 6066). + + + OTP-16584 Application(s): ssl + + Add srp_username in ssl:connection_info, update the + document with types of this function. + + + Full runtime dependencies of ssl-10.0: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.13 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16431 Application(s): erts, stdlib + Related Id(s): ERL-592 + + Compiling a match specification with excessive nesting + caused the runtime system to crash due to scheduler + stack exhaustion. Instead of crashing the runtime + system, effected functions will now raise a + system_limit error exception in this situation. + + + OTP-16516 Application(s): compiler, stdlib + + Initialization of record fields using _ is no longer + allowed if the number of affected fields is zero. + + + OTP-16545 Application(s): stdlib + + Fix bugs in eval_bits. + + + --- Improvements and New Features --- + + OTP-15299 Application(s): kernel, stdlib + + Improved the printout of single line logger events for + most of the OTP behaviours in STDLIB and Kernel. This + includes proc_lib, gen_server, gen_event, gen_statem, + gen_fsm, supervisor, supervisor_bridge and application. + + Improved the chars_limit and depth handling in proc_lib + and when formatting of exceptions. + + + OTP-15695 Application(s): kernel, mnesia, parsetools, sasl, + snmp, stdlib + + Remove usage and documentation of old requests of the + I/O-protocol. + + + OTP-15744 Application(s): erts, stdlib + Related Id(s): OTP-15623, PR-2229 + + *** HIGHLIGHT *** + + Improved ETS scalability of concurrent calls that + change the size of a table, like ets:insert/2 and + ets:delete/2. + + This performance feature was implemented for + ordered_set in OTP 22.0 and does now apply for all ETS + table types. + + The improved scalability may come at the cost of longer + latency of ets:info(T,size) and ets:info(T,memory). A + new table option decentralized_counters has therefore + been added. It is default true for ordered_set with + write_concurrency enabled and default false for all + other table types. + + + OTP-16005 Application(s): stdlib + Related Id(s): ERL-1003, ERL-1150 + + Handle Unicode filenames in the zip module. + + + OTP-16073 Application(s): stdlib + Related Id(s): PR-2339 + + Unicode support was updated to the Unicode 12.1 + standard. + + + OTP-16120 Application(s): stdlib + Related Id(s): ERIERL-402, PR-2427 + + All of the modules proc_lib, gen_server, gen_statem, + and gen_event have been extended with a start_monitor() + function. For more information, see the documentation + of start_monitor() for these modules. + + + OTP-16128 Application(s): stdlib, tools + Related Id(s): OTP-15618 + + Updates for new erlang:term_to_iovec() BIF. + + + OTP-16171 Application(s): stdlib + Related Id(s): ERL-1057 + + Documented a quirk regarding extraction from file + descriptors in erl_tar. + + + OTP-16210 Application(s): stdlib + Related Id(s): PR-2411 + + Added ok as return value to gen_server:reply/2 + + + OTP-16222 Application(s): stdlib + + *** HIGHLIGHT *** + + New functions have been added to c(3) for printing + embedded documentation for Erlang modules. The + functions are: + + -- h/1,2,3 -- Print the documentation for a + Module:Function/Arity. + + -- ht/1,2,3 -- Print the type documentation for a + Module:Type/Arity. + + The embedded documentation is created when building the + Erlang/OTP documentation. + + + OTP-16276 Application(s): stdlib + Related Id(s): PR-2443 + + Add indent and linewidth to the options of the erl_pp + module's functions. + + + OTP-16368 Application(s): kernel, observer, runtime_tools, + stdlib, tools + Related Id(s): OTP-15251 + + Minor updates due to the new spawn improvements made. + + + OTP-16429 Application(s): compiler, stdlib + Related Id(s): ERL-303 + + The compiler will now raise a warning when inlining is + used in modules that load NIFs. + + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + OTP-16480 Application(s): stdlib + + Extend erl_parse:abstract/1,2 to handle external fun + expressions (fun M:F/A). + + + OTP-16483 Application(s): stdlib + Related Id(s): PR-2542 + + Added filelib:safe_relative_path/2 to replace + filename:safe_relative_path/1, which did not safely + handle symbolic links. + + filename:safe_relative_path/1 has been deprecated. + + + OTP-16500 Application(s): stdlib + + The module shell_docs has been added. The module + contains functions for rendering, validating and + normalizing embedded documentation. + + + OTP-16501 Application(s): stdlib + Related Id(s): ERL-708, OTP-16222, OTP-16406, + OTP-16494, OTP-16499, OTP-16500, PR-2545 + + *** HIGHLIGHT *** + + Module and function auto-completion in the shell now + looks at all available modules instead of only those + loaded. A module is considered available if it either + is loaded already or would be loaded if called. + + The auto-completion has also been expanded to work in + the new h/1,2,3 function in c(3). + + + OTP-16557 Application(s): erts, stdlib + + Updated the internal pcre library to 8.44. + + + Full runtime dependencies of stdlib-3.13: compiler-5.0, crypto-3.3, + erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.3 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-15925 Application(s): syntax_tools + Related Id(s): PR-2304 + + Remove incomplete support for cond expressions. + + + OTP-16386 Application(s): syntax_tools + Related Id(s): PR-2451 + + Improved indentation for code generated with + erl_prettypr and tidier. + + + Full runtime dependencies of syntax_tools-2.3: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tools-3.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16128 Application(s): stdlib, tools + Related Id(s): OTP-15618 + + Updates for new erlang:term_to_iovec() BIF. + + + OTP-16327 Application(s): erts, runtime_tools, tools + + Improved the presentation of allocations and carriers + in the instrument module. + + + OTP-16368 Application(s): kernel, observer, runtime_tools, + stdlib, tools + Related Id(s): OTP-15251 + + Minor updates due to the new spawn improvements made. + + + Full runtime dependencies of tools-3.4: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-1.9.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15800 Application(s): erl_interface, erts, odbc, os_mon, wx + + Fix various compiler warnings on 64-bit Windows. + + + --- Improvements and New Features --- + + OTP-16469 Application(s): asn1, compiler, crypto, edoc, inets, + kernel, megaco, os_mon, otp, snmp, ssl, stdlib, wx + + Refactored the internal handling of deprecated and + removed functions. + + + Full runtime dependencies of wx-1.9.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.25 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16617 Application(s): xmerl + + Fix a bug that the function name didn't get normalized + in some case which left white spaces in links. + + + Full runtime dependencies of xmerl-1.3.25: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + -- cgit v1.2.3