From a180a4723e170e71b9addeeb55669e3f5d701ba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lo=C3=AFc=20Hoguin?= Date: Thu, 27 Feb 2020 17:14:42 +0100 Subject: OTP-23.0-rc1 --- early-plugins.mk | 57 +- release-notes/OTP-23.0-rc1.README.txt | 2170 +++++++++++++++++++++++++++++++++ 2 files changed, 2205 insertions(+), 22 deletions(-) create mode 100644 release-notes/OTP-23.0-rc1.README.txt diff --git a/early-plugins.mk b/early-plugins.mk index 2cc0e4c..ca1d6f9 100644 --- a/early-plugins.mk +++ b/early-plugins.mk @@ -1,4 +1,4 @@ -# Copyright (c) 2017-2019, Loïc Hoguin +# Copyright (c) 2017-2020, Loïc Hoguin # # Permission to use, copy, modify, and/or distribute this software for any # purpose with or without fee is hereby granted, provided that the above @@ -28,20 +28,25 @@ 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.25 OTP-21 := OTP-21.0.9 OTP-21.1.4 OTP-21.2.7 OTP-21.3.8.13 OTP-22 := OTP-22.0.7 OTP-22.1.8 OTP-22.2.7 +OTP-23 := OTP-23.0-rc1 -OTP-18+ := $(OTP-18) $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) -OTP-19+ := $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) -OTP-20+ := $(OTP-20) $(OTP-21) $(OTP-22) -OTP-21+ := $(OTP-21) $(OTP-22) -OTP-22+ := $(OTP-22) +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) +OTP-20+ := $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) +OTP-21+ := $(OTP-21) $(OTP-22) $(OTP-23) +OTP-22+ := $(OTP-22) $(OTP-23) +OTP-23+ := $(OTP-23) OTP-LATEST-18+ := $(lastword $(OTP-18)) $(lastword $(OTP-19)) \ - $(lastword $(OTP-20)) $(lastword $(OTP-21)) $(lastword $(OTP-22)) + $(lastword $(OTP-20)) $(lastword $(OTP-21)) $(lastword $(OTP-22)) \ + $(lastword $(OTP-23)) OTP-LATEST-19+ := $(lastword $(OTP-19)) $(lastword $(OTP-20)) \ - $(lastword $(OTP-21)) $(lastword $(OTP-22)) -OTP-LATEST-20+ := $(lastword $(OTP-20)) $(lastword $(OTP-21)) $(lastword $(OTP-22)) -OTP-LATEST-21+ := $(lastword $(OTP-21)) $(lastword $(OTP-22)) -OTP-LATEST-22+ := $(lastword $(OTP-22)) + $(lastword $(OTP-21)) $(lastword $(OTP-22)) $(lastword $(OTP-23)) +OTP-LATEST-20+ := $(lastword $(OTP-20)) $(lastword $(OTP-21)) \ + $(lastword $(OTP-22)) $(lastword $(OTP-23)) +OTP-LATEST-21+ := $(lastword $(OTP-21)) $(lastword $(OTP-22)) $(lastword $(OTP-23)) +OTP-LATEST-22+ := $(lastword $(OTP-22)) $(lastword $(OTP-23)) +OTP-LATEST-23+ := $(lastword $(OTP-23)) # We exclude release candidates here because they are not # the latest release, they are the *next* one. @@ -77,9 +82,10 @@ OTP-22-DROPPED := OTP-22.0-rc1 OTP-22.0-rc2 OTP-22.0-rc3 OTP-22.0 \ OTP-22.1 OTP-22.1.1 OTP-22.1.2 OTP-22.1.3 OTP-22.1.4 OTP-22.1.5 \ 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-23-DROPPED := OTP-DROPPED := $(OTP-18-DROPPED) $(OTP-19-DROPPED) $(OTP-20-DROPPED) \ - $(OTP-21-DROPPED) $(OTP-22-DROPPED) + $(OTP-21-DROPPED) $(OTP-22-DROPPED) $(OTP-23-DROPPED) # Configure Erlang.mk's CI plugin. @@ -154,21 +160,28 @@ 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 +WINDOWS-OTP-23 := -WINDOWS-OTP-18+ := $(WINDOWS-OTP-18) $(WINDOWS-OTP-19) $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) -WINDOWS-OTP-19+ := $(WINDOWS-OTP-19) $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) -WINDOWS-OTP-20+ := $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) -WINDOWS-OTP-21+ := $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) -WINDOWS-OTP-22+ := $(WINDOWS-OTP-22) +WINDOWS-OTP-18+ := $(WINDOWS-OTP-18) $(WINDOWS-OTP-19) $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) \ + $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) +WINDOWS-OTP-19+ := $(WINDOWS-OTP-19) $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) \ + $(WINDOWS-OTP-23) +WINDOWS-OTP-20+ := $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) +WINDOWS-OTP-21+ := $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) +WINDOWS-OTP-22+ := $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) +WINDOWS-OTP-23+ := $(WINDOWS-OTP-23) WINDOWS-OTP-LATEST-18+ := $(lastword $(WINDOWS-OTP-18)) $(lastword $(WINDOWS-OTP-19)) \ - $(lastword $(WINDOWS-OTP-20)) $(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) + $(lastword $(WINDOWS-OTP-20)) $(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) \ + $(lastword $(WINDOWS-OTP-23)) WINDOWS-OTP-LATEST-19+ := $(lastword $(WINDOWS-OTP-19)) $(lastword $(WINDOWS-OTP-20)) \ - $(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) + $(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) WINDOWS-OTP-LATEST-20+ := $(lastword $(WINDOWS-OTP-20)) $(lastword $(WINDOWS-OTP-21)) \ - $(lastword $(WINDOWS-OTP-22)) -WINDOWS-OTP-LATEST-21+ := $(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) -WINDOWS-OTP-LATEST-22+ := $(lastword $(WINDOWS-OTP-22)) + $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) +WINDOWS-OTP-LATEST-21+ := $(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) \ + $(lastword $(WINDOWS-OTP-23)) +WINDOWS-OTP-LATEST-22+ := $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) +WINDOWS-OTP-LATEST-23+ := $(lastword $(WINDOWS-OTP-23)) WINDOWS-OTP-LATEST := $(lastword $(WINDOWS-OTP-18+)) diff --git a/release-notes/OTP-23.0-rc1.README.txt b/release-notes/OTP-23.0-rc1.README.txt new file mode 100644 index 0000000..ea24322 --- /dev/null +++ b/release-notes/OTP-23.0-rc1.README.txt @@ -0,0 +1,2170 @@ +Inital Release: OTP 23.0 +Git Tag: OTP-23.0 +Date: 2020-02-27 +Trouble Report Id: OTP-10278, OTP-11688, OTP-13450, OTP-14708, + OTP-14734, OTP-14790, OTP-15077, OTP-15232, + OTP-15251, OTP-15299, OTP-15434, OTP-15517, + OTP-15603, OTP-15618, OTP-15695, OTP-15744, + 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-16251, + OTP-16252, OTP-16264, OTP-16270, OTP-16273, + OTP-16275, OTP-16276, OTP-16283, OTP-16284, + OTP-16289, 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-16394, OTP-16395, + OTP-16398, OTP-16400, OTP-16402, OTP-16406, + OTP-16419, OTP-16432, OTP-16453, OTP-16454, + OTP-16455, 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 +Seq num: ERIERL-402, ERL-1002, ERL-1003, ERL-1051, + ERL-1053, ERL-1057, ERL-1115, ERL-1134, + ERL-1150, ERL-1154, ERL-496, ERL-560, + ERL-700, ERL-708, ERL-927, ERL-991 +System: OTP +Release: 23 +Application: asn1-5.0.10, 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-3.14, erts-11.0, eunit-2.5, + hipe-4.0, inets-7.2, jinterface-1.11, + kernel-7.0, megaco-3.18.8, mnesia-4.17, + observer-2.9.4, odbc-2.13, os_mon-2.5.2, + parsetools-2.2, public_key-1.7.2, + runtime_tools-1.15, sasl-3.5, snmp-5.5, + ssh-4.9, ssl-10.0, stdlib-3.12, + syntax_tools-2.3, tools-3.4, wx-1.9.1 +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-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-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 as + 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 if wanted 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. + + + 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). + + + --------------------------------------------------------------------- + --- 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-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 + + 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 dtds of all documentation files have been trimmed + from all unused or rarely-used tags. + + Unused dtds have been removed. + + + --------------------------------------------------------------------- + --- 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. + + + --------------------------------------------------------------------- + --- asn1-5.0.10 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + Full runtime dependencies of asn1-5.0.10: 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-. + + + --- 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-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 compiler-7.6: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.12 + + + --------------------------------------------------------------------- + --- crypto-4.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- 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. + + + 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. + + + 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-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 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-3.14 ---------------------------------------------- + --------------------------------------------------------------------- + + --- 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-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, odbc + + Removed the deprecated parts of erl_interface + (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. + + + --------------------------------------------------------------------- + --- 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-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-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. + + + --- 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-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-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 the erlang:decode_packet/3. Example: + + > erlang:decode_packet(httph_bin,>,[]). + {ok,{http_header,0,>,>,>},>} + + + 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. + + + Full runtime dependencies of erts-11.0: kernel-7.0, sasl-3.3, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- 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 + + + 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. + + + --- 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-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-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. + + + Full runtime dependencies of kernel-7.0: erts-11.0, sasl-3.0, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- megaco-3.18.8 --------------------------------------------------- + --------------------------------------------------------------------- + + --- 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 megaco-3.18.8: 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. + + + --- 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.12, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.13 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16328 Application(s): erl_interface, odbc + + Removed the deprecated parts of erl_interface + (essentially all C functions with prefix erl_). + + + Full runtime dependencies of odbc-2.13: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.5.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- 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.7.2 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + 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.7.2: 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.12 + + + --------------------------------------------------------------------- + --- sasl-3.5 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- 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 sasl-3.5: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.5 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- 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-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.5: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.9 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- 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 as + 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 if wanted 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. + + + Full runtime dependencies of ssh-4.9: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- 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-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-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-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 ssl-10.0: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.12 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- 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-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). + + + Full runtime dependencies of stdlib-3.12: 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 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- 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 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + -- cgit v1.2.3