Patch Package: OTP 20.1 Git Tag: OTP-20.1 Date: 2017-09-26 Trouble Report Id: OTP-10889, OTP-10927, OTP-13014, OTP-13170, OTP-13704, OTP-14011, OTP-14078, OTP-14181, OTP-14185, OTP-14236, OTP-14344, OTP-14378, OTP-14386, OTP-14412, OTP-14462, OTP-14463, OTP-14464, OTP-14471, OTP-14486, OTP-14488, OTP-14490, OTP-14495, OTP-14499, OTP-14500, OTP-14504, OTP-14506, OTP-14510, OTP-14511, OTP-14512, OTP-14520, OTP-14521, OTP-14522, OTP-14523, OTP-14526, OTP-14527, OTP-14530, OTP-14534, OTP-14535, OTP-14536, OTP-14538, OTP-14539, OTP-14542, OTP-14544, OTP-14546, OTP-14549, OTP-14550, OTP-14552, OTP-14553, OTP-14555, OTP-14556, OTP-14560, OTP-14568, OTP-14571, OTP-14572, OTP-14574, OTP-14588, OTP-14591, OTP-14596, OTP-14597, OTP-14598, OTP-14600, OTP-14606, OTP-14607, OTP-14608, OTP-14609, OTP-14612, OTP-14614, OTP-14618, OTP-14621, OTP-9869 Seq num: ERIERL-48, ERL-251, ERL-375, ERL-413, ERL-432, ERL-437, ERL-439, ERL-453, ERL-461, ERL-465, ERL-472, ERL-478, ERL-480, ERL-481, seq13319 System: OTP Release: 20 Application: asn1-5.0.3, common_test-1.15.2, compiler-7.1.2, crypto-4.1, debugger-4.2.3, dialyzer-3.2.2, diameter-2.1, edoc-0.9.1, erl_docgen-0.7.1, erts-9.1, et-1.6.1, eunit-2.3.4, hipe-3.16.1, inets-6.4.2, kernel-5.4, mnesia-4.15.1, observer-2.5, os_mon-2.4.3, public_key-1.5, reltool-0.7.5, runtime_tools-1.12.2, sasl-3.1, snmp-5.2.7, ssh-4.6, ssl-8.2.1, stdlib-3.4.2, syntax_tools-2.1.3, tools-2.11, wx-1.8.2 Predecessor: OTP 20.0.5 Check out the git tag OTP-20.1, and build a full OTP system including documentation. Apply one or more applications from this build as patches to your installation using the 'otp_patch_apply' tool. For information on install requirements, see descriptions for each application version below. --------------------------------------------------------------------- --- POTENTIAL INCOMPATIBILITIES ------------------------------------- --------------------------------------------------------------------- OTP-14621 Application(s): public_key Related Id(s): ERL-480, ERL-481 public_key now handles elliptic curve parameters in a consistent way so that decoded ECDSA keys can be correctly re-encoded. --------------------------------------------------------------------- --- asn1-5.0.3 ------------------------------------------------------ --------------------------------------------------------------------- The asn1-5.0.3 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14495 Application(s): asn1 Related Id(s): ERL-437 Compiling an ASN.1 module using the option {n2n, EnumTypeName} when EnumTypeName contains a hypen like for example Cause-Misc caused syntax errors when compiling the generated Erlang code. This is now corrected. Full runtime dependencies of asn1-5.0.3: erts-7.0, kernel-3.0, stdlib-2.0 --------------------------------------------------------------------- --- common_test-1.15.2 ---------------------------------------------- --------------------------------------------------------------------- The common_test-1.15.2 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. Full runtime dependencies of common_test-1.15.2: compiler-6.0, crypto-3.6, debugger-4.1, erts-7.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.4, syntax_tools-1.7, tools-2.8, xmerl-1.3.8 --------------------------------------------------------------------- --- compiler-7.1.2 -------------------------------------------------- --------------------------------------------------------------------- The compiler-7.1.2 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14522 Application(s): compiler Related Id(s): ERIERL-48 Fail labels on guard BIFs weren't taken into account during an optimization pass, and a bug in the validation pass sometimes prevented this from being noticed when a fault occurred. OTP-14526 Application(s): compiler When compiling from Core Erlang, an 'apply' with a nested apply in the function position would be treated as an invalid call. Corrected. (Thanks to Mikael Pettersson for reporting this bug.) OTP-14591 Application(s): compiler Fixed checking of binary matching in the beam_validator module to ensure that potential compiler bugs are found at compile-time instead as emulator crash at run-time. OTP-14600 Application(s): compiler, stdlib Related Id(s): ERL-478 There could be false warnings for erlang:get_stacktrace/0 being used outside of a try block when using multiple catch clauses. --- Improvements and New Features --- OTP-14378 Application(s): compiler, stdlib The Erlang code linter no longer checks that the functions mentioned in nowarn_deprecated_function options are declared in the module. Full runtime dependencies of compiler-7.1.2: crypto-3.6, erts-9.0, hipe-3.12, kernel-4.0, stdlib-2.5 --------------------------------------------------------------------- --- crypto-4.1 ------------------------------------------------------ --------------------------------------------------------------------- The crypto-4.1 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14499 Application(s): crypto, erts Related Id(s): ERL-251, ERL-439 On macOS, crypto would crash if observer had been started before crypto. On the beta for macOS 10.13 (High Sierra), crypto would crash. Both of those bugs have been fixed. --- Improvements and New Features --- OTP-13704 Application(s): crypto, public_key Related Id(s): PR838 Extend crypto:sign, crypto:verify, public_key:sign and public_key:verify with: * support for RSASSA-PS padding for signatures and for saltlength setting * X9.31 RSA padding. * sha, sha224, sha256, sha384, and sha512 for dss signatures as mentioned in NIST SP 800-57 Part 1. * ripemd160 to be used for rsa signatures. This is a manual merge of half of the pull request 838 by potatosalad from Sept 2015. OTP-14504 Application(s): crypto A new tuple in crypto:supports/0 reports supported MAC algorithms. Full runtime dependencies of crypto-4.1: erts-9.0, kernel-5.3, stdlib-3.4 --------------------------------------------------------------------- --- debugger-4.2.3 -------------------------------------------------- --------------------------------------------------------------------- The debugger-4.2.3 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14464 Application(s): debugger, edoc, et, eunit, observer, tools Tools are updated to show Unicode atoms correctly. Full runtime dependencies of debugger-4.2.3: compiler-5.0, erts-9.0, kernel-5.3, stdlib-3.4, wx-1.2 --------------------------------------------------------------------- --- dialyzer-3.2.2 -------------------------------------------------- --------------------------------------------------------------------- Note! The dialyzer-3.2.2 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependency has to be satisfied: -- hipe-3.16.1 (first satisfied in OTP 20.1) --- Fixed Bugs and Malfunctions --- OTP-14572 Application(s): dialyzer, hipe Related Id(s): seq13319 Fix a bug regarding map types that caused Dialyzer to go into an infinite loop. A consequence of the fix is that compound map keys such as maps and tuples sometimes are handled with less precision than before. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. OTP-14606 Application(s): dialyzer Related Id(s): OTP-14218 The check for unknown remote types is improved. Full runtime dependencies of dialyzer-3.2.2: compiler-7.0, erts-9.0, hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 --------------------------------------------------------------------- --- diameter-2.1 ---------------------------------------------------- --------------------------------------------------------------------- The diameter-2.1 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14011 Application(s): diameter React to nodeup/nodedown when sharing peer connections. Service configuration share_peers and use_shared_peers did not respond to the coming and going of remote nodes. OTP-14486 Application(s): diameter Fix inappropriate message callbacks. An incoming CER or DPR was regarded as discarded, resulting in a corresponding message callback (if configured) in diameter_tcp/sctp. OTP-14512 Application(s): diameter Fix handling of 5009 errors (DIAMETER_AVP_OCCURS_TOO_MANY TIMES). RFC 6733 says that the first AVP that exceeds the bound should be reported, but the suggestions in the errors field of a diameter_packet record counted AVPs from the rear of the message, not the front. Additionally, diameter 2.0 in OTP 20.0 broke the counting by accepting one more AVP than the message grammar in question allowed. OTP-14535 Application(s): diameter Related Id(s): OTP-13006 Match case insensitively in diameter_tcp/sctp accept tuple. Matching of remote addresses when accepting connections in a listening transport was case-sensitive, causing the semantics to change as a consequence of (kernel) OTP-13006. OTP-14552 Application(s): diameter Fix backwards incompatibility of remote send when sharing transports. The sending of requests over a transport connection on a remote node running an older version of diameter was broken by diameter 2.0 in OTP 20.0. OTP-14607 Application(s): diameter Fix diameter_packet.avps decode of Grouped AVP errors in Failed-AVP. Decode didn't produce a list of diameter_avp records, so information about faulty component AVPs was lost. OTP-9869 Application(s): diameter Fix handling of Proxy-Info in answer messages setting the E-bit. RFC 6733 requires that Proxy-Info AVPs in an incoming request be echoed in an outgoing answer. This was not done in answers formulated by diameter; for example, as a result of a handle_request callback having returned an 'answer-message' or protocol_error tuple. --- Improvements and New Features --- OTP-10889 Application(s): diameter Let unordered delivery be configured in diameter_sctp. With option {unordered, boolean() | pos_integer()}, with false the default, and N equivalent to OS =< N, where OS is the number of outbound streams negotiated on the association in question. If configured, unordered sending commences upon reception of a second message, outgoing messages being sent on stream 0 before this. The default false is for backwards compatibility, but false or 1 should be set to follow RFC 6733's recommendation on the use of unordered sending to avoid head-of-line blocking. There is typically no meaningful order to preserve, since the order in which outgoing messages are received by a transport process isn't known to the sender. OTP-10927 Application(s): diameter Complete/simplify Standards Compliance in User's Guide. OTP-14511 Application(s): diameter Related Id(s): OTP-14343 Add service option decode_format. To allow incoming messages to be decoded into maps or lists instead of records. Messages can be presented in any of the formats for encode. Decode performance has also been improved. OTP-14521 Application(s): diameter Add service option traffic_counters. To let message-related counters be disabled, which can be a performance improvement in some usecases. OTP-14544 Application(s): diameter Allow loopback/any as local addresses in diameter_tcp/sctp. The atoms were implied by documentation, but not handled in code. OTP-14546 Application(s): diameter Add transport option strict_capx. To allow the RFC 6733 requirement that a transport connection be closed if a message is received before capabilities exchange to be relaxed. OTP-14555 Application(s): diameter Be consistent with service/transport configuration. For options for which it's meaningful, defaults values for transport options can now be configured on a service. This was previously the case only for an arbitrary subset of options. OTP-14588 Application(s): diameter Add service/transport option avp_dictionaries. To provide better support for AVPs that are not defined in the application dictionary: configuring additional dictionaries in an avp_dictionaries tuple allows their AVPs to be encoded/decoded in much the same fashion as application AVPs. The motivation is RFC 7683 Diameter Overload, Indicator Conveyance (DOIC), that defines AVPs intended to be piggybacked onto arbitrary messages. A DOIC dictionary has been included in the installation, in module diameter_gen_doic_rfc7683. OTP-14596 Application(s): diameter Decode application AVPs in answers setting the E-bit. AVPs defined in the application of the message being sent were previously not decoded, only those in the common application that defines the answer-message grammar. Full runtime dependencies of diameter-2.1: erts-6.4, kernel-3.2, ssl-6.0, stdlib-2.4 --------------------------------------------------------------------- --- edoc-0.9.1 ------------------------------------------------------ --------------------------------------------------------------------- The edoc-0.9.1 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14464 Application(s): debugger, edoc, et, eunit, observer, tools Tools are updated to show Unicode atoms correctly. Full runtime dependencies of edoc-0.9.1: erts-6.0, inets-5.10, kernel-3.0, stdlib-2.5, syntax_tools-1.6.14, xmerl-1.3.7 --------------------------------------------------------------------- --- erl_docgen-0.7.1 ------------------------------------------------ --------------------------------------------------------------------- The erl_docgen-0.7.1 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. Full runtime dependencies of erl_docgen-0.7.1: edoc-0.7.13, erts-9.0, stdlib-3.4, xmerl-1.3.7 --------------------------------------------------------------------- --- erts-9.1 -------------------------------------------------------- --------------------------------------------------------------------- The erts-9.1 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14490 Application(s): erts Related Id(s): ERL-432 Changed erlang:apply/2 to raise a badarg exception if the second argument is not a proper list. Previous behavior was a misleading undef exception. OTP-14499 Application(s): crypto, erts Related Id(s): ERL-251, ERL-439 On macOS, crypto would crash if observer had been started before crypto. On the beta for macOS 10.13 (High Sierra), crypto would crash. Both of those bugs have been fixed. OTP-14523 Application(s): erts Fixed bug in enif_whereis_pid/port that could cause heap corruption in rare cases. OTP-14538 Application(s): erts Fix so that trace messages generated when in a dirty nif are flushed correctly when the dirty nif is done executing. OTP-14549 Application(s): erts Related Id(s): PR1536 Fix escape code handling when using ANSI color codes in the shell. OTP-14574 Application(s): erts Upgraded the ERTS internal PCRE library from version 8.40 to version 8.41. See http://pcre.org/original/changelog.txt for information about changes made to PCRE. This library implements major parts of the re regular expressions module. OTP-14597 Application(s): erts Related Id(s): ERL-465 Fixed a bug causing statistics(runtime) to produce negative values and a bug in statistics(wall_clock) causing it to produce values one second too long. statistics(runtime) now also use getrusage() as source when available preventing the returned value from wrapping as frequent as before. OTP-14609 Application(s): erts Fixed small memory leak that could occur when sending to a terminating port. OTP-14612 Application(s): erts Fix bug causing VM crash when a module with -on_load directive is loaded while erlang:trace(on_load, ...) is enabled. OTP-14614 Application(s): erts Related Id(s): ERL-453 A warning that the compiler may optimize away atoms have been added to the documentation of list_to_existing_atom/1 and binary_to_existing_atom/2. --- Improvements and New Features --- OTP-13170 Application(s): erts, kernel, tools Lock counting can now be fully toggled at runtime in the lock counting emulator (-emu_type lcnt). Everything is enabled by default to match the old behavior, but specific categories can be toggled at will with minimal runtime overhead when disabled. Refer to the documentation on lcnt:rt_mask/1 for details. OTP-14185 Application(s): erts The zlib module has been refactored and all its operations will now yield appropriately, allowing them to be used freely in concurrent applications. The following functions have been deprecated, but will not produce compiler warnings until OTP 21: zlib:adler32, zlib:crc32, zlib:inflateChunk, zlib:getBufSize, zlib:setBufSize. The behavior of throwing an error when a dictionary is required for decompression has also been deprecated. Refer to the documentation on inflateSetDictionary/2 for details. OTP-14412 Application(s): erts, kernel, tools lcnt:collect and lcnt:clear will no longer block all other threads in the runtime system. OTP-14520 Application(s): erts, tools Add erlang:iolist_to_iovec/1, which converts an iolist() to an erlang:iovec(), which suitable for use with enif_inspect_iovec. OTP-14527 Application(s): erts When provided with bad arguments, the zlib module will now raise named exceptions instead of just badarg. For example, not_initialized when using zlib:inflate/2 with an uninitialized stream. OTP-14553 Application(s): erts erlang:halt/2 allows any Unicode string as slogan for the crash dump. OTP-14598 Application(s): erts Add new nif API functions for managing an I/O Queue. The added functions are: -- enif_ioq_create() -- enif_ioq_destroy() -- enif_ioq_enq_binary() -- enif_ioq_enqv() -- enif_ioq_deq() -- enif_ioq_peek() -- enif_inspect_iovec() -- enif_free_iovec() Full runtime dependencies of erts-9.1: kernel-5.0, sasl-3.0.1, stdlib-3.0 --------------------------------------------------------------------- --- et-1.6.1 -------------------------------------------------------- --------------------------------------------------------------------- The et-1.6.1 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14464 Application(s): debugger, edoc, et, eunit, observer, tools Tools are updated to show Unicode atoms correctly. Full runtime dependencies of et-1.6.1: erts-9.0, kernel-5.3, runtime_tools-1.10, stdlib-3.4, wx-1.2 --------------------------------------------------------------------- --- eunit-2.3.4 ----------------------------------------------------- --------------------------------------------------------------------- The eunit-2.3.4 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14464 Application(s): debugger, edoc, et, eunit, observer, tools Tools are updated to show Unicode atoms correctly. Full runtime dependencies of eunit-2.3.4: erts-9.0, kernel-5.3, stdlib-3.4 --------------------------------------------------------------------- --- hipe-3.16.1 ----------------------------------------------------- --------------------------------------------------------------------- The hipe-3.16.1 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14572 Application(s): dialyzer, hipe Related Id(s): seq13319 Fix a bug regarding map types that caused Dialyzer to go into an infinite loop. A consequence of the fix is that compound map keys such as maps and tuples sometimes are handled with less precision than before. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. Full runtime dependencies of hipe-3.16.1: compiler-5.0, erts-9.0, kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 --------------------------------------------------------------------- --- inets-6.4.2 ----------------------------------------------------- --------------------------------------------------------------------- The inets-6.4.2 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14510 Application(s): inets Make sure mod_log uses the correct status code OTP-14530 Application(s): inets Correct behaviour of mod_disk_log to proparly handle repair options Full runtime dependencies of inets-6.4.2: erts-6.0, kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-2.0 --------------------------------------------------------------------- --- kernel-5.4 ------------------------------------------------------ --------------------------------------------------------------------- Note! The kernel-5.4 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependency has to be satisfied: -- erts-9.1 (first satisfied in OTP 20.1) --- Fixed Bugs and Malfunctions --- OTP-14571 Application(s): kernel Related Id(s): ERL-472 Processes which did output after switching jobs (Ctrl+G) could be left forever stuck in the io request. --- Improvements and New Features --- OTP-13170 Application(s): erts, kernel, tools Lock counting can now be fully toggled at runtime in the lock counting emulator (-emu_type lcnt). Everything is enabled by default to match the old behavior, but specific categories can be toggled at will with minimal runtime overhead when disabled. Refer to the documentation on lcnt:rt_mask/1 for details. OTP-14412 Application(s): erts, kernel, tools lcnt:collect and lcnt:clear will no longer block all other threads in the runtime system. OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. Full runtime dependencies of kernel-5.4: erts-9.1, sasl-3.0, stdlib-3.4 --------------------------------------------------------------------- --- mnesia-4.15.1 --------------------------------------------------- --------------------------------------------------------------------- The mnesia-4.15.1 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. Full runtime dependencies of mnesia-4.15.1: erts-9.0, kernel-5.3, stdlib-3.4 --------------------------------------------------------------------- --- observer-2.5 ---------------------------------------------------- --------------------------------------------------------------------- The observer-2.5 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14386 Application(s): observer The following improvements are done to Crashdump Viewer: -- Reading of crash dumps with many binaries is optimized. -- A progress bar is shown when the detail view for a process is opened. -- The cdv script now sets ERL_CRASH_DUMP_SECONDS=0 to avoid generating a new crash dump from the node running the Crashdump Viewer. -- A warning dialog is shown if the node running the Crashdump Viewer could potentially overwrite the crash dump under inspection. -- Bugfix: In some situations, Crashdump Viewer could not find the end of the 'Last calls' section in a crash dump, and would erroneously mark the crash dump as truncated. This is now corrected. -- Bugfix: In some situations, process info for a specific process would be marked as truncated by Crashdump Viewer, even if the crash dump was truncated in the binary section - and not related to the process in question. This is now corrected. OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. OTP-14464 Application(s): debugger, edoc, et, eunit, observer, tools Tools are updated to show Unicode atoms correctly. OTP-14536 Application(s): observer Add system statistics and limits to frontpage in observer. Full runtime dependencies of observer-2.5: erts-7.0, et-1.5, inets-5.10, kernel-3.0, runtime_tools-1.8.14, stdlib-3.4, wx-1.2 --------------------------------------------------------------------- --- os_mon-2.4.3 ---------------------------------------------------- --------------------------------------------------------------------- The os_mon-2.4.3 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14560 Application(s): os_mon Related Id(s): ERL-461 On macOS 10.13 (High Sierra), disksup could not grab information for any disks that used the new APFS file system. That has been corrected. Full runtime dependencies of os_mon-2.4.3: erts-6.0, kernel-3.0, mnesia-4.12, otp_mibs-1.0.9, sasl-2.4, snmp-4.25.1, stdlib-2.0 --------------------------------------------------------------------- --- public_key-1.5 -------------------------------------------------- --------------------------------------------------------------------- The public_key-1.5 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14621 Application(s): public_key Related Id(s): ERL-480, ERL-481 *** POTENTIAL INCOMPATIBILITY *** public_key now handles elliptic curve parameters in a consistent way so that decoded ECDSA keys can be correctly re-encoded. --- Improvements and New Features --- OTP-13704 Application(s): crypto, public_key Related Id(s): PR838 Extend crypto:sign, crypto:verify, public_key:sign and public_key:verify with: * support for RSASSA-PS padding for signatures and for saltlength setting * X9.31 RSA padding. * sha, sha224, sha256, sha384, and sha512 for dss signatures as mentioned in NIST SP 800-57 Part 1. * ripemd160 to be used for rsa signatures. This is a manual merge of half of the pull request 838 by potatosalad from Sept 2015. OTP-14181 Application(s): public_key Add API function pkix_test_data/1 for facilitating automated testing. This is useful for applications that preform X509-certifcate path validation of so called certificate chains, such as TLS. OTP-14236 Application(s): public_key, ssl Improved error propagation and reports OTP-14534 Application(s): public_key RSAPrivateKey version is set to 'two-prime' instead of using the underlying enumeration value directly. OTP-14608 Application(s): public_key Deprecated function crypto:rand_uniform/2 is replaced by rand:uniform/1. Full runtime dependencies of public_key-1.5: asn1-3.0, crypto-3.8, erts-6.0, kernel-3.0, stdlib-2.0 --------------------------------------------------------------------- --- reltool-0.7.5 --------------------------------------------------- --------------------------------------------------------------------- The reltool-0.7.5 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14463 Application(s): reltool, sasl Files generated by release_handler and reltool, which might contain Unicode characters, are now encoded as UTF-8 and written with format "~tp" or "~ts". If the file is to be read by file:consult/1, an encoding comment is added. Full runtime dependencies of reltool-0.7.5: erts-7.0, kernel-3.0, sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 --------------------------------------------------------------------- --- runtime_tools-1.12.2 -------------------------------------------- --------------------------------------------------------------------- The runtime_tools-1.12.2 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. Full runtime dependencies of runtime_tools-1.12.2: erts-8.0, kernel-5.0, mnesia-4.12, stdlib-3.0 --------------------------------------------------------------------- --- sasl-3.1 -------------------------------------------------------- --------------------------------------------------------------------- The sasl-3.1 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. OTP-14463 Application(s): reltool, sasl Files generated by release_handler and reltool, which might contain Unicode characters, are now encoded as UTF-8 and written with format "~tp" or "~ts". If the file is to be read by file:consult/1, an encoding comment is added. OTP-14618 Application(s): sasl The SASL error logger event handler, sasl_report_file_h, will now by default open its log file with encoding UTF-8. This can be overridden when configuring SASL, see configuration parameter sasl_error_logger in the SASL reference manual. Full runtime dependencies of sasl-3.1: erts-9.0, kernel-5.3, stdlib-3.4, tools-2.6.14 --------------------------------------------------------------------- --- snmp-5.2.7 ------------------------------------------------------ --------------------------------------------------------------------- The snmp-5.2.7 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-13014 Application(s): snmp Related Id(s): ERL-375 A bug in the SNMP MIB compiler has been fixed. An AUGMENTS referring to a table defined later in the MIB did not work. Full runtime dependencies of snmp-5.2.7: crypto-3.3, erts-6.0, kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 --------------------------------------------------------------------- --- ssh-4.6 --------------------------------------------------------- --------------------------------------------------------------------- The ssh-4.6 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14506 Application(s): ssh Related Id(s): PR1503 Enables the ssh_io module to also accept binary values when reading standard_io instead of getting stuck in the receive clause. OTP-14550 Application(s): ssh Related Id(s): PR1533 Previously, the file owner access permission in response to ssh_sftp:read_file_info/2 function was always read_write. With this fix, the actual value of file owner access permission is added to the returning record. That value is calculated from file mode value. --- Improvements and New Features --- OTP-14568 Application(s): ssh A new option modify_algorithms is implemented. It enables specifying changes on the default algorithms list. See the reference manual and the SSH User's Guide chapter "Configuring algorithms in SSH". Full runtime dependencies of ssh-4.6: crypto-3.7.3, erts-6.0, kernel-3.0, public_key-1.4, stdlib-3.3 --------------------------------------------------------------------- --- ssl-8.2.1 ------------------------------------------------------- --------------------------------------------------------------------- Note! The ssl-8.2.1 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependency has to be satisfied: -- public_key-1.5 (first satisfied in OTP 20.1) --- Fixed Bugs and Malfunctions --- OTP-14556 Application(s): ssl Max session table works correctly again --- Improvements and New Features --- OTP-14078 Application(s): ssl Customize alert handling for DTLS over UDP to mitigate DoS attacks OTP-14236 Application(s): public_key, ssl Improved error propagation and reports Full runtime dependencies of ssl-8.2.1: crypto-3.3, erts-7.0, inets-5.10.7, kernel-3.0, public_key-1.5, stdlib-3.2 --------------------------------------------------------------------- --- stdlib-3.4.2 ---------------------------------------------------- --------------------------------------------------------------------- The stdlib-3.4.2 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14488 Application(s): stdlib Related Id(s): PR-1489 Fix a bug in the Erlang shell where recursively defined records with typed fields could cause a loop. OTP-14542 Application(s): stdlib Make edlin handle grapheme clusters instead of codepoints to improve the handling multi-codepoints characters. OTP-14600 Application(s): compiler, stdlib Related Id(s): ERL-478 There could be false warnings for erlang:get_stacktrace/0 being used outside of a try block when using multiple catch clauses. --- Improvements and New Features --- OTP-14378 Application(s): compiler, stdlib The Erlang code linter no longer checks that the functions mentioned in nowarn_deprecated_function options are declared in the module. OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. Full runtime dependencies of stdlib-3.4.2: compiler-5.0, crypto-3.3, erts-9.0, kernel-5.0, sasl-3.0 --------------------------------------------------------------------- --- syntax_tools-2.1.3 ---------------------------------------------- --------------------------------------------------------------------- The syntax_tools-2.1.3 application can be applied independently of other applications on a full OTP 20 installation. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. OTP-14471 Application(s): syntax_tools Related Id(s): ERL-413 A process trapping exits and calling erl_tidy no longer hangs if an error occurs. Full runtime dependencies of syntax_tools-2.1.3: compiler-7.0, erts-9.0, kernel-5.0, stdlib-3.4 --------------------------------------------------------------------- --- tools-2.11 ------------------------------------------------------ --------------------------------------------------------------------- Note! The tools-2.11 application can *not* be applied independently of other applications on an arbitrary OTP 20 installation. On a full OTP 20 installation, also the following runtime dependencies have to be satisfied: -- erts-9.1 (first satisfied in OTP 20.1) -- kernel-5.4 (first satisfied in OTP 20.1) --- Fixed Bugs and Malfunctions --- OTP-14344 Application(s): tools The predefined Xref analysis locals_not_used no longer reports unused functions with the -on_load() attribute. The new predefined Xref variable OL holds all functions with the -on_load() attribute. OTP-14500 Application(s): tools In fprof when sampling multiple processes and analyzing with totals set to true, the output now sums together all caller and callee entries which concerns the same function. Previous behaviour was to report each contributing entry separately. --- Improvements and New Features --- OTP-13170 Application(s): erts, kernel, tools Lock counting can now be fully toggled at runtime in the lock counting emulator (-emu_type lcnt). Everything is enabled by default to match the old behavior, but specific categories can be toggled at will with minimal runtime overhead when disabled. Refer to the documentation on lcnt:rt_mask/1 for details. OTP-14412 Application(s): erts, kernel, tools lcnt:collect and lcnt:clear will no longer block all other threads in the runtime system. OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. OTP-14464 Application(s): debugger, edoc, et, eunit, observer, tools Tools are updated to show Unicode atoms correctly. OTP-14520 Application(s): erts, tools Add erlang:iolist_to_iovec/1, which converts an iolist() to an erlang:iovec(), which suitable for use with enif_inspect_iovec. Full runtime dependencies of tools-2.11: compiler-5.0, erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 --------------------------------------------------------------------- --- wx-1.8.2 -------------------------------------------------------- --------------------------------------------------------------------- The wx-1.8.2 application can be applied independently of other applications on a full OTP 20 installation. --- Fixed Bugs and Malfunctions --- OTP-14539 Application(s): wx Do not deprecate wxGraphicsContext:createLinearGradientBrush/7 and wxGraphicsContext:createRadialGradientBrush/8 which are still available in wxWidgets-3.0. --- Improvements and New Features --- OTP-14462 Application(s): common_test, dialyzer, erl_docgen, hipe, kernel, mnesia, observer, runtime_tools, sasl, stdlib, syntax_tools, tools, wx General Unicode improvements. Full runtime dependencies of wx-1.8.2: erts-6.0, kernel-3.0, stdlib-2.0 --------------------------------------------------------------------- --------------------------------------------------------------------- ---------------------------------------------------------------------