Inital Release: OTP 22.0 Git Tag: OTP-22.0 Date: 2019-02-26 Trouble Report Id: OTP-13397, OTP-14282, OTP-14461, OTP-14625, OTP-14703, OTP-14724, OTP-14731, OTP-14732, OTP-14737, OTP-14831, OTP-14894, OTP-14984, OTP-15011, OTP-15055, OTP-15063, OTP-15075, OTP-15095, OTP-15111, OTP-15128, OTP-15129, OTP-15195, OTP-15200, OTP-15211, OTP-15220, OTP-15238, OTP-15261, OTP-15262, OTP-15273, OTP-15336, OTP-15340, OTP-15349, OTP-15351, OTP-15362, OTP-15381, OTP-15385, OTP-15386, OTP-15427, OTP-15439, OTP-15451, OTP-15452, OTP-15456, OTP-15491, OTP-15534, OTP-15535, OTP-15543, OTP-15550, OTP-15564, OTP-15571, OTP-15575, OTP-15581, OTP-15588, OTP-15610, OTP-15611, OTP-15612, OTP-15613, OTP-15621, OTP-15622, OTP-15631, OTP-15632, OTP-15633 Seq num: ERL-639, ERL-714, ERL-749 System: OTP Release: 22 Application: asn1-5.0.9, common_test-1.16.2, compiler-7.4, crypto-4.5, debugger-4.2.7, dialyzer-3.3.2, eldap-1.2.7, erl_docgen-0.8.2, erl_interface-3.10.5, erts-11.0, hipe-3.18.3, inets-7.0.6, jinterface-1.9.2, kernel-6.3, megaco-3.18.5, mnesia-4.16, observer-2.8.3, odbc-2.12.3, os_mon-2.5, public_key-1.6.5, reltool-0.8, runtime_tools-1.13.2, sasl-3.4, snmp-5.3, ssh-4.7.4, ssl-9.2, stdlib-3.8, syntax_tools-2.1.7, tools-3.1, wx-1.8.7, xmerl-1.3.20 Predecessor: OTP Check out the git tag OTP-22.0, and build a full OTP system including documentation. --------------------------------------------------------------------- --- HIGHLIGHTS ------------------------------------------------------ --------------------------------------------------------------------- OTP-13397 Application(s): erts Add support for Erlang Distribution protocol to split the payload of large signals into several fragments. This allows other processes to communicate uninterrupted during the transmission of these signals. OTP-14894 Application(s): compiler Related Id(s): ERL-714 The compiler has been rewritten to internally use an intermediate representation based on Static Single Assignment (SSA). The new intermediate representation makes more optimizations possible. Most noticeable is that the binary matching optimizations are now applicable in many more circumstances than before. Another noticeable change is that type optimizations are now applied across local function calls, and will remove a lot more redundant type tests than before. OTP-15055 Application(s): ssl Use new logger API in ssl. Introduce log levels and verbose debug logging for SSL. OTP-15128 Application(s): erts, stdlib ETS option write_concurrency now also affects and improves the scalability of ordered_set tables. The implementation is based on a data structure called contention adapting search tree, where the lock granularity adapts to the actual amount of concurrency exploited by the applications in runtime. OTP-15439 Application(s): erts The length/1 BIF used to calculate the length of the list in one go without yielding, even if the list was very long. In OTP 22, length/1 will yield when called with a long lists. OTP-15456 Application(s): compiler All compiler options that can be given in the source file can now also be given in the option list or from the command line for erlc. Specifically, the option {nowarn_deprecated_function,MFAs} was only recognized when given in the file with the attribute -compile(). The option {nowarn_unused_function,FAs} was incorrectly documented to only work in a file, but it also worked when given in the option list. OTP-15575 Application(s): tools The cover tool now uses the counters module instead of ets for updating the counters for how many times a line has been executed. By default, Cover will work with distributed nodes, but a new function cover:local_only/0 allows running the Cover in a restricted but faster local-only mode. The increase in speed will vary depending on the type of code being cover-compiled, but as an example, the compiler test suite runs more than twice as fast with the new Cover. --------------------------------------------------------------------- --- POTENTIAL INCOMPATIBILITIES ------------------------------------- --------------------------------------------------------------------- OTP-15381 Application(s): stdlib The gen_* behaviours have been changed so that if logging of the last N messages through sys:log/2,3 is active for the server, this log is included in the terminate report. To accomplish this the format of "System Events" as defined in the man page for sys has been clarified and cleaned up, a new function sys:get_log/1 has been added, and sys:get_debug/3 has been deprecated. Due to these changes, code that relies on the internal badly documented format of "System Events", need to be corrected. OTP-15571 Application(s): reltool A new element, Opts, can now be included in a rel tuple in the reltool release specific configuration format: {rel, Name, Vsn, RelApps, Opts}. This supports the use of {rel, Name, Vsn, RelApps, [{load_dot_erlang, false}]} to prevent the boot script from running the .erlang file. The incompatibilities are as follows: * The return from reltool:get_config/1 and reltool:get_config/3 includes the new rel tuple for all rels where the load_dot_erlang option is set to false. * The return from reltool:get_config/3 includes the new rel tuple for ALL rels if the InclDefs parameter is set to true. OTP-15613 Application(s): erts All external pids/ports/refs created by erlang:list_to_pid and similar functions now compare equal to any other pid/port/ref with the same number from that node. Before this change they compared differently because the node creation of the pid/port/ref did not compare equal to any real pid/port/ref creation. OTP-15621 Application(s): erl_interface, otp The limited support for VxWorks is deprecated as of OTP 22, and will be removed in OTP 23. OTP-15622 Application(s): erl_interface The old legacy erl_interface library (functions with prefix erl_) is deprecated as of OTP 22, and will be removed in OTP 23. This does not apply to the ei library. Reasonably new gcc compilers will issue deprecation warnings. In order to disable these warnings, define the macro EI_NO_DEPR_WARN. --------------------------------------------------------------------- --- OTP-22.0 -------------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. --- Improvements and New Features --- OTP-14625 Application(s): otp Configure scripts in different OTP applications are now executed in parallel during build of OTP. OTP-15220 Application(s): otp Documented how atoms are ordered in reference manual. OTP-15621 Application(s): erl_interface, otp *** POTENTIAL INCOMPATIBILITY *** The limited support for VxWorks is deprecated as of OTP 22, and will be removed in OTP 23. --------------------------------------------------------------------- --- asn1-5.0.9 ------------------------------------------------------ --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. Full runtime dependencies of asn1-5.0.9: erts-7.0, kernel-3.0, stdlib-2.0 --------------------------------------------------------------------- --- common_test-1.16.2 ---------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. --- Improvements and New Features --- OTP-15633 Application(s): common_test, erl_interface, inets, stdlib Related Id(s): PR-1787 Use ssh as the default remote shell. Full runtime dependencies of common_test-1.16.2: 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.4 ---------------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-14894 Application(s): compiler Related Id(s): ERL-714 *** HIGHLIGHT *** The compiler has been rewritten to internally use an intermediate representation based on Static Single Assignment (SSA). The new intermediate representation makes more optimizations possible. Most noticeable is that the binary matching optimizations are now applicable in many more circumstances than before. Another noticeable change is that type optimizations are now applied across local function calls, and will remove a lot more redundant type tests than before. OTP-15273 Application(s): compiler Related Id(s): ERL-639 Funs are no longer created when they are only used locally, greatly improving the performance of named funs and "fun-wrapped" macros. OTP-15456 Application(s): compiler *** HIGHLIGHT *** All compiler options that can be given in the source file can now also be given in the option list or from the command line for erlc. Specifically, the option {nowarn_deprecated_function,MFAs} was only recognized when given in the file with the attribute -compile(). The option {nowarn_unused_function,FAs} was incorrectly documented to only work in a file, but it also worked when given in the option list. Full runtime dependencies of compiler-7.4: crypto-3.6, erts-9.0, hipe-3.12, kernel-4.0, stdlib-2.5 --------------------------------------------------------------------- --- crypto-4.5 ------------------------------------------------------ --------------------------------------------------------------------- --- Improvements and New Features --- OTP-14461 Application(s): crypto, stdlib Related Id(s): PR-1857 A new rand module algorithm, exro928ss (Xoroshiro928**), has been implemented. It has got a really long period and good statistical quality for all output bits, while still being only about 50% slower than the default algorithm. The same generator is also used as a long period counter in a new crypto plugin for the rand module, algorithm crypto_aes. This plugin uses AES-256 to scramble the counter which buries any detectable statistical artifacts. Scrambling is done in chunks which are cached to get good amortized speed (about half of the default algorithm). OTP-14732 Application(s): crypto Related Id(s): PR-2068, PR-2095 Crypto's single C-file are splitted into multiple files. The different coding styles in the different parts are unified into a single one. OTP-15129 Application(s): crypto, erts Build configuration of the crypto application has been moved from the erts application into the crypto application. OTP-15451 Application(s): crypto Crypto internals is partly re-written to facilitate a planned new and possibly faster api for block and stream ciphers. OTP-15564 Application(s): crypto Related Id(s): PR-2129 Adds two hash functions blake2b and blake2s (64 bit hash and 32 bit hash respectively). These are modern and standard hash functions used in blockchains and encrypted communication protocols. The hash functions are available in OpenSSL since version 1.1.1. Full runtime dependencies of crypto-4.5: erts-9.0, kernel-5.3, stdlib-3.4 --------------------------------------------------------------------- --- debugger-4.2.7 -------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. Full runtime dependencies of debugger-4.2.7: compiler-5.0, erts-9.0, kernel-5.3, stdlib-3.4, wx-1.2 --------------------------------------------------------------------- --- dialyzer-3.3.2 -------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. Full runtime dependencies of dialyzer-3.3.2: compiler-7.0, erts-9.0, hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 --------------------------------------------------------------------- --- eldap-1.2.7 ----------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-15632 Application(s): eldap, public_key, ssh Ticket! Full runtime dependencies of eldap-1.2.7: asn1-3.0, erts-6.0, kernel-3.0, ssl-5.3.4, stdlib-2.0 --------------------------------------------------------------------- --- erl_docgen-0.8.2 ------------------------------------------------ --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. Full runtime dependencies of erl_docgen-0.8.2: edoc-0.7.13, erts-9.0, stdlib-3.4, xmerl-1.3.7 --------------------------------------------------------------------- --- erl_interface-3.10.5 -------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-15340 Application(s): erl_interface, erts, megaco, odbc Related Id(s): OTP-14625 Minor adjustments made to build system for parallel configure. OTP-15621 Application(s): erl_interface, otp *** POTENTIAL INCOMPATIBILITY *** The limited support for VxWorks is deprecated as of OTP 22, and will be removed in OTP 23. OTP-15622 Application(s): erl_interface *** POTENTIAL INCOMPATIBILITY *** The old legacy erl_interface library (functions with prefix erl_) is deprecated as of OTP 22, and will be removed in OTP 23. This does not apply to the ei library. Reasonably new gcc compilers will issue deprecation warnings. In order to disable these warnings, define the macro EI_NO_DEPR_WARN. OTP-15633 Application(s): common_test, erl_interface, inets, stdlib Related Id(s): PR-1787 Use ssh as the default remote shell. --------------------------------------------------------------------- --- erts-11.0 ------------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-15535 Application(s): erts Related Id(s): PR-2055 Do not allocate new bitstring/binary when an empty binary is appended. OTP-15543 Application(s): erts Related Id(s): PR-2089 Document that process_info(_, current_function) can return {current_function, undefined} in case of execution of native code. --- Improvements and New Features --- OTP-13397 Application(s): erts *** HIGHLIGHT *** Add support for Erlang Distribution protocol to split the payload of large signals into several fragments. This allows other processes to communicate uninterrupted during the transmission of these signals. OTP-14831 Application(s): erts, kernel A simple socket API has been provided through the socket module. Known issues are; No support for the Windows OS (currently), a small term leakage. OTP-15011 Application(s): erts Related Id(s): PR-2147 Added NIF functions enif_set_pid_undefined, enif_is_pid_undefined and enif_compare_pids. OTP-15063 Application(s): erts Underutilized memory segments (carriers) can now move between all allocator instances, rather than just between instances of the same type, which greatly reduces memory usage in some scenarios. OTP-15075 Application(s): erts The emulator will now mark free blocks in pooled carriers with madvise(2) + MADV_FREE (or similar), letting the OS reclaim the associated physical memory if necessary. OTP-15095 Application(s): erts New ERL_NIF_SELECT_CANCEL feature added to enif_select in order to cancel (or "deselect") a read or write event on a previously selected file descriptor. OTP-15128 Application(s): erts, stdlib *** HIGHLIGHT *** ETS option write_concurrency now also affects and improves the scalability of ordered_set tables. The implementation is based on a data structure called contention adapting search tree, where the lock granularity adapts to the actual amount of concurrency exploited by the applications in runtime. OTP-15129 Application(s): crypto, erts Build configuration of the crypto application has been moved from the erts application into the crypto application. OTP-15195 Application(s): erts Related Id(s): PR-1812 Anonymous functions that don't capture environment are now created at load-time instead of in run-time. OTP-15211 Application(s): erts Related Id(s): PR-1889 Optimize updates of maps with identical keys and values. E.g. in the example below the original Map will be reused as the return of the update. 1> Map = #{ a => b }. #{ a => b } 2> Map#{ a := b }. OTP-15238 Application(s): erts Related Id(s): PR-1803 Optimize binary:match/2 and binary:matches/2 to use memchr internally. OTP-15261 Application(s): erts The runtime system used to terminate when a message larger than 2 Gb was passed over the distribution. The send operation will now instead throw a system_limit exeption. OTP-15336 Application(s): erts, sasl Related Id(s): PR-1825 Change the first module called by erts to be names erl_init instead of otp_ring0. systools in sasl have been updated to reflect this change. OTP-15340 Application(s): erl_interface, erts, megaco, odbc Related Id(s): OTP-14625 Minor adjustments made to build system for parallel configure. OTP-15349 Application(s): erts Related Id(s): PR-2084 Two new NIF interface functions enif_select_read and enif_select_write. They are similar to existing enif_select but allow a custom event message as argument. OTP-15351 Application(s): erts Related Id(s): ERL-749 The embedded copy of zlib has been updated from 1.2.8 to 1.2.11. Note that this copy is only used as a fallback when the target platform doesn't provide any zlib development libraries. If your system provides zlib then it will be used even if it is older than 1.2.11. OTP-15362 Application(s): erts Related Id(s): PR-2127 New NIF function enif_make_monitor_term. OTP-15427 Application(s): erts Appending lists (The ++ operator) will now yield properly on large inputs. OTP-15439 Application(s): erts *** HIGHLIGHT *** The length/1 BIF used to calculate the length of the list in one go without yielding, even if the list was very long. In OTP 22, length/1 will yield when called with a long lists. OTP-15581 Application(s): erts Related Id(s): OTP-15580 The transitory emulator option +ztma true (introduced in OTP 21.3) has been removed. OTP-15610 Application(s): erts The termination behaviour of processes has changed to allow processes to yield while sending link exit/monitor down signals. OTP-15611 Application(s): erts, kernel The dist messages EXIT, EXIT2 and MONITOR_DOWN have been updated with new versions that send the reason term as part of the payload of the message instead of as part of the control message. The old versions are still present and can be used when communicating with nodes that don't support the new versions. OTP-15612 Application(s): erts When sending messages, exit, exit2 and monitor down distributed signals, the process sending will now yield appropriately. This means that a terminating process will yield and possibly be suspended on busy distribution entries while they are terminating. This means that any memory held by such processes will not be released until after all exit/monitor down signals have been sent. OTP-15613 Application(s): erts *** POTENTIAL INCOMPATIBILITY *** All external pids/ports/refs created by erlang:list_to_pid and similar functions now compare equal to any other pid/port/ref with the same number from that node. Before this change they compared differently because the node creation of the pid/port/ref did not compare equal to any real pid/port/ref creation. OTP-15631 Application(s): erts The iolist_size/1 function is now yielding which means that an Erlang/OTP system will be responsive even if the applications running on the system frequently call iolist_size/1 with large iolists. Full runtime dependencies of erts-11.0: kernel-6.1, sasl-3.3, stdlib-3.5 --------------------------------------------------------------------- --- hipe-3.18.3 ----------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-15385 Application(s): hipe Related Id(s): PR-1986 Add function hipe:erllvm_is_supported to check presence of suitable version of the LLVM tool chain as well as supported hardware architecture. The old hipe:llvm_support_available has been removed. OTP-15386 Application(s): hipe Related Id(s): PR-1963 Fix hipe LLVM for FreeBSD and other non-linux unix to use /tmp/ instead of /dev/shm/. Full runtime dependencies of hipe-3.18.3: compiler-5.0, erts-9.3, kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 --------------------------------------------------------------------- --- inets-7.0.6 ----------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. --- Improvements and New Features --- OTP-15633 Application(s): common_test, erl_interface, inets, stdlib Related Id(s): PR-1787 Use ssh as the default remote shell. Full runtime dependencies of inets-7.0.6: erts-6.0, kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 --------------------------------------------------------------------- --- jinterface-1.9.2 ------------------------------------------------ --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. --------------------------------------------------------------------- --- kernel-6.3 ------------------------------------------------------ --------------------------------------------------------------------- --- Improvements and New Features --- OTP-14831 Application(s): erts, kernel A simple socket API has been provided through the socket module. Known issues are; No support for the Windows OS (currently), a small term leakage. OTP-15491 Application(s): kernel Related Id(s): com/erlang/otp/pull/2019, https://github Improved the documentation for the linger option. OTP-15611 Application(s): erts, kernel The dist messages EXIT, EXIT2 and MONITOR_DOWN have been updated with new versions that send the reason term as part of the payload of the message instead of as part of the control message. The old versions are still present and can be used when communicating with nodes that don't support the new versions. Full runtime dependencies of kernel-6.3: erts-10.1, sasl-3.0, stdlib-3.5 --------------------------------------------------------------------- --- megaco-3.18.5 --------------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-15262 Application(s): megaco, runtime_tools Related Id(s): OTP-15129 Minor updates to build system necessary due to move of configuration of crypto application. OTP-15340 Application(s): erl_interface, erts, megaco, odbc Related Id(s): OTP-14625 Minor adjustments made to build system for parallel configure. Full runtime dependencies of megaco-3.18.5: 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.16 ----------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-15550 Application(s): mnesia Related Id(s): PR-12029 Optimize mnesia:read/1 if data have been written in the same transaction. --- Improvements and New Features --- OTP-15588 Application(s): mnesia Related Id(s): PR-2102 Optimized dumping of tables with plugin backends. Full runtime dependencies of mnesia-4.16: erts-9.0, kernel-5.3, stdlib-3.4 --------------------------------------------------------------------- --- observer-2.8.3 -------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. Full runtime dependencies of observer-2.8.3: erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-3.5, wx-1.2 --------------------------------------------------------------------- --- odbc-2.12.3 ----------------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-15340 Application(s): erl_interface, erts, megaco, odbc Related Id(s): OTP-14625 Minor adjustments made to build system for parallel configure. Full runtime dependencies of odbc-2.12.3: erts-6.0, kernel-3.0, stdlib-2.0 --------------------------------------------------------------------- --- os_mon-2.5 ------------------------------------------------------ --------------------------------------------------------------------- --- Improvements and New Features --- OTP-14984 Application(s): os_mon, snmp Related Id(s): OTP-15329 The application otp_mibs has been removed from OTP. Some of its components (mibs) has been moved to other apps (snmp), or removed completely (os_mon). Full runtime dependencies of os_mon-2.5: erts-6.0, kernel-3.0, sasl-2.4, stdlib-2.0 --------------------------------------------------------------------- --- public_key-1.6.5 ------------------------------------------------ --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-15632 Application(s): eldap, public_key, ssh Ticket! Full runtime dependencies of public_key-1.6.5: asn1-3.0, crypto-3.8, erts-6.0, kernel-3.0, stdlib-3.5 --------------------------------------------------------------------- --- reltool-0.8 ----------------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-15571 Application(s): reltool *** POTENTIAL INCOMPATIBILITY *** A new element, Opts, can now be included in a rel tuple in the reltool release specific configuration format: {rel, Name, Vsn, RelApps, Opts}. This supports the use of {rel, Name, Vsn, RelApps, [{load_dot_erlang, false}]} to prevent the boot script from running the .erlang file. The incompatibilities are as follows: * The return from reltool:get_config/1 and reltool:get_config/3 includes the new rel tuple for all rels where the load_dot_erlang option is set to false. * The return from reltool:get_config/3 includes the new rel tuple for ALL rels if the InclDefs parameter is set to true. Full runtime dependencies of reltool-0.8: erts-7.0, kernel-3.0, sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 --------------------------------------------------------------------- --- runtime_tools-1.13.2 -------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-15262 Application(s): megaco, runtime_tools Related Id(s): OTP-15129 Minor updates to build system necessary due to move of configuration of crypto application. Full runtime dependencies of runtime_tools-1.13.2: erts-8.0, kernel-5.0, mnesia-4.12, stdlib-3.0 --------------------------------------------------------------------- --- sasl-3.4 -------------------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-15336 Application(s): erts, sasl Related Id(s): PR-1825 Change the first module called by erts to be names erl_init instead of otp_ring0. systools in sasl have been updated to reflect this change. Full runtime dependencies of sasl-3.4: erts-10.2, kernel-5.3, stdlib-3.4, tools-2.6.14 --------------------------------------------------------------------- --- snmp-5.3 -------------------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-14984 Application(s): os_mon, snmp Related Id(s): OTP-15329 The application otp_mibs has been removed from OTP. Some of its components (mibs) has been moved to other apps (snmp), or removed completely (os_mon). Full runtime dependencies of snmp-5.3: crypto-3.3, erts-6.0, kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 --------------------------------------------------------------------- --- ssh-4.7.4 ------------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-15632 Application(s): eldap, public_key, ssh Ticket! Full runtime dependencies of ssh-4.7.4: crypto-4.2, erts-6.0, kernel-3.0, public_key-1.5.2, stdlib-3.3 --------------------------------------------------------------------- --- ssl-9.2 --------------------------------------------------------- --------------------------------------------------------------------- --- Improvements and New Features --- OTP-15055 Application(s): ssl *** HIGHLIGHT *** Use new logger API in ssl. Introduce log levels and verbose debug logging for SSL. Full runtime dependencies of ssl-9.2: crypto-4.2, erts-10.0, inets-5.10.7, kernel-6.0, public_key-1.5, stdlib-3.5 --------------------------------------------------------------------- --- stdlib-3.8 ------------------------------------------------------ --------------------------------------------------------------------- --- Improvements and New Features --- OTP-14461 Application(s): crypto, stdlib Related Id(s): PR-1857 A new rand module algorithm, exro928ss (Xoroshiro928**), has been implemented. It has got a really long period and good statistical quality for all output bits, while still being only about 50% slower than the default algorithm. The same generator is also used as a long period counter in a new crypto plugin for the rand module, algorithm crypto_aes. This plugin uses AES-256 to scramble the counter which buries any detectable statistical artifacts. Scrambling is done in chunks which are cached to get good amortized speed (about half of the default algorithm). OTP-14724 Application(s): stdlib Related Id(s): PR-2056 Types related to server naming and starting have been exported from gen_statem. These are: server_name/0, server_ref/0, start_opt/0, start_ret/0 and enter_loop_opt/0. OTP-14731 Application(s): stdlib Related Id(s): PR-1969 The default algorithm for the rand module has been changed to exsss (Xorshift116**) which is a combination of the Xorshift116 (exsp) state update and a new scrambler "StarStar" from the 2018 paper "Scrambled Linear Pseudorandom Number Generators" by David Blackman and Sebastiano Vigna. This combination should not have the caveat of weak low bits that the previous default algorithm(s) have had, with the cost of about 10% lower speed. See GitHub pull request #1969. OTP-14737 Application(s): stdlib Related Id(s): PR-1855 The generic state machine behaviour gen_statem has gotten code cleanup and documentation improvements from GitHub Pull Request #1855, even though the PR itself was rejected. OTP-15111 Application(s): stdlib Update Unicode specification to version 11.0. OTP-15128 Application(s): erts, stdlib *** HIGHLIGHT *** ETS option write_concurrency now also affects and improves the scalability of ordered_set tables. The implementation is based on a data structure called contention adapting search tree, where the lock granularity adapts to the actual amount of concurrency exploited by the applications in runtime. OTP-15200 Application(s): stdlib Related Id(s): PR-1878 Optimized maps:new/0 with trivial Erlang implementation, making use of literal terms (the empty map) not needing dynamic heap allocation. OTP-15381 Application(s): stdlib *** POTENTIAL INCOMPATIBILITY *** The gen_* behaviours have been changed so that if logging of the last N messages through sys:log/2,3 is active for the server, this log is included in the terminate report. To accomplish this the format of "System Events" as defined in the man page for sys has been clarified and cleaned up, a new function sys:get_log/1 has been added, and sys:get_debug/3 has been deprecated. Due to these changes, code that relies on the internal badly documented format of "System Events", need to be corrected. OTP-15452 Application(s): stdlib The gen_statem behaviour engine loop has been optimized for better performance in particular when the callback module returns some actions, that is better performance for more realistic applications than the Echo Benchmark. OTP-15633 Application(s): common_test, erl_interface, inets, stdlib Related Id(s): PR-1787 Use ssh as the default remote shell. Full runtime dependencies of stdlib-3.8: compiler-5.0, crypto-3.3, erts-11.0, kernel-6.0, sasl-3.0 --------------------------------------------------------------------- --- syntax_tools-2.1.7 ---------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. Full runtime dependencies of syntax_tools-2.1.7: compiler-7.0, erts-9.0, kernel-5.0, stdlib-3.4 --------------------------------------------------------------------- --- tools-3.1 ------------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-15534 Application(s): tools Related Id(s): PR-2078 Add cprof and tags modules to .app file so that they are included in releases. --- Improvements and New Features --- OTP-15575 Application(s): tools *** HIGHLIGHT *** The cover tool now uses the counters module instead of ets for updating the counters for how many times a line has been executed. By default, Cover will work with distributed nodes, but a new function cover:local_only/0 allows running the Cover in a restricted but faster local-only mode. The increase in speed will vary depending on the type of code being cover-compiled, but as an example, the compiler test suite runs more than twice as fast with the new Cover. Full runtime dependencies of tools-3.1: compiler-5.0, erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 --------------------------------------------------------------------- --- wx-1.8.7 -------------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14282 Application(s): asn1, common_test, debugger, dialyzer, erl_docgen, inets, jinterface, observer, otp, syntax_tools, wx Related Id(s): PR-1891 All incorrect (that is, all) uses of "can not" has been corrected to "cannot" in source code comments, documentation, examples, and so on. Full runtime dependencies of wx-1.8.7: erts-6.0, kernel-3.0, stdlib-2.0 --------------------------------------------------------------------- --- xmerl-1.3.20 ---------------------------------------------------- --------------------------------------------------------------------- --- Fixed Bugs and Malfunctions --- OTP-14703 Application(s): xmerl Related Id(s): PR-1964 A typo in an error printout has been fixed. Full runtime dependencies of xmerl-1.3.20: erts-6.0, kernel-3.0, stdlib-2.5 --------------------------------------------------------------------- --------------------------------------------------------------------- ---------------------------------------------------------------------